react-native-audio-browser 0.2.0-next.18 → 0.2.0-next.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/android/build.gradle +2 -1
  2. package/android/src/main/java/com/audiobrowser/player/CrossOriginHeaderStripper.kt +77 -0
  3. package/android/src/main/java/com/audiobrowser/player/MediaFactory.kt +28 -10
  4. package/android/src/test/java/com/audiobrowser/player/CrossOriginHeaderStripperTest.kt +94 -0
  5. package/lib/commonjs/web/NativeAudioBrowser.js +163 -50
  6. package/lib/commonjs/web/NativeAudioBrowser.js.map +1 -1
  7. package/lib/commonjs/web/TrackPlayer/LoadAttempt.js +37 -0
  8. package/lib/commonjs/web/TrackPlayer/LoadAttempt.js.map +1 -0
  9. package/lib/commonjs/web/TrackPlayer/PlaybackStateMachine.js +18 -2
  10. package/lib/commonjs/web/TrackPlayer/PlaybackStateMachine.js.map +1 -1
  11. package/lib/commonjs/web/TrackPlayer/Player.js +232 -39
  12. package/lib/commonjs/web/TrackPlayer/Player.js.map +1 -1
  13. package/lib/commonjs/web/TrackPlayer/QueuePlayer.js +33 -12
  14. package/lib/commonjs/web/TrackPlayer/QueuePlayer.js.map +1 -1
  15. package/lib/commonjs/web/browser/BrowserManager.js +24 -4
  16. package/lib/commonjs/web/browser/BrowserManager.js.map +1 -1
  17. package/lib/commonjs/web/browser/SearchManager.js +12 -12
  18. package/lib/commonjs/web/browser/SearchManager.js.map +1 -1
  19. package/lib/commonjs/web/http/RequestConfigBuilder.js +110 -27
  20. package/lib/commonjs/web/http/RequestConfigBuilder.js.map +1 -1
  21. package/lib/commonjs/web/http/followMediaRedirect.js +219 -0
  22. package/lib/commonjs/web/http/followMediaRedirect.js.map +1 -0
  23. package/lib/module/web/NativeAudioBrowser.js +163 -50
  24. package/lib/module/web/NativeAudioBrowser.js.map +1 -1
  25. package/lib/module/web/TrackPlayer/LoadAttempt.js +32 -0
  26. package/lib/module/web/TrackPlayer/LoadAttempt.js.map +1 -0
  27. package/lib/module/web/TrackPlayer/PlaybackStateMachine.js +18 -2
  28. package/lib/module/web/TrackPlayer/PlaybackStateMachine.js.map +1 -1
  29. package/lib/module/web/TrackPlayer/Player.js +232 -39
  30. package/lib/module/web/TrackPlayer/Player.js.map +1 -1
  31. package/lib/module/web/TrackPlayer/QueuePlayer.js +33 -12
  32. package/lib/module/web/TrackPlayer/QueuePlayer.js.map +1 -1
  33. package/lib/module/web/browser/BrowserManager.js +24 -4
  34. package/lib/module/web/browser/BrowserManager.js.map +1 -1
  35. package/lib/module/web/browser/SearchManager.js +12 -12
  36. package/lib/module/web/browser/SearchManager.js.map +1 -1
  37. package/lib/module/web/http/RequestConfigBuilder.js +110 -27
  38. package/lib/module/web/http/RequestConfigBuilder.js.map +1 -1
  39. package/lib/module/web/http/followMediaRedirect.js +215 -0
  40. package/lib/module/web/http/followMediaRedirect.js.map +1 -0
  41. package/lib/typescript/src/types/browser.d.ts +13 -4
  42. package/lib/typescript/src/types/browser.d.ts.map +1 -1
  43. package/package.json +1 -1
  44. package/src/types/browser.ts +13 -4
  45. package/src/web/NativeAudioBrowser.playWhenReady.test.ts +232 -2
  46. package/src/web/NativeAudioBrowser.ts +193 -60
  47. package/src/web/TrackPlayer/LoadAttempt.ts +29 -0
  48. package/src/web/TrackPlayer/PlaybackStateMachine.test.ts +60 -13
  49. package/src/web/TrackPlayer/PlaybackStateMachine.ts +22 -6
  50. package/src/web/TrackPlayer/Player.dispatch.test.ts +5 -3
  51. package/src/web/TrackPlayer/Player.load.test.ts +137 -1
  52. package/src/web/TrackPlayer/Player.ts +256 -37
  53. package/src/web/TrackPlayer/QueuePlayer.ts +33 -14
  54. package/src/web/__tests__/lifecycle.test.ts +345 -0
  55. package/src/web/__tests__/lifecycleHarness.ts +351 -0
  56. package/src/web/__tests__/loadEdgeCases.test.ts +195 -0
  57. package/src/web/__tests__/loadSupersession.test.ts +175 -0
  58. package/src/web/__tests__/retry.test.ts +169 -0
  59. package/src/web/browser/BrowserManager.ts +26 -4
  60. package/src/web/browser/SearchManager.ts +16 -16
  61. package/src/web/browser/__tests__/artwork-resolution.test.ts +117 -0
  62. package/src/web/browser/__tests__/layer-resolver.test.ts +35 -0
  63. package/src/web/http/RequestConfigBuilder.test.ts +241 -1
  64. package/src/web/http/RequestConfigBuilder.ts +140 -33
  65. package/src/web/http/followMediaRedirect.test.ts +289 -0
  66. package/src/web/http/followMediaRedirect.ts +253 -0
@@ -1 +1 @@
1
- {"version":3,"names":["getTrackIdentity","BrowserManager","classifyTrackNavigation","FavoriteManager","NavigationErrorManager","SearchManager","HttpClient","RequestConfigBuilder","NowPlayingManager","OptionsManager","RemoteCommandController","QueuePlayer","SleepTimerManager","VolumeFader","PlaybackTimer","derivePlayingState","BrowserPathHelper","NativeAudioBrowser","name","equals","dispose","clearUpdateEventInterval","setPlaybackIntervalEnabled","remoteCommands","window","onlineHandler","removeEventListener","offlineHandler","currentLoadId","progressTimer","intervalTimer","_online","navigator","onLine","sleepFader","getVolume","volume","setVolume","sleepTimer","constructor","parent","onComplete","console","log","resolve","pause","onSleepTimerChanged","onFadeStart","durationSeconds","start","onFadeCancel","cancel","path","browserManager","value","tabs","_value","configuration","onPathChanged","onContentChanged","onTabsChanged","onNavigationError","onFormattedNavigationError","onChapterMetadata","onTrackMetadata","onTimedMetadata","onPlaybackActiveTrackChanged","onPlaybackError","onPlaybackPlayWhenReadyChanged","onPlaybackPlayingState","onPlaybackProgressUpdated","onPlaybackInterval","onPlaybackQueueEnded","onPlaybackQueueChanged","onPlaybackRepeatModeChanged","onPlaybackShuffleModeChanged","onPlaybackChanged","onRemoteJumpBackward","onRemoteJumpForward","onRemoteNext","onRemotePause","onRemotePlay","onRemotePlayId","onRemotePlaySearch","onRemotePrevious","onRemoteSeek","onRemoteSkip","onRemoteStop","onOptionsChanged","onFavoriteChanged","onNowPlayingChanged","onOnlineChanged","onEqualizerChanged","onBatteryWarningPendingChanged","onBatteryOptimizationStatusChanged","onSystemVolumeChanged","onOutputChanged","onGate","resolveGate","gated","onCarConnectedChanged","handleRemoteJumpBackward","undefined","handleRemoteJumpForward","handleRemoteNext","handleRemotePause","handleRemotePlay","handleRemotePlayId","handleRemotePlaySearch","handleRemotePrevious","handleRemoteSeek","handleRemoteSkip","handleRemoteStop","httpClient","favoriteManager","navigationErrorManager","optionsManager","nowPlayingManager","searchManager","content","data","error","options","metadata","publishNowPlaying","addEventListener","state","newState","oldState","didStateChange","didErrorChange","code","message","refreshPlayingState","syncPlaybackState","next","_playWhenReady","lastPlayingState","playing","buffering","setMetadata","setupProgressUpdates","interval","progress","getProgress","track","queue","currentIndex","updateProgress","stop","enabled","onQueueEnded","position","element","currentTime","navigatePath","navigateTrack","navigateTrackAsync","handleLoad","startIndex","defaultBehavior","handler","handleTrackLoad","event","trySkipToExistingQueueTrack","trackId","parentPath","queueSourcePath","getQueue","index","findIndex","t","extractIndex","skip","play","expandQueueAndPlay","result","resolveMediaItemsForPlayback","tracks","length","setQueue","disabled","nav","kind","playSingleTrack","catch","Error","setNavigationError","load","search","query","reference","getContent","getNavigationError","getFormattedNavigationError","notifyContentChanged","invalidateAllContent","setFavorites","favorites","setupPlayer","updateOptions","repeatMode","setRepeatMode","playWhenReady","setPlayWhenReady","progressUpdateEventInterval","getOptions","resolveMediaUrl","src","request","media","reloadCurrent","sourceTrack","getTrack","callback","requireElement","clearNowPlayingOverride","setTracks","emitQueueChanged","replaceTrack","lastTrack","current","lastPosition","lastIndex","_loadInProgress","_pendingSeek","loadId","doLoad","resolvedTrack","loadedTrack","nowPlaying","getNowPlaying","playbackError","togglePlayback","add","insertBeforeIndex","remove","indexes","move","fromIndex","toIndex","removeUpcomingTracks","reset","pwr","didChange","clearSleepTimerIfFading","getPlayWhenReady","getPlayback","getPlayingState","getRepeatMode","mode","getShuffleEnabled","setShuffleEnabled","getPlaybackError","getSleepTimer","time","sleepWhenPlayedToEnd","setSleepTimer","seconds","fadeDuration","sleepAfter","isActive","clearSleepTimer","setSleepTimerToEndOfTrack","setToEndOfTrack","wasRunning","clear","onTrackEnded","startPosition","artwork","map","hydratedTrack","hydrateFavorite","transformTrackArtwork","getActiveTrackIndex","requirePlayer","getActiveTrack","setActiveTrackFavorited","favorited","addFavorite","removeFavorite","updatedTrack","toggleActiveTrackFavorited","isFavorited","updateNowPlaying","update","duration","flashNowPlaying","durationMs","nowPlayingFlashRevert","clearTimeout","setTimeout","clearNowPlayingFlash","getOnline","getEqualizerSettings","setEqualizerEnabled","_enabled","setEqualizerPreset","_preset","setEqualizerLevels","_levels","getBatteryWarningPending","getBatteryOptimizationStatus","dismissBatteryWarning","openBatterySettings","getSystemVolume","setSystemVolume","_volume","setGate","_gate","_hasResolver","clearGate","isCarConnected","getOutput","openOutputPicker","supportsOutputSwitcher"],"sourceRoot":"../../../src","sources":["web/NativeAudioBrowser.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["getTrackIdentity","BrowserManager","classifyTrackNavigation","FavoriteManager","NavigationErrorManager","SearchManager","followMediaRedirect","HttpClient","RequestConfigBuilder","NowPlayingManager","OptionsManager","RemoteCommandController","QueuePlayer","SleepTimerManager","VolumeFader","PlaybackTimer","derivePlayingState","BrowserPathHelper","NativeAudioBrowser","name","equals","dispose","clearUpdateEventInterval","setPlaybackIntervalEnabled","remoteCommands","window","onlineHandler","removeEventListener","offlineHandler","progressTimer","intervalTimer","_online","navigator","onLine","sleepFader","getVolume","volume","setVolume","sleepTimer","constructor","parent","onComplete","console","log","resolve","pause","onSleepTimerChanged","onFadeStart","durationSeconds","start","onFadeCancel","cancel","path","browserManager","value","tabs","_value","configuration","onPathChanged","onContentChanged","onTabsChanged","onNavigationError","onFormattedNavigationError","onChapterMetadata","onTrackMetadata","onTimedMetadata","onPlaybackActiveTrackChanged","onPlaybackError","onPlaybackPlayWhenReadyChanged","onPlaybackPlayingState","onPlaybackProgressUpdated","onPlaybackInterval","onPlaybackQueueEnded","onPlaybackQueueChanged","onPlaybackRepeatModeChanged","onPlaybackShuffleModeChanged","onPlaybackChanged","onRemoteJumpBackward","onRemoteJumpForward","onRemoteNext","onRemotePause","onRemotePlay","onRemotePlayId","onRemotePlaySearch","onRemotePrevious","onRemoteSeek","onRemoteSkip","onRemoteStop","onOptionsChanged","onFavoriteChanged","onNowPlayingChanged","onOnlineChanged","onEqualizerChanged","onBatteryWarningPendingChanged","onBatteryOptimizationStatusChanged","onSystemVolumeChanged","onOutputChanged","onGate","resolveGate","gated","onCarConnectedChanged","handleRemoteJumpBackward","undefined","handleRemoteJumpForward","handleRemoteNext","handleRemotePause","handleRemotePlay","handleRemotePlayId","handleRemotePlaySearch","handleRemotePrevious","handleRemoteSeek","handleRemoteSkip","handleRemoteStop","httpClient","favoriteManager","navigationErrorManager","optionsManager","nowPlayingManager","searchManager","content","data","error","options","metadata","publishNowPlaying","addEventListener","state","newState","oldState","didStateChange","didErrorChange","code","message","refreshPlayingState","syncPlaybackState","next","_playWhenReady","lastPlayingState","playing","buffering","setMetadata","setupProgressUpdates","interval","progress","getProgress","track","queue","currentIndex","updateProgress","stop","enabled","onQueueEnded","position","element","currentTime","navigatePath","navigateTrack","navigateTrackAsync","handleLoad","startIndex","defaultBehavior","handler","handleTrackLoad","event","trySkipToExistingQueueTrack","trackId","parentPath","queueSourcePath","getQueue","index","findIndex","t","extractIndex","skip","play","expandQueueAndPlay","result","resolveMediaItemsForPlayback","tracks","length","setQueue","disabled","nav","kind","playSingleTrack","catch","Error","setNavigationError","load","search","query","reference","getContent","getNavigationError","getFormattedNavigationError","notifyContentChanged","invalidateAllContent","setFavorites","favorites","setupPlayer","updateOptions","repeatMode","setRepeatMode","playWhenReady","setPlayWhenReady","progressUpdateEventInterval","getOptions","resolveMediaRequest","src","request","resolvedRequestConfig","e","media","trackToReload","queued","getTrack","syncQueueTo","setTracks","emitQueueChanged","replaceTrack","transitionTo","requireElement","lastTrack","current","lastPosition","lastIndex","isTransition","nowPlaying","getNowPlaying","requirePlayer","unload","dispatch","type","callback","clearNowPlayingOverride","attempt","beginLoadAttempt","_isStopped","_loadInProgress","_pendingSeek","doLoad","resolvedRequest","resolvedMedia","headers","mediaLayerHeaders","isCurrent","loadedTrack","playbackError","togglePlayback","add","insertBeforeIndex","remove","indexes","move","fromIndex","toIndex","removeUpcomingTracks","reset","pwr","didChange","clearSleepTimerIfFading","getPlayWhenReady","getPlayback","getPlayingState","getRepeatMode","mode","getShuffleEnabled","setShuffleEnabled","getPlaybackError","getSleepTimer","time","sleepWhenPlayedToEnd","setSleepTimer","seconds","fadeDuration","sleepAfter","isActive","clearSleepTimer","setSleepTimerToEndOfTrack","setToEndOfTrack","wasRunning","clear","onTrackEnded","startPosition","artwork","map","hydratedTrack","hydrateFavorite","transformTrackArtwork","getActiveTrackIndex","getActiveTrack","setActiveTrackFavorited","favorited","addFavorite","removeFavorite","updatedTrack","toggleActiveTrackFavorited","isFavorited","updateNowPlaying","update","duration","flashNowPlaying","durationMs","nowPlayingFlashRevert","clearTimeout","setTimeout","clearNowPlayingFlash","getOnline","getEqualizerSettings","setEqualizerEnabled","_enabled","setEqualizerPreset","_preset","setEqualizerLevels","_levels","getBatteryWarningPending","getBatteryOptimizationStatus","dismissBatteryWarning","openBatterySettings","getSystemVolume","setSystemVolume","_volume","setGate","_gate","_hasResolver","clearGate","isCarConnected","getOutput","openOutputPicker","supportsOutputSwitcher"],"sourceRoot":"../../../src","sources":["web/NativeAudioBrowser.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * One attempt at loading a track, from the call that asked for it through to
5
+ * the continuations that finish it.
6
+ *
7
+ * A load on web spans two async boundaries — resolving the URL, then Shaka's
8
+ * own `load()` — and each has a continuation that must do nothing if something
9
+ * else has taken over in the meantime. Handing every continuation the same
10
+ * token turns that into one question, asked the same way in each place.
11
+ *
12
+ * Supersession is registered where it happens: {@link Player.beginLoadAttempt}
13
+ * cancels the previous attempt the moment a new one starts, and `stop()`
14
+ * cancels without starting one. Two integer generations used to stand in for
15
+ * this, incremented at different depths — the outer one at the call, the inner
16
+ * one only once the URL had resolved — so a load superseded during that gap
17
+ * still ran its own success path.
18
+ */
19
+ export class LoadAttempt {
20
+ cancelled = false;
21
+
22
+ /** Abandons this attempt; every continuation holding it will bail. */
23
+ cancel() {
24
+ this.cancelled = true;
25
+ }
26
+
27
+ /** Whether this attempt still owns the player. */
28
+ get isCurrent() {
29
+ return !this.cancelled;
30
+ }
31
+ }
32
+ //# sourceMappingURL=LoadAttempt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["LoadAttempt","cancelled","cancel","isCurrent"],"sourceRoot":"../../../../src","sources":["web/TrackPlayer/LoadAttempt.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMA,WAAW,CAAC;EACfC,SAAS,GAAG,KAAK;;EAEzB;EACAC,MAAMA,CAAA,EAAS;IACb,IAAI,CAACD,SAAS,GAAG,IAAI;EACvB;;EAEA;EACA,IAAIE,SAASA,CAAA,EAAY;IACvB,OAAO,CAAC,IAAI,CAACF,SAAS;EACxB;AACF","ignoreList":[]}
@@ -15,6 +15,12 @@
15
15
  * | `paused` | element `pause` |
16
16
  * | `trackEndedNaturally`| element `ended` |
17
17
  *
18
+ * `trackLoading` is left to Shaka rather than also dispatched when `load()` is
19
+ * called. Dispatching it up front would give the URL-resolution window a state
20
+ * to report, but it would put `loading` ahead of
21
+ * `onPlaybackActiveTrackChanged`, and native emits those the other way round —
22
+ * see the note in `NativeAudioBrowser.load`.
23
+ *
18
24
  * Deliberate *commands* (stop, error) set their terminal state directly rather
19
25
  * than flowing through here — they are intentions, not observations. The two
20
26
  * iOS-only events `trackUnloaded` and `audioFrameDecoded` are omitted: web has
@@ -45,7 +51,12 @@ export function nextPlaybackState(current, event) {
45
51
  return 'playing';
46
52
  case 'loadSeekCompleted':
47
53
  // The settle after a load; meaningless from anything but a fresh load.
48
- return current === 'loading' ? 'ready' : null;
54
+ // `buffering` counts as one: a load now always passes through it.
55
+ if (current !== 'loading' && current !== 'buffering') return null;
56
+ // Suppressed while the intent is to play, as Android suppresses
57
+ // STATE_READY there — it is a transient before `playing`, and emitting it
58
+ // flashes a settled, non-loading state mid-startup.
59
+ return event.playWhenReady ? null : 'ready';
49
60
  case 'paused':
50
61
  // A stopped player owns its state; a stray pause must not disturb it.
51
62
  if (current === 'stopped') return null;
@@ -61,7 +72,12 @@ export function nextPlaybackState(current, event) {
61
72
  // it would silently clear the error the UI is rendering (Shaka's
62
73
  // post-error unload emits buffering events without the stopped dispatch
63
74
  // gate); ended/stopped own their state until an explicit load or play.
64
- return current === 'playing' || current === 'ended' || current === 'stopped' || current === 'error' ? null : 'ready';
75
+ if (current === 'playing' || current === 'ended' || current === 'stopped' || current === 'error') {
76
+ return null;
77
+ }
78
+ // Same suppression as `loadSeekCompleted`: while the intent is to play,
79
+ // `playing` is the next state worth reporting.
80
+ return event.playWhenReady ? null : 'ready';
65
81
  }
66
82
  }
67
83
  //# sourceMappingURL=PlaybackStateMachine.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["nextPlaybackState","current","event","type","hasAsset"],"sourceRoot":"../../../../src","sources":["web/TrackPlayer/PlaybackStateMachine.ts"],"mappings":";;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASA,iBAAiBA,CAC/BC,OAAsB,EACtBC,KAAoB,EACE;EACtB,QAAQA,KAAK,CAACC,IAAI;IAChB,KAAK,cAAc;MACjB,OAAO,SAAS;IAClB,KAAK,qBAAqB;MACxB,OAAO,OAAO;IAChB,KAAK,SAAS;MACZ,OAAO,WAAW;IACpB,KAAK,SAAS;MACZ,OAAO,SAAS;IAClB,KAAK,mBAAmB;MACtB;MACA,OAAOF,OAAO,KAAK,SAAS,GAAG,OAAO,GAAG,IAAI;IAC/C,KAAK,QAAQ;MACX;MACA,IAAIA,OAAO,KAAK,SAAS,EAAE,OAAO,IAAI;MACtC;MACA,IAAI,CAACC,KAAK,CAACE,QAAQ,EAAE,OAAO,MAAM;MAClC;MACA;MACA,IAAIH,OAAO,KAAK,OAAO,EAAE,OAAO,IAAI;MACpC,OAAO,QAAQ;IACjB,KAAK,qBAAqB;MACxB;MACA;MACA;MACA;MACA;MACA,OAAOA,OAAO,KAAK,SAAS,IAC1BA,OAAO,KAAK,OAAO,IACnBA,OAAO,KAAK,SAAS,IACrBA,OAAO,KAAK,OAAO,GACjB,IAAI,GACJ,OAAO;EACf;AACF","ignoreList":[]}
1
+ {"version":3,"names":["nextPlaybackState","current","event","type","playWhenReady","hasAsset"],"sourceRoot":"../../../../src","sources":["web/TrackPlayer/PlaybackStateMachine.ts"],"mappings":";;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASA,iBAAiBA,CAC/BC,OAAsB,EACtBC,KAAoB,EACE;EACtB,QAAQA,KAAK,CAACC,IAAI;IAChB,KAAK,cAAc;MACjB,OAAO,SAAS;IAClB,KAAK,qBAAqB;MACxB,OAAO,OAAO;IAChB,KAAK,SAAS;MACZ,OAAO,WAAW;IACpB,KAAK,SAAS;MACZ,OAAO,SAAS;IAClB,KAAK,mBAAmB;MACtB;MACA;MACA,IAAIF,OAAO,KAAK,SAAS,IAAIA,OAAO,KAAK,WAAW,EAAE,OAAO,IAAI;MACjE;MACA;MACA;MACA,OAAOC,KAAK,CAACE,aAAa,GAAG,IAAI,GAAG,OAAO;IAC7C,KAAK,QAAQ;MACX;MACA,IAAIH,OAAO,KAAK,SAAS,EAAE,OAAO,IAAI;MACtC;MACA,IAAI,CAACC,KAAK,CAACG,QAAQ,EAAE,OAAO,MAAM;MAClC;MACA;MACA,IAAIJ,OAAO,KAAK,OAAO,EAAE,OAAO,IAAI;MACpC,OAAO,QAAQ;IACjB,KAAK,qBAAqB;MACxB;MACA;MACA;MACA;MACA;MACA,IACEA,OAAO,KAAK,SAAS,IACrBA,OAAO,KAAK,OAAO,IACnBA,OAAO,KAAK,SAAS,IACrBA,OAAO,KAAK,OAAO,EACnB;QACA,OAAO,IAAI;MACb;MACA;MACA;MACA,OAAOC,KAAK,CAACE,aAAa,GAAG,IAAI,GAAG,OAAO;EAC/C;AACF","ignoreList":[]}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  import { playbackErrorKind } from '../playbackErrorKind';
4
+ import { LoadAttempt } from './LoadAttempt';
4
5
  import { nextPlaybackState } from './PlaybackStateMachine';
5
6
  import { SetupNotCalledError } from './SetupNotCalledError';
6
7
  import { State } from './State';
@@ -9,6 +10,15 @@ import { State } from './State';
9
10
 
10
11
  // Shaka event type definitions
11
12
 
13
+ /** Per-load overrides that don't belong on the track itself. */
14
+
15
+ /** The mutable request Shaka hands to a networking-engine request filter. */
16
+
17
+ /**
18
+ * `shaka.util.Error.Code.LOAD_INTERRUPTED`. Inlined because shaka is imported
19
+ * for types only here, as the codes in `playbackErrorKind.ts` are.
20
+ */
21
+ const LOAD_INTERRUPTED = 7000;
12
22
  export class Player {
13
23
  hasInitialized = false;
14
24
  _current = undefined;
@@ -18,6 +28,13 @@ export class Player {
18
28
  };
19
29
  _isStopped = false;
20
30
  _loadInProgress = false;
31
+
32
+ /**
33
+ * Headers for the track currently loaded, applied by the request filter
34
+ * installed in `setupPlayer`. On the instance rather than per request so the
35
+ * manifest, its segments and any key requests all carry them.
36
+ */
37
+
21
38
  // current getter/setter
22
39
  get current() {
23
40
  return this._current;
@@ -91,6 +108,18 @@ export class Player {
91
108
  await player.attach(element);
92
109
  this.player = player;
93
110
 
111
+ // Apply the media config's headers to Shaka's requests, as native does to
112
+ // the AVURLAsset / ExoPlayer DataSpec. Without this they resolve and are
113
+ // then dropped, and authenticated media 401s on web alone.
114
+ player.getNetworkingEngine()?.registerRequestFilter((_type, request) => {
115
+ const headers = this.mediaHeaders;
116
+ if (!headers) return;
117
+ request.headers = {
118
+ ...request.headers,
119
+ ...headers
120
+ };
121
+ });
122
+
94
123
  // Listen for relevant events
95
124
  player.addEventListener('error', event => {
96
125
  const errorEvent = event;
@@ -102,22 +131,39 @@ export class Player {
102
131
  element.addEventListener('playing', () => this.dispatch({
103
132
  type: 'playing'
104
133
  }));
105
- element.addEventListener('pause', () => this.dispatch({
106
- type: 'paused',
107
- hasAsset: this.current !== undefined
108
- }));
109
- player.addEventListener('loading', () => this.dispatch({
110
- type: 'trackLoading'
111
- }));
134
+ element.addEventListener('pause', () => {
135
+ // A track playing out fires `pause` and then `ended`. Only the `ended`
136
+ // is meaningful — reporting `paused` first flashes a state Android never
137
+ // reports, mid-queue or at the true end.
138
+ if (element.ended) return;
139
+ this.dispatch({
140
+ type: 'paused',
141
+ hasAsset: this.current !== undefined
142
+ });
143
+ });
144
+ player.addEventListener('loading', () => {
145
+ this.dispatch({
146
+ type: 'trackLoading'
147
+ });
148
+ // Every load passes through `buffering`, as ExoPlayer's always does via
149
+ // STATE_BUFFERING. Shaka only fires its own `buffering` event when a load
150
+ // actually stalls, so a load served from cache would otherwise skip a
151
+ // state native always reports.
152
+ this.dispatch({
153
+ type: 'waiting'
154
+ });
155
+ });
112
156
  player.addEventListener('loaded', () => this.dispatch({
113
- type: 'loadSeekCompleted'
157
+ type: 'loadSeekCompleted',
158
+ playWhenReady: this.playWhenReady
114
159
  }));
115
160
  player.addEventListener('buffering', event => {
116
161
  const bufferingEvent = event;
117
162
  this.dispatch(bufferingEvent.detail.buffering === true ? {
118
163
  type: 'waiting'
119
164
  } : {
120
- type: 'bufferingSufficient'
165
+ type: 'bufferingSufficient',
166
+ playWhenReady: this.playWhenReady
121
167
  });
122
168
  });
123
169
 
@@ -168,6 +214,24 @@ export class Player {
168
214
  };
169
215
  }
170
216
  onError(shakaError) {
217
+ // An interrupted load is not a failure. Shaka raises it when a `load()` is
218
+ // cut short by a newer `load()` or an `unload()` — always something we
219
+ // asked for — and names it accordingly: `createAbortLoadError_()`. Its own
220
+ // code skips its cleanup unload for this code too (player.js:2010).
221
+ //
222
+ // Recognising it here rather than pre-emptively invalidating the load keeps
223
+ // the two independent: any teardown, in any order, can abort a load without
224
+ // the abort reaching a consumer as an error. Eagerly unloading to stop the
225
+ // outgoing track used to flash an error banner on every fast track switch.
226
+ if (shakaError.code === LOAD_INTERRUPTED) {
227
+ console.debug('Load interrupted by a newer load or an unload');
228
+ return;
229
+ }
230
+
231
+ // Before the unload below resets it: a retry resumes from where playback
232
+ // failed, as native does.
233
+ this.rememberResumePosition();
234
+
171
235
  // unload the current track to allow for clean playback on other
172
236
  this.player?.unload().catch(err => {
173
237
  console.error(`Error unloading player on 'onError'`, err);
@@ -191,16 +255,49 @@ export class Player {
191
255
  console.debug('Error code', shakaError.code, 'object', shakaError);
192
256
  }
193
257
 
194
- /** Invalidates the .then/.catch of superseded loads — a Shaka load
195
- * interrupted by stop() or a newer load() rejects, and only the active load
196
- * may surface that (or run its onLoaded side effects). */
197
- _loadGeneration = 0;
198
- load(track, onLoaded) {
258
+ /**
259
+ * The load attempt that owns the player, or none. See {@link LoadAttempt}.
260
+ */
261
+
262
+ /**
263
+ * Starts an attempt, superseding whatever was in flight.
264
+ *
265
+ * Called by the outermost `load()` so supersession is registered when the
266
+ * caller asks for it, not when some inner stage happens to reach it.
267
+ */
268
+ beginLoadAttempt() {
269
+ this._attempt?.cancel();
270
+ const attempt = new LoadAttempt();
271
+ this._attempt = attempt;
272
+ return attempt;
273
+ }
274
+
275
+ /** Abandons the attempt in flight without starting another — `stop()`. */
276
+ cancelLoadAttempt() {
277
+ this._attempt?.cancel();
278
+ this._attempt = undefined;
279
+ }
280
+ load(track, onLoaded, options) {
199
281
  const player = this.requirePlayer();
200
282
  this._isStopped = false;
201
283
  this._loadInProgress = true;
202
- const generation = ++this._loadGeneration;
203
- if (!track.src) {
284
+ const headers = options?.headers;
285
+ this.mediaHeaders = headers && Object.keys(headers).length > 0 ? headers : undefined;
286
+ // What Shaka plays may differ from what the caller queued; `track` is left
287
+ // alone so `current` and `getActiveTrack()` keep the caller's identity for
288
+ // it rather than a transport detail.
289
+ const playbackSrc = options?.src ?? track.src;
290
+ // Current on the attempt, not on success — native derives the active track
291
+ // from the queue, so a failed load is still the active track there and its
292
+ // error has somewhere to show. `getActiveTrackIndex()` already reported the
293
+ // queue's index either way; this makes the pair agree.
294
+ this.current = track;
295
+ // The attempt a subclass began before resolving the URL, so its resolution
296
+ // stage and both continuations below share one token. Passed rather than
297
+ // read off the instance: a direct `load()` is itself the outermost call and
298
+ // must start a fresh attempt, superseding whatever was in flight.
299
+ const attempt = options?.attempt ?? this.beginLoadAttempt();
300
+ if (!playbackSrc) {
204
301
  this._loadInProgress = false;
205
302
  this._pendingSeek = undefined;
206
303
  const error = {
@@ -214,10 +311,9 @@ export class Player {
214
311
  };
215
312
  return;
216
313
  }
217
- player.load(track.src).then(() => {
218
- if (generation !== this._loadGeneration || this._isStopped) return;
314
+ player.load(playbackSrc).then(() => {
315
+ if (!attempt.isCurrent) return;
219
316
  this._loadInProgress = false;
220
- this.current = track;
221
317
  onLoaded?.(track);
222
318
 
223
319
  // Execute any pending seek that arrived during loading
@@ -231,7 +327,7 @@ export class Player {
231
327
  this.play();
232
328
  }
233
329
  }).catch(err => {
234
- if (generation !== this._loadGeneration || this._isStopped) return;
330
+ if (!attempt.isCurrent) return;
235
331
  this._loadInProgress = false;
236
332
  this._pendingSeek = undefined;
237
333
  this.onError(this.toNormalizedError(err));
@@ -240,8 +336,14 @@ export class Player {
240
336
  stop(onComplete) {
241
337
  const player = this.requirePlayer();
242
338
 
339
+ // Whatever was loading no longer owns the player: its continuations, at
340
+ // either boundary, must not revive it.
341
+ this.cancelLoadAttempt();
342
+
243
343
  // Match Android: stop sets playWhenReady=false and state=stopped,
244
- // but keeps the current track so play() can resume.
344
+ // but keeps the current track so play() can resume — from where it
345
+ // stopped, which ExoPlayer preserves across its own stop/prepare pair.
346
+ this.rememberResumePosition();
245
347
  this._isStopped = true;
246
348
  this._loadInProgress = false;
247
349
  this._pendingSeek = undefined;
@@ -254,34 +356,125 @@ export class Player {
254
356
  onComplete?.(); // Still call onComplete so callers aren't left hanging
255
357
  });
256
358
  }
359
+
360
+ /**
361
+ * Where playback was when it failed or was stopped, so a re-prepare can
362
+ * resume rather than restart.
363
+ *
364
+ * Kept against the track it belongs to rather than as a bare number, so it
365
+ * self-invalidates when a different track becomes current and cannot be
366
+ * applied to the wrong one.
367
+ */
368
+
369
+ /**
370
+ * Records the current position, when there is one worth recording.
371
+ *
372
+ * A zero is never recorded: `onError` runs for a *load* failure too, where
373
+ * the element has just been torn down and reads 0, and overwriting a good
374
+ * position with that made a failed retry lose the place a successful one
375
+ * would have resumed from.
376
+ */
377
+ rememberResumePosition() {
378
+ const position = this.element?.currentTime;
379
+ const track = this.current;
380
+ if (!track || typeof position !== 'number' || position <= 0) return;
381
+ this._resume = {
382
+ track,
383
+ position
384
+ };
385
+ }
386
+
387
+ /**
388
+ * Android's `prepare()`, which both `play()` and `retry()` call.
389
+ *
390
+ * It early-returns unless ExoPlayer is STATE_IDLE, so it reconnects after an
391
+ * error or a stop and never re-buffers a healthy stream; `error`/`_isStopped`
392
+ * is web's equivalent of idle. Re-preparing re-resolves the URL, which is the
393
+ * whole point — a signed URL or token may have expired since the failure, and
394
+ * replaying the cached one just fails again. iOS says the same thing in its
395
+ * own `retry()`: "Re-resolve rather than replay the cached URL".
396
+ *
397
+ * Returns whether it handled the call, so `play()` knows not to also poke the
398
+ * element.
399
+ */
400
+ reprepare() {
401
+ if (!this.current) return false;
402
+ if (this.state.state !== State.Error && !this._isStopped) return false;
403
+
404
+ // Not for live: `currentTime` there is elapsed time on a connection that no
405
+ // longer exists, and a fresh connection already *is* the live edge. Seeking
406
+ // to the old value asks for a point the new stream does not have. The
407
+ // track's own `live` declaration is the gate, as it is in `seekToLiveEdge`
408
+ // and on both native platforms.
409
+ const remembered = this._resume?.track === this.current ? this._resume.position : undefined;
410
+ const resume = this.current.live === true ? undefined : remembered;
411
+ this.reloadCurrent(resume);
412
+ return true;
413
+ }
257
414
  play() {
258
415
  const element = this.requireElement();
259
416
  this.playWhenReady = true;
260
- if (this.state.state === State.Error && this.current) {
261
- this.reloadCurrent();
262
- return;
263
- }
264
417
 
265
- // Match Android: play() after stop() re-prepares the current track
266
- if (this._isStopped && this.current) {
267
- this.reloadCurrent();
268
- return;
269
- }
270
- element.play().catch(err => console.error(err));
418
+ // Matches Android's play(): set the intent, then prepare — which does
419
+ // something only when idle, i.e. after an error or a stop.
420
+ if (this.reprepare()) return;
421
+ element.play().catch(err => this.onPlayRejected(err));
422
+ }
423
+
424
+ /**
425
+ * A rejected `element.play()`. Web-only: neither native platform can refuse
426
+ * a play intent, so there is no parity target here.
427
+ *
428
+ * `AbortError` means a newer load interrupted this one — that load owns the
429
+ * state and the intent stands. Anything else, autoplay policy above all, is
430
+ * the browser refusing: the intent cannot be honoured, so it is cleared and
431
+ * the state settles rather than stranding on `loading`/`buffering`, which is
432
+ * where suppressing `ready` under `playWhenReady` would otherwise leave it.
433
+ */
434
+ onPlayRejected(err) {
435
+ console.error(err);
436
+ const name = typeof err === 'object' && err !== null && 'name' in err ? err.name : undefined;
437
+ if (name === 'AbortError') return;
438
+ this.playWhenReady = false;
439
+ this.dispatch({
440
+ type: 'paused',
441
+ hasAsset: this.current !== undefined
442
+ });
271
443
  }
272
444
 
273
445
  /**
274
- * Reloads the current track. `current` holds the *resolved* track, so
275
- * subclasses that resolve media URLs override this to reload from the
276
- * original source instead — re-feeding `current` into `load()` would
277
- * re-resolve an already-resolved URL and leak it into the queue.
446
+ * The track a reload re-feeds. `current` holds it as the caller queued it —
447
+ * `load()` takes the resolved URL separately, via `LoadOptions.src` — so
448
+ * re-feeding it is safe.
449
+ *
450
+ * The overridable part of {@link reloadCurrent}, rather than the whole
451
+ * method: a subclass backed by a queue changes only where the track comes
452
+ * from, and the reload itself stays in one place.
278
453
  */
279
- reloadCurrent() {
280
- if (this.current) this.load(this.current);
454
+ trackToReload() {
455
+ return this.current;
456
+ }
457
+
458
+ /** Reloads the track {@link trackToReload} names, resuming if asked to. */
459
+ reloadCurrent(resumePosition) {
460
+ const track = this.trackToReload();
461
+ if (!track) return;
462
+ this.load(track, resumePosition === undefined ? undefined : () => this.seekTo(resumePosition));
281
463
  }
464
+
465
+ /**
466
+ * Android's `retry()` is `player.prepare()` — the same call `play()` makes,
467
+ * without setting the intent. So this is `play()` minus the intent.
468
+ *
469
+ * It is emphatically not `shaka.Player.retryStreaming()`, which this used to
470
+ * call: that returns false and does nothing at all unless the load mode is
471
+ * MEDIA_SOURCE, so for a progressive file — the case a signed URL is for — it
472
+ * was a silent no-op, while the `play()` the same docs offer as the
473
+ * alternative recovered properly.
474
+ */
282
475
  retry() {
283
- const player = this.requirePlayer();
284
- player.retryStreaming();
476
+ this.requirePlayer();
477
+ this.reprepare();
285
478
  }
286
479
  pause() {
287
480
  const element = this.requireElement();