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","require","_BrowserManager","_classifyTrackNavigation","_FavoriteManager","_NavigationErrorManager","_SearchManager","_HttpClient","_RequestConfigBuilder","_NowPlayingManager","_OptionsManager","_RemoteCommandController","_TrackPlayer","_PlaybackTimer","_PlayingStateFactory","_BrowserPathHelper","NativeAudioBrowser","QueuePlayer","name","equals","dispose","clearUpdateEventInterval","setPlaybackIntervalEnabled","remoteCommands","window","onlineHandler","removeEventListener","offlineHandler","currentLoadId","progressTimer","PlaybackTimer","intervalTimer","_online","navigator","onLine","sleepFader","VolumeFader","getVolume","volume","setVolume","sleepTimer","SleepTimerManager","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","HttpClient","favoriteManager","FavoriteManager","navigationErrorManager","NavigationErrorManager","optionsManager","OptionsManager","nowPlayingManager","NowPlayingManager","RemoteCommandController","BrowserManager","searchManager","SearchManager","content","data","error","options","metadata","publishNowPlaying","addEventListener","state","newState","oldState","didStateChange","didErrorChange","code","message","refreshPlayingState","syncPlaybackState","next","derivePlayingState","_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","BrowserPathHelper","extractIndex","getTrackIdentity","skip","play","expandQueueAndPlay","result","resolveMediaItemsForPlayback","tracks","length","setQueue","disabled","nav","classifyTrackNavigation","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","RequestConfigBuilder","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","exports"],"sourceRoot":"../../../src","sources":["web/NativeAudioBrowser.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_getTrackIdentity","require","_BrowserManager","_classifyTrackNavigation","_FavoriteManager","_NavigationErrorManager","_SearchManager","_followMediaRedirect","_HttpClient","_RequestConfigBuilder","_NowPlayingManager","_OptionsManager","_RemoteCommandController","_TrackPlayer","_PlaybackTimer","_PlayingStateFactory","_BrowserPathHelper","NativeAudioBrowser","QueuePlayer","name","equals","dispose","clearUpdateEventInterval","setPlaybackIntervalEnabled","remoteCommands","window","onlineHandler","removeEventListener","offlineHandler","progressTimer","PlaybackTimer","intervalTimer","_online","navigator","onLine","sleepFader","VolumeFader","getVolume","volume","setVolume","sleepTimer","SleepTimerManager","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","HttpClient","favoriteManager","FavoriteManager","navigationErrorManager","NavigationErrorManager","optionsManager","OptionsManager","nowPlayingManager","NowPlayingManager","RemoteCommandController","BrowserManager","searchManager","SearchManager","content","data","error","options","metadata","publishNowPlaying","addEventListener","state","newState","oldState","didStateChange","didErrorChange","code","message","refreshPlayingState","syncPlaybackState","next","derivePlayingState","_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","BrowserPathHelper","extractIndex","getTrackIdentity","skip","play","expandQueueAndPlay","result","resolveMediaItemsForPlayback","tracks","length","setQueue","disabled","nav","classifyTrackNavigation","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","RequestConfigBuilder","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","followMediaRedirect","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","exports"],"sourceRoot":"../../../src","sources":["web/NativeAudioBrowser.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.LoadAttempt = void 0;
7
+ /**
8
+ * One attempt at loading a track, from the call that asked for it through to
9
+ * the continuations that finish it.
10
+ *
11
+ * A load on web spans two async boundaries — resolving the URL, then Shaka's
12
+ * own `load()` — and each has a continuation that must do nothing if something
13
+ * else has taken over in the meantime. Handing every continuation the same
14
+ * token turns that into one question, asked the same way in each place.
15
+ *
16
+ * Supersession is registered where it happens: {@link Player.beginLoadAttempt}
17
+ * cancels the previous attempt the moment a new one starts, and `stop()`
18
+ * cancels without starting one. Two integer generations used to stand in for
19
+ * this, incremented at different depths — the outer one at the call, the inner
20
+ * one only once the URL had resolved — so a load superseded during that gap
21
+ * still ran its own success path.
22
+ */
23
+ class LoadAttempt {
24
+ cancelled = false;
25
+
26
+ /** Abandons this attempt; every continuation holding it will bail. */
27
+ cancel() {
28
+ this.cancelled = true;
29
+ }
30
+
31
+ /** Whether this attempt still owns the player. */
32
+ get isCurrent() {
33
+ return !this.cancelled;
34
+ }
35
+ }
36
+ exports.LoadAttempt = LoadAttempt;
37
+ //# sourceMappingURL=LoadAttempt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["LoadAttempt","cancelled","cancel","isCurrent","exports"],"sourceRoot":"../../../../src","sources":["web/TrackPlayer/LoadAttempt.ts"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,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;AAACG,OAAA,CAAAJ,WAAA,GAAAA,WAAA","ignoreList":[]}
@@ -19,6 +19,12 @@ exports.nextPlaybackState = nextPlaybackState;
19
19
  * | `paused` | element `pause` |
20
20
  * | `trackEndedNaturally`| element `ended` |
21
21
  *
22
+ * `trackLoading` is left to Shaka rather than also dispatched when `load()` is
23
+ * called. Dispatching it up front would give the URL-resolution window a state
24
+ * to report, but it would put `loading` ahead of
25
+ * `onPlaybackActiveTrackChanged`, and native emits those the other way round —
26
+ * see the note in `NativeAudioBrowser.load`.
27
+ *
22
28
  * Deliberate *commands* (stop, error) set their terminal state directly rather
23
29
  * than flowing through here — they are intentions, not observations. The two
24
30
  * iOS-only events `trackUnloaded` and `audioFrameDecoded` are omitted: web has
@@ -49,7 +55,12 @@ function nextPlaybackState(current, event) {
49
55
  return 'playing';
50
56
  case 'loadSeekCompleted':
51
57
  // The settle after a load; meaningless from anything but a fresh load.
52
- return current === 'loading' ? 'ready' : null;
58
+ // `buffering` counts as one: a load now always passes through it.
59
+ if (current !== 'loading' && current !== 'buffering') return null;
60
+ // Suppressed while the intent is to play, as Android suppresses
61
+ // STATE_READY there — it is a transient before `playing`, and emitting it
62
+ // flashes a settled, non-loading state mid-startup.
63
+ return event.playWhenReady ? null : 'ready';
53
64
  case 'paused':
54
65
  // A stopped player owns its state; a stray pause must not disturb it.
55
66
  if (current === 'stopped') return null;
@@ -65,7 +76,12 @@ function nextPlaybackState(current, event) {
65
76
  // it would silently clear the error the UI is rendering (Shaka's
66
77
  // post-error unload emits buffering events without the stopped dispatch
67
78
  // gate); ended/stopped own their state until an explicit load or play.
68
- return current === 'playing' || current === 'ended' || current === 'stopped' || current === 'error' ? null : 'ready';
79
+ if (current === 'playing' || current === 'ended' || current === 'stopped' || current === 'error') {
80
+ return null;
81
+ }
82
+ // Same suppression as `loadSeekCompleted`: while the intent is to play,
83
+ // `playing` is the next state worth reporting.
84
+ return event.playWhenReady ? null : 'ready';
69
85
  }
70
86
  }
71
87
  //# 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;AACO,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;AACO,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":[]}
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.Player = void 0;
7
7
  var _playbackErrorKind = require("../playbackErrorKind");
8
+ var _LoadAttempt = require("./LoadAttempt");
8
9
  var _PlaybackStateMachine = require("./PlaybackStateMachine");
9
10
  var _SetupNotCalledError = require("./SetupNotCalledError");
10
11
  var _State = require("./State");
@@ -13,6 +14,15 @@ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r
13
14
 
14
15
  // Shaka event type definitions
15
16
 
17
+ /** Per-load overrides that don't belong on the track itself. */
18
+
19
+ /** The mutable request Shaka hands to a networking-engine request filter. */
20
+
21
+ /**
22
+ * `shaka.util.Error.Code.LOAD_INTERRUPTED`. Inlined because shaka is imported
23
+ * for types only here, as the codes in `playbackErrorKind.ts` are.
24
+ */
25
+ const LOAD_INTERRUPTED = 7000;
16
26
  class Player {
17
27
  hasInitialized = false;
18
28
  _current = undefined;
@@ -22,6 +32,13 @@ class Player {
22
32
  };
23
33
  _isStopped = false;
24
34
  _loadInProgress = false;
35
+
36
+ /**
37
+ * Headers for the track currently loaded, applied by the request filter
38
+ * installed in `setupPlayer`. On the instance rather than per request so the
39
+ * manifest, its segments and any key requests all carry them.
40
+ */
41
+
25
42
  // current getter/setter
26
43
  get current() {
27
44
  return this._current;
@@ -95,6 +112,18 @@ class Player {
95
112
  await player.attach(element);
96
113
  this.player = player;
97
114
 
115
+ // Apply the media config's headers to Shaka's requests, as native does to
116
+ // the AVURLAsset / ExoPlayer DataSpec. Without this they resolve and are
117
+ // then dropped, and authenticated media 401s on web alone.
118
+ player.getNetworkingEngine()?.registerRequestFilter((_type, request) => {
119
+ const headers = this.mediaHeaders;
120
+ if (!headers) return;
121
+ request.headers = {
122
+ ...request.headers,
123
+ ...headers
124
+ };
125
+ });
126
+
98
127
  // Listen for relevant events
99
128
  player.addEventListener('error', event => {
100
129
  const errorEvent = event;
@@ -106,22 +135,39 @@ class Player {
106
135
  element.addEventListener('playing', () => this.dispatch({
107
136
  type: 'playing'
108
137
  }));
109
- element.addEventListener('pause', () => this.dispatch({
110
- type: 'paused',
111
- hasAsset: this.current !== undefined
112
- }));
113
- player.addEventListener('loading', () => this.dispatch({
114
- type: 'trackLoading'
115
- }));
138
+ element.addEventListener('pause', () => {
139
+ // A track playing out fires `pause` and then `ended`. Only the `ended`
140
+ // is meaningful — reporting `paused` first flashes a state Android never
141
+ // reports, mid-queue or at the true end.
142
+ if (element.ended) return;
143
+ this.dispatch({
144
+ type: 'paused',
145
+ hasAsset: this.current !== undefined
146
+ });
147
+ });
148
+ player.addEventListener('loading', () => {
149
+ this.dispatch({
150
+ type: 'trackLoading'
151
+ });
152
+ // Every load passes through `buffering`, as ExoPlayer's always does via
153
+ // STATE_BUFFERING. Shaka only fires its own `buffering` event when a load
154
+ // actually stalls, so a load served from cache would otherwise skip a
155
+ // state native always reports.
156
+ this.dispatch({
157
+ type: 'waiting'
158
+ });
159
+ });
116
160
  player.addEventListener('loaded', () => this.dispatch({
117
- type: 'loadSeekCompleted'
161
+ type: 'loadSeekCompleted',
162
+ playWhenReady: this.playWhenReady
118
163
  }));
119
164
  player.addEventListener('buffering', event => {
120
165
  const bufferingEvent = event;
121
166
  this.dispatch(bufferingEvent.detail.buffering === true ? {
122
167
  type: 'waiting'
123
168
  } : {
124
- type: 'bufferingSufficient'
169
+ type: 'bufferingSufficient',
170
+ playWhenReady: this.playWhenReady
125
171
  });
126
172
  });
127
173
 
@@ -172,6 +218,24 @@ class Player {
172
218
  };
173
219
  }
174
220
  onError(shakaError) {
221
+ // An interrupted load is not a failure. Shaka raises it when a `load()` is
222
+ // cut short by a newer `load()` or an `unload()` — always something we
223
+ // asked for — and names it accordingly: `createAbortLoadError_()`. Its own
224
+ // code skips its cleanup unload for this code too (player.js:2010).
225
+ //
226
+ // Recognising it here rather than pre-emptively invalidating the load keeps
227
+ // the two independent: any teardown, in any order, can abort a load without
228
+ // the abort reaching a consumer as an error. Eagerly unloading to stop the
229
+ // outgoing track used to flash an error banner on every fast track switch.
230
+ if (shakaError.code === LOAD_INTERRUPTED) {
231
+ console.debug('Load interrupted by a newer load or an unload');
232
+ return;
233
+ }
234
+
235
+ // Before the unload below resets it: a retry resumes from where playback
236
+ // failed, as native does.
237
+ this.rememberResumePosition();
238
+
175
239
  // unload the current track to allow for clean playback on other
176
240
  this.player?.unload().catch(err => {
177
241
  console.error(`Error unloading player on 'onError'`, err);
@@ -195,16 +259,49 @@ class Player {
195
259
  console.debug('Error code', shakaError.code, 'object', shakaError);
196
260
  }
197
261
 
198
- /** Invalidates the .then/.catch of superseded loads — a Shaka load
199
- * interrupted by stop() or a newer load() rejects, and only the active load
200
- * may surface that (or run its onLoaded side effects). */
201
- _loadGeneration = 0;
202
- load(track, onLoaded) {
262
+ /**
263
+ * The load attempt that owns the player, or none. See {@link LoadAttempt}.
264
+ */
265
+
266
+ /**
267
+ * Starts an attempt, superseding whatever was in flight.
268
+ *
269
+ * Called by the outermost `load()` so supersession is registered when the
270
+ * caller asks for it, not when some inner stage happens to reach it.
271
+ */
272
+ beginLoadAttempt() {
273
+ this._attempt?.cancel();
274
+ const attempt = new _LoadAttempt.LoadAttempt();
275
+ this._attempt = attempt;
276
+ return attempt;
277
+ }
278
+
279
+ /** Abandons the attempt in flight without starting another — `stop()`. */
280
+ cancelLoadAttempt() {
281
+ this._attempt?.cancel();
282
+ this._attempt = undefined;
283
+ }
284
+ load(track, onLoaded, options) {
203
285
  const player = this.requirePlayer();
204
286
  this._isStopped = false;
205
287
  this._loadInProgress = true;
206
- const generation = ++this._loadGeneration;
207
- if (!track.src) {
288
+ const headers = options?.headers;
289
+ this.mediaHeaders = headers && Object.keys(headers).length > 0 ? headers : undefined;
290
+ // What Shaka plays may differ from what the caller queued; `track` is left
291
+ // alone so `current` and `getActiveTrack()` keep the caller's identity for
292
+ // it rather than a transport detail.
293
+ const playbackSrc = options?.src ?? track.src;
294
+ // Current on the attempt, not on success — native derives the active track
295
+ // from the queue, so a failed load is still the active track there and its
296
+ // error has somewhere to show. `getActiveTrackIndex()` already reported the
297
+ // queue's index either way; this makes the pair agree.
298
+ this.current = track;
299
+ // The attempt a subclass began before resolving the URL, so its resolution
300
+ // stage and both continuations below share one token. Passed rather than
301
+ // read off the instance: a direct `load()` is itself the outermost call and
302
+ // must start a fresh attempt, superseding whatever was in flight.
303
+ const attempt = options?.attempt ?? this.beginLoadAttempt();
304
+ if (!playbackSrc) {
208
305
  this._loadInProgress = false;
209
306
  this._pendingSeek = undefined;
210
307
  const error = {
@@ -218,10 +315,9 @@ class Player {
218
315
  };
219
316
  return;
220
317
  }
221
- player.load(track.src).then(() => {
222
- if (generation !== this._loadGeneration || this._isStopped) return;
318
+ player.load(playbackSrc).then(() => {
319
+ if (!attempt.isCurrent) return;
223
320
  this._loadInProgress = false;
224
- this.current = track;
225
321
  onLoaded?.(track);
226
322
 
227
323
  // Execute any pending seek that arrived during loading
@@ -235,7 +331,7 @@ class Player {
235
331
  this.play();
236
332
  }
237
333
  }).catch(err => {
238
- if (generation !== this._loadGeneration || this._isStopped) return;
334
+ if (!attempt.isCurrent) return;
239
335
  this._loadInProgress = false;
240
336
  this._pendingSeek = undefined;
241
337
  this.onError(this.toNormalizedError(err));
@@ -244,8 +340,14 @@ class Player {
244
340
  stop(onComplete) {
245
341
  const player = this.requirePlayer();
246
342
 
343
+ // Whatever was loading no longer owns the player: its continuations, at
344
+ // either boundary, must not revive it.
345
+ this.cancelLoadAttempt();
346
+
247
347
  // Match Android: stop sets playWhenReady=false and state=stopped,
248
- // but keeps the current track so play() can resume.
348
+ // but keeps the current track so play() can resume — from where it
349
+ // stopped, which ExoPlayer preserves across its own stop/prepare pair.
350
+ this.rememberResumePosition();
249
351
  this._isStopped = true;
250
352
  this._loadInProgress = false;
251
353
  this._pendingSeek = undefined;
@@ -258,34 +360,125 @@ class Player {
258
360
  onComplete?.(); // Still call onComplete so callers aren't left hanging
259
361
  });
260
362
  }
363
+
364
+ /**
365
+ * Where playback was when it failed or was stopped, so a re-prepare can
366
+ * resume rather than restart.
367
+ *
368
+ * Kept against the track it belongs to rather than as a bare number, so it
369
+ * self-invalidates when a different track becomes current and cannot be
370
+ * applied to the wrong one.
371
+ */
372
+
373
+ /**
374
+ * Records the current position, when there is one worth recording.
375
+ *
376
+ * A zero is never recorded: `onError` runs for a *load* failure too, where
377
+ * the element has just been torn down and reads 0, and overwriting a good
378
+ * position with that made a failed retry lose the place a successful one
379
+ * would have resumed from.
380
+ */
381
+ rememberResumePosition() {
382
+ const position = this.element?.currentTime;
383
+ const track = this.current;
384
+ if (!track || typeof position !== 'number' || position <= 0) return;
385
+ this._resume = {
386
+ track,
387
+ position
388
+ };
389
+ }
390
+
391
+ /**
392
+ * Android's `prepare()`, which both `play()` and `retry()` call.
393
+ *
394
+ * It early-returns unless ExoPlayer is STATE_IDLE, so it reconnects after an
395
+ * error or a stop and never re-buffers a healthy stream; `error`/`_isStopped`
396
+ * is web's equivalent of idle. Re-preparing re-resolves the URL, which is the
397
+ * whole point — a signed URL or token may have expired since the failure, and
398
+ * replaying the cached one just fails again. iOS says the same thing in its
399
+ * own `retry()`: "Re-resolve rather than replay the cached URL".
400
+ *
401
+ * Returns whether it handled the call, so `play()` knows not to also poke the
402
+ * element.
403
+ */
404
+ reprepare() {
405
+ if (!this.current) return false;
406
+ if (this.state.state !== _State.State.Error && !this._isStopped) return false;
407
+
408
+ // Not for live: `currentTime` there is elapsed time on a connection that no
409
+ // longer exists, and a fresh connection already *is* the live edge. Seeking
410
+ // to the old value asks for a point the new stream does not have. The
411
+ // track's own `live` declaration is the gate, as it is in `seekToLiveEdge`
412
+ // and on both native platforms.
413
+ const remembered = this._resume?.track === this.current ? this._resume.position : undefined;
414
+ const resume = this.current.live === true ? undefined : remembered;
415
+ this.reloadCurrent(resume);
416
+ return true;
417
+ }
261
418
  play() {
262
419
  const element = this.requireElement();
263
420
  this.playWhenReady = true;
264
- if (this.state.state === _State.State.Error && this.current) {
265
- this.reloadCurrent();
266
- return;
267
- }
268
421
 
269
- // Match Android: play() after stop() re-prepares the current track
270
- if (this._isStopped && this.current) {
271
- this.reloadCurrent();
272
- return;
273
- }
274
- element.play().catch(err => console.error(err));
422
+ // Matches Android's play(): set the intent, then prepare — which does
423
+ // something only when idle, i.e. after an error or a stop.
424
+ if (this.reprepare()) return;
425
+ element.play().catch(err => this.onPlayRejected(err));
426
+ }
427
+
428
+ /**
429
+ * A rejected `element.play()`. Web-only: neither native platform can refuse
430
+ * a play intent, so there is no parity target here.
431
+ *
432
+ * `AbortError` means a newer load interrupted this one — that load owns the
433
+ * state and the intent stands. Anything else, autoplay policy above all, is
434
+ * the browser refusing: the intent cannot be honoured, so it is cleared and
435
+ * the state settles rather than stranding on `loading`/`buffering`, which is
436
+ * where suppressing `ready` under `playWhenReady` would otherwise leave it.
437
+ */
438
+ onPlayRejected(err) {
439
+ console.error(err);
440
+ const name = typeof err === 'object' && err !== null && 'name' in err ? err.name : undefined;
441
+ if (name === 'AbortError') return;
442
+ this.playWhenReady = false;
443
+ this.dispatch({
444
+ type: 'paused',
445
+ hasAsset: this.current !== undefined
446
+ });
275
447
  }
276
448
 
277
449
  /**
278
- * Reloads the current track. `current` holds the *resolved* track, so
279
- * subclasses that resolve media URLs override this to reload from the
280
- * original source instead — re-feeding `current` into `load()` would
281
- * re-resolve an already-resolved URL and leak it into the queue.
450
+ * The track a reload re-feeds. `current` holds it as the caller queued it —
451
+ * `load()` takes the resolved URL separately, via `LoadOptions.src` — so
452
+ * re-feeding it is safe.
453
+ *
454
+ * The overridable part of {@link reloadCurrent}, rather than the whole
455
+ * method: a subclass backed by a queue changes only where the track comes
456
+ * from, and the reload itself stays in one place.
282
457
  */
283
- reloadCurrent() {
284
- if (this.current) this.load(this.current);
458
+ trackToReload() {
459
+ return this.current;
460
+ }
461
+
462
+ /** Reloads the track {@link trackToReload} names, resuming if asked to. */
463
+ reloadCurrent(resumePosition) {
464
+ const track = this.trackToReload();
465
+ if (!track) return;
466
+ this.load(track, resumePosition === undefined ? undefined : () => this.seekTo(resumePosition));
285
467
  }
468
+
469
+ /**
470
+ * Android's `retry()` is `player.prepare()` — the same call `play()` makes,
471
+ * without setting the intent. So this is `play()` minus the intent.
472
+ *
473
+ * It is emphatically not `shaka.Player.retryStreaming()`, which this used to
474
+ * call: that returns false and does nothing at all unless the load mode is
475
+ * MEDIA_SOURCE, so for a progressive file — the case a signed URL is for — it
476
+ * was a silent no-op, while the `play()` the same docs offer as the
477
+ * alternative recovered properly.
478
+ */
286
479
  retry() {
287
- const player = this.requirePlayer();
288
- player.retryStreaming();
480
+ this.requirePlayer();
481
+ this.reprepare();
289
482
  }
290
483
  pause() {
291
484
  const element = this.requireElement();