Skip to content

Releases: benwiley4000/cassette

v2.0.0-alpha.28

18 Feb 14:58
Compare
Choose a tag to compare
v2.0.0-alpha.28 Pre-release
Pre-release

Fixes the React prop type spec for the playlist track's duration property (your code will work the same if you stick with v2.0.0-alpha.27 but you will get less helpful console messages). (#382)

v2.0.0-alpha.27

18 Feb 07:15
Compare
Choose a tag to compare
v2.0.0-alpha.27 Pre-release
Pre-release

This release contains a bunch of stuff, almost all related to time and duration.

There are breaking changes, although the majority of users will likely be unaffected.

Breaking changes

  • The startingTime prop, which was new for the v2 alpha, has been removed and replaced by the optional startingTime property on the playlist track object (#369)
  • The new isUnboundedStream track property should be set to true for any track that is an unbounded live stream. Otherwise loading the source will take twice as long as before (nothing will break, though). Typical time-bound sources are unaffected. (#373)
  • If you were reading the internals of the Cassette state snapshot in your program, your program will break. If you were using the snapshot in a normal way, nothing will break. If this does break your program and you don't know what to do, please open an issue so we can find a good solution for your use case! 🙂

Changes that almost definitely won't break anything

  • currentTime state set on media element after loadeddata event instead of loadedmetadata event, and trackLoading now remains true until the canplay event has fired (#370)
  • The context duration property is now always a number even if a live stream is playing (#377)
  • currentTime from snapshot no longer respected for live streams (#378)

Features

  • New duration playlist track property (which can be specified as a number in milliseconds, or a mm:ss/hh:mm:ss formatted string) is used as a stand-in until the track's metadata has loaded. Specifying this will make track loads feel snappier. (#372)
  • The startingTime playlist track property can be used to restore previous timestamps of tracks that were skipped before being finished. It is the developer's responsibility to store and retrieve the timestamp as well as update it in the playlist at runtime if needed, as the track will begin at its defined startingTime each time it is played. For most applications this is not needed. (#369)
  • The onTimeUpdate prop to PlayerContextProvider can be used to save track timestamps to be used for the startingTime property (#369)
  • New durationOverride prop is optional for MediaProgress, MediaProgressDisplay, MediaProgressBar and MediaProgressBarDisplay. Not needed for most cases but may be desirable for a live stream in order to display the maximum seekable range even while the playing/buffering section is offset in the past. (#379)

Fixes

  • Prevent crossOrigin issues in Microsoft Edge (#368)
  • currentTime gets set correctly on iOS (#370)
  • Prevent bad display and seeking issues for unbounded live streams by using the maximum visited timestamp as the duration (#377)
  • No more unresponsive hangs when restoring a non-zero currentTime from snapshot for a live stream source - the time will be reset to 0 (and new snapshots won't save the currentTime for live stream sources) (#378)
  • Prevent Infinity track duration for non-live stream sources on iOS (#373)

v2.0.0-alpha.26

11 Feb 08:30
Compare
Choose a tag to compare
v2.0.0-alpha.26 Pre-release
Pre-release

v2.0.0-alpha.25 of @cassette/hooks was unpublished and replaced with v2.0.0-alpha.26 - the build configuration was screwed up the first time it was published.

v2.0.0-alpha.25

11 Feb 08:12
Compare
Choose a tag to compare
v2.0.0-alpha.25 Pre-release
Pre-release

New features

  • React Hooks (if that's your thing).. new useFullscreenContext and usePlayerContext exports from the @cassette/hooks package.

Deprecated usage

  • PlayerContextConsumer's usage does not break, but you will now receive a warning if you do not pass the new filterList prop listing which items from the playerContext are being consumed.

v2.0.0-alpha.24

11 Feb 05:55
Compare
Choose a tag to compare
v2.0.0-alpha.24 Pre-release
Pre-release

The breaking changes are minor and most likely non-disruptive, although it's possible you will be affected if you were doing something weird with the paused state.

Breaking changes

  • The paused state in playerContext will now be true between the time a track load begins and the time the track starts playing. Previously it was false during this time
  • The awaitingResumeOnSeekComplete context state has been removed and replaced by awaitingPlayResume, which is true either if seeking is in progress or if the track play is pending a track load. The PlayPauseButton uses this internally so the visual behavior has not changed (except in Firefox, where there was a bug before). (#360)

Features

  • New getDisplayText prop for MediaProgress and MediaProgressDisplay (#358)
  • New mediaCannotPlay state in playerContext is true if a load error occurred for the current track. onTrackPlaybackFailure callback prop to PlayerContextProvider allows listening for track load errors. (#356)
  • New subscription optimization for playerContext (#350)

Fixes

  • The media status bar for MediaPlayer now reflects the getDisplayText prop instead of the default implementation. (#358)

v2.0.0-alpha.22

30 Jan 07:18
Compare
Choose a tag to compare
v2.0.0-alpha.22 Pre-release
Pre-release

This version allows specifying a custom media element implementation via the createMediaElement function prop (#349).

v2.0.0-alpha.21

23 Jan 07:15
Compare
Choose a tag to compare
v2.0.0-alpha.21 Pre-release
Pre-release

New prop on PlayerContextProvider - getMediaTitleAttributeForTrack. This function prop allows you to set a custom title attribute on the media element which is used in the system media controls on iOS. If you don't specify, the value will be artist - trackname.

v2.0.0-alpha.17

15 Jan 01:06
Compare
Choose a tag to compare
v2.0.0-alpha.17 Pre-release
Pre-release

Two new exports from @cassette/components: MediaProgressBar and its non-interactive counterpart MediaProgressBarDisplay.

v2.0.0-alpha.16

14 Jan 08:28
Compare
Choose a tag to compare
v2.0.0-alpha.16 Pre-release
Pre-release

New feature: trackIndex prop to PlayPauseButton from @cassette/player makes the button belong to a specific track instead of the playlist in general.

v2.0.0-alpha.14

05 Jan 20:24
Compare
Choose a tag to compare
v2.0.0-alpha.14 Pre-release
Pre-release

Some more miscellaneous bug fixes (to be detailed in the upcoming changelog)