react-native-audio-browser 0.2.0-next.17 → 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 (81) hide show
  1. package/android/build.gradle +2 -1
  2. package/android/src/main/java/com/audiobrowser/AudioBrowser.kt +160 -106
  3. package/android/src/main/java/com/audiobrowser/browser/BrowserManager.kt +11 -29
  4. package/android/src/main/java/com/audiobrowser/player/CrossOriginHeaderStripper.kt +77 -0
  5. package/android/src/main/java/com/audiobrowser/player/MediaFactory.kt +28 -10
  6. package/android/src/main/java/com/audiobrowser/player/MediaSessionCallback.kt +377 -110
  7. package/android/src/main/java/com/audiobrowser/util/BrowserPathHelper.kt +13 -1
  8. package/android/src/main/res/values/strings.xml +6 -21
  9. package/android/src/test/java/com/audiobrowser/player/BrowseTilesTest.kt +385 -0
  10. package/android/src/test/java/com/audiobrowser/player/CrossOriginHeaderStripperTest.kt +94 -0
  11. package/lib/commonjs/features/browser.js +8 -0
  12. package/lib/commonjs/features/browser.js.map +1 -1
  13. package/lib/commonjs/web/NativeAudioBrowser.js +163 -50
  14. package/lib/commonjs/web/NativeAudioBrowser.js.map +1 -1
  15. package/lib/commonjs/web/TrackPlayer/LoadAttempt.js +37 -0
  16. package/lib/commonjs/web/TrackPlayer/LoadAttempt.js.map +1 -0
  17. package/lib/commonjs/web/TrackPlayer/PlaybackStateMachine.js +18 -2
  18. package/lib/commonjs/web/TrackPlayer/PlaybackStateMachine.js.map +1 -1
  19. package/lib/commonjs/web/TrackPlayer/Player.js +232 -39
  20. package/lib/commonjs/web/TrackPlayer/Player.js.map +1 -1
  21. package/lib/commonjs/web/TrackPlayer/QueuePlayer.js +33 -12
  22. package/lib/commonjs/web/TrackPlayer/QueuePlayer.js.map +1 -1
  23. package/lib/commonjs/web/browser/BrowserManager.js +30 -12
  24. package/lib/commonjs/web/browser/BrowserManager.js.map +1 -1
  25. package/lib/commonjs/web/browser/SearchManager.js +16 -19
  26. package/lib/commonjs/web/browser/SearchManager.js.map +1 -1
  27. package/lib/commonjs/web/http/RequestConfigBuilder.js +110 -27
  28. package/lib/commonjs/web/http/RequestConfigBuilder.js.map +1 -1
  29. package/lib/commonjs/web/http/followMediaRedirect.js +219 -0
  30. package/lib/commonjs/web/http/followMediaRedirect.js.map +1 -0
  31. package/lib/module/features/browser.js +8 -0
  32. package/lib/module/features/browser.js.map +1 -1
  33. package/lib/module/web/NativeAudioBrowser.js +163 -50
  34. package/lib/module/web/NativeAudioBrowser.js.map +1 -1
  35. package/lib/module/web/TrackPlayer/LoadAttempt.js +32 -0
  36. package/lib/module/web/TrackPlayer/LoadAttempt.js.map +1 -0
  37. package/lib/module/web/TrackPlayer/PlaybackStateMachine.js +18 -2
  38. package/lib/module/web/TrackPlayer/PlaybackStateMachine.js.map +1 -1
  39. package/lib/module/web/TrackPlayer/Player.js +232 -39
  40. package/lib/module/web/TrackPlayer/Player.js.map +1 -1
  41. package/lib/module/web/TrackPlayer/QueuePlayer.js +33 -12
  42. package/lib/module/web/TrackPlayer/QueuePlayer.js.map +1 -1
  43. package/lib/module/web/browser/BrowserManager.js +30 -12
  44. package/lib/module/web/browser/BrowserManager.js.map +1 -1
  45. package/lib/module/web/browser/SearchManager.js +16 -19
  46. package/lib/module/web/browser/SearchManager.js.map +1 -1
  47. package/lib/module/web/http/RequestConfigBuilder.js +110 -27
  48. package/lib/module/web/http/RequestConfigBuilder.js.map +1 -1
  49. package/lib/module/web/http/followMediaRedirect.js +215 -0
  50. package/lib/module/web/http/followMediaRedirect.js.map +1 -0
  51. package/lib/typescript/src/features/browser.d.ts +8 -0
  52. package/lib/typescript/src/features/browser.d.ts.map +1 -1
  53. package/lib/typescript/src/types/browser.d.ts +13 -4
  54. package/lib/typescript/src/types/browser.d.ts.map +1 -1
  55. package/package.json +1 -1
  56. package/src/features/browser.ts +8 -0
  57. package/src/types/browser.ts +13 -4
  58. package/src/web/NativeAudioBrowser.playWhenReady.test.ts +232 -2
  59. package/src/web/NativeAudioBrowser.ts +193 -60
  60. package/src/web/TrackPlayer/LoadAttempt.ts +29 -0
  61. package/src/web/TrackPlayer/PlaybackStateMachine.test.ts +60 -13
  62. package/src/web/TrackPlayer/PlaybackStateMachine.ts +22 -6
  63. package/src/web/TrackPlayer/Player.dispatch.test.ts +5 -3
  64. package/src/web/TrackPlayer/Player.load.test.ts +137 -1
  65. package/src/web/TrackPlayer/Player.ts +256 -37
  66. package/src/web/TrackPlayer/QueuePlayer.ts +33 -14
  67. package/src/web/__tests__/lifecycle.test.ts +345 -0
  68. package/src/web/__tests__/lifecycleHarness.ts +351 -0
  69. package/src/web/__tests__/loadEdgeCases.test.ts +195 -0
  70. package/src/web/__tests__/loadSupersession.test.ts +175 -0
  71. package/src/web/__tests__/retry.test.ts +169 -0
  72. package/src/web/browser/BrowserManager.ts +32 -15
  73. package/src/web/browser/SearchManager.test.ts +75 -0
  74. package/src/web/browser/SearchManager.ts +23 -26
  75. package/src/web/browser/__tests__/artwork-resolution.test.ts +117 -0
  76. package/src/web/browser/__tests__/layer-resolver.test.ts +35 -0
  77. package/src/web/browser/__tests__/search-navigation.test.ts +76 -0
  78. package/src/web/http/RequestConfigBuilder.test.ts +241 -1
  79. package/src/web/http/RequestConfigBuilder.ts +140 -33
  80. package/src/web/http/followMediaRedirect.test.ts +289 -0
  81. package/src/web/http/followMediaRedirect.ts +253 -0
@@ -138,8 +138,16 @@ export function hasSearch() {
138
138
  /**
139
139
  * Searches for tracks using the configured search source.
140
140
  *
141
+ * Resolves `[]` only when the source found nothing; a failed search rejects,
142
+ * so a caller can tell "no results" from "the request failed". The rejection's
143
+ * message describes the failure — native platforms reject with the underlying
144
+ * throwable and JS sees only its message. On web the `Error` also carries a
145
+ * `code`, the {@link NavigationErrorType} the browse path reports as a
146
+ * {@link NavigationError} (`'http-error'`, `'network-error'`).
147
+ *
141
148
  * @param query - The search query string
142
149
  * @returns Promise resolving to an array of matching tracks
150
+ * @throws When the search source or its request fails
143
151
  *
144
152
  * @see {@link configureBrowser}
145
153
  *
@@ -1 +1 @@
1
- {"version":3,"names":["nativeBrowser","NativeUpdatedValue","useNativeUpdatedValue","SEARCH_ROUTE_PATH","toNativeConfig","validateBrowserConfiguration","currentConfiguration","configureBrowser","configuration","__DEV__","getBrowserConfiguration","navigate","pathOrTrack","navigatePath","navigateTrack","getPath","path","onPathChanged","emitterize","cb","usePath","getContent","onContentChanged","useContent","getTabs","tabs","onTabsChanged","useTabs","notifyContentChanged","invalidateAllContent","hasSearch","config","searchRoute","routes","find","r","searchCallback","searchConfig","search","query"],"sourceRoot":"../../../src","sources":["features/browser.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["nativeBrowser","NativeUpdatedValue","useNativeUpdatedValue","SEARCH_ROUTE_PATH","toNativeConfig","validateBrowserConfiguration","currentConfiguration","configureBrowser","configuration","__DEV__","getBrowserConfiguration","navigate","pathOrTrack","navigatePath","navigateTrack","getPath","path","onPathChanged","emitterize","cb","usePath","getContent","onContentChanged","useContent","getTabs","tabs","onTabsChanged","useTabs","notifyContentChanged","invalidateAllContent","hasSearch","config","searchRoute","routes","find","r","searchCallback","searchConfig","search","query"],"sourceRoot":"../../../src","sources":["features/browser.ts"],"mappings":"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","ignoreList":[]}
@@ -6,6 +6,7 @@ import { classifyTrackNavigation } from './browser/classifyTrackNavigation';
6
6
  import { FavoriteManager } from './browser/FavoriteManager';
7
7
  import { NavigationErrorManager } from './browser/NavigationErrorManager';
8
8
  import { SearchManager } from './browser/SearchManager';
9
+ import { followMediaRedirect } from './http/followMediaRedirect';
9
10
  import { HttpClient } from './http/HttpClient';
10
11
  import { RequestConfigBuilder } from './http/RequestConfigBuilder';
11
12
  import { NowPlayingManager } from './player/NowPlayingManager';
@@ -41,7 +42,6 @@ export class NativeAudioBrowser extends QueuePlayer {
41
42
  // Managers
42
43
 
43
44
  // Player state
44
- currentLoadId = 0;
45
45
  progressTimer = new PlaybackTimer();
46
46
  intervalTimer = new PlaybackTimer();
47
47
  _online = typeof navigator !== 'undefined' ? navigator.onLine : true;
@@ -208,6 +208,13 @@ export class NativeAudioBrowser extends QueuePlayer {
208
208
  this.onPlaybackError({
209
209
  error: newState.error
210
210
  });
211
+ } else if (oldState.state === 'error') {
212
+ // Leaving the error state clears it, as it does natively. The getter
213
+ // already reads undefined — consumers subscribe to the event, so without
214
+ // this a stale error outlives the next successful load.
215
+ this.onPlaybackError({
216
+ error: undefined
217
+ });
211
218
  }
212
219
  }
213
220
  /**
@@ -452,68 +459,98 @@ export class NativeAudioBrowser extends QueuePlayer {
452
459
  * Supports the transform callback for URL manipulation.
453
460
  * Mirrors Android's MediaFactory.getMediaRequestConfig behavior.
454
461
  */
455
- async resolveMediaUrl(src) {
462
+ async resolveMediaRequest(src, track) {
463
+ // The *resolved* request layer, not `configuration.request`: a
464
+ // resolver-only config would otherwise reach media with no baseUrl and no
465
+ // headers. Browse, search and browse artwork all read it this way too.
466
+ //
467
+ // Caught, because unlike those three this one cannot fail the load: a
468
+ // resolver hiccup — a token refresh timing out — would otherwise take down
469
+ // a track whose `src` is already absolute and public and needed no layer at
470
+ // all. Native degrades the same way, `getMediaRequestConfig` returning null
471
+ // and the original URL playing on.
472
+ let request;
473
+ try {
474
+ request = await this.browserManager.resolvedRequestConfig();
475
+ } catch (e) {
476
+ console.error('Failed to resolve the request layer for media', e);
477
+ }
456
478
  const {
457
- request,
458
479
  media
459
480
  } = this.browserManager.configuration;
460
- return RequestConfigBuilder.resolveMediaUrl(src, request, media);
481
+ return RequestConfigBuilder.resolveMediaRequest(src, request, media, track);
461
482
  }
462
483
 
463
484
  /**
464
- * Reload from the queue's own entry, whose `src` is still unresolved —
465
- * `current` holds the resolved track, and re-feeding it into `load()` would
466
- * re-resolve the resolved URL (double-applying a `transform`) and replace
467
- * the queue entry with it.
485
+ * The queue's own entry, so the queue stays the source of truth for what is
486
+ * playing. `current` preserves the track as queued — the resolved URL is
487
+ * passed to `load()` separately — so either is safe to re-feed.
468
488
  */
469
- reloadCurrent() {
489
+ trackToReload() {
470
490
  const index = this.queue.currentIndex;
471
- const sourceTrack = index !== undefined ? this.queue.getTrack(index) : undefined;
472
- if (sourceTrack) {
473
- this.load(sourceTrack);
474
- } else {
475
- super.reloadCurrent();
476
- }
491
+ const queued = index !== undefined ? this.queue.getTrack(index) : undefined;
492
+ // The queue entry wins, so it stays the source of truth for what is
493
+ // playing; `current` is the fallback for a player loaded without one.
494
+ return queued ?? super.trackToReload();
477
495
  }
478
- load(track, callback) {
479
- const element = this.requireElement();
480
-
481
- // Clear now playing override when track changes (matches Android's PlayerListener.onMediaItemTransition)
482
- this.nowPlayingManager.clearNowPlayingOverride();
483
496
 
484
- // Match Android: load() modifies the queue.
485
- // If queue is empty, add the track. If queue has items, replace at currentIndex.
497
+ /**
498
+ * Makes `track` the queue's current entry, emitting the change.
499
+ *
500
+ * Matches Android, where `load()` modifies the queue: an empty queue takes
501
+ * the track as its only entry, a populated one has its current entry
502
+ * replaced.
503
+ */
504
+ syncQueueTo(track) {
486
505
  if (this.queue.length === 0) {
487
506
  this.queue.setTracks([track]);
488
507
  this.queue.currentIndex = 0;
489
508
  this.emitQueueChanged();
490
- } else if (this.queue.currentIndex !== undefined && this.queue.getTrack(this.queue.currentIndex) !== track) {
509
+ return;
510
+ }
511
+ if (this.queue.currentIndex !== undefined && this.queue.getTrack(this.queue.currentIndex) !== track) {
491
512
  this.queue.replaceTrack(this.queue.currentIndex, track);
492
513
  this.emitQueueChanged();
493
514
  }
515
+ }
516
+
517
+ /**
518
+ * Everything native does in its media-item transition, all of it before any
519
+ * network work: announce the new track, publish its now-playing metadata,
520
+ * cut the outgoing one, and report `loading`.
521
+ *
522
+ * Android's `onMediaItemTransition` fires at `prepare()` and does exactly
523
+ * this, with its LOADING following from `onEvents`; resolution happens later
524
+ * still, inside `TransformingDataSource.open()`. Doing it here rather than
525
+ * after the URL resolves is what gives the resolution window a state, and
526
+ * keeps `activeTrack` ahead of `loading` — the order a consumer that reads
527
+ * `getActiveTrack()` on the loading edge depends on.
528
+ */
529
+ transitionTo(track) {
530
+ const element = this.requireElement();
494
531
  const lastTrack = this.current;
495
532
  const lastPosition = element.currentTime;
496
533
  const lastIndex = this.queue.lastIndex;
497
534
  const currentIndex = this.queue.currentIndex;
498
535
 
499
- // Set loading flag early so seekTo() calls during async URL resolution
500
- // are captured as pending seeks rather than silently dropped
501
- this._loadInProgress = true;
502
- this._pendingSeek = undefined;
536
+ // A re-prepare of the item already current is not a transition, and must
537
+ // not be announced as one: ExoPlayer's `prepare()` does not re-fire
538
+ // `onMediaItemTransition` for an unchanged media item, so a consumer that
539
+ // resets on a track change would have its UI wiped by every retry. The
540
+ // `lastTrack === track` payload was the tell.
541
+ const isTransition = this.current !== track;
503
542
 
504
- // Resolve the media URL before loading (async but we don't await)
505
- const loadId = ++this.currentLoadId;
506
- const doLoad = async () => {
507
- const resolvedTrack = track.src ? {
508
- ...track,
509
- src: await this.resolveMediaUrl(track.src)
510
- } : track;
511
-
512
- // A newer load() was called while resolving — discard this stale result
513
- if (loadId !== this.currentLoadId) {
514
- return;
515
- }
516
- super.load(resolvedTrack, loadedTrack => {
543
+ // `current` first, so `getActiveTrack()` already reads the new track inside
544
+ // a handler and so `getNowPlaying()` publishes the new track's metadata. It
545
+ // also stops `getActiveTrackIndex()` — which moved with the queue already,
546
+ // synchronously — from disagreeing with it for the length of the
547
+ // resolution.
548
+ this.current = track;
549
+
550
+ // Separately guarded: a throwing consumer handler must not skip the
551
+ // publish, and neither may fail the load.
552
+ if (isTransition) {
553
+ try {
517
554
  this.onPlaybackActiveTrackChanged({
518
555
  lastTrack,
519
556
  lastPosition,
@@ -521,24 +558,100 @@ export class NativeAudioBrowser extends QueuePlayer {
521
558
  index: currentIndex,
522
559
  track
523
560
  });
524
-
525
- // Update now playing metadata
561
+ } catch (error) {
562
+ console.error('Failed to announce the active track change:', error);
563
+ }
564
+ try {
565
+ // Once, here: duration reaches the media session through
566
+ // `updateProgress()` on each tick, so only metadata needs publishing.
567
+ // Android publishes from the same transition handler that announces.
526
568
  const nowPlaying = this.getNowPlaying();
527
569
  if (nowPlaying) {
528
570
  this.publishNowPlaying(nowPlaying);
529
571
  }
572
+ } catch (error) {
573
+ console.error('Failed to publish now-playing metadata:', error);
574
+ }
575
+ }
576
+
577
+ // Stop the outgoing track now rather than when Shaka eventually gets a URL.
578
+ // Announcing the new track while the old one is still audible is worse than
579
+ // the silence, and native has no such window — prepare() cuts the old item
580
+ // at the moment it announces. This adds no teardown: `player.load()`
581
+ // already unloads first (shaka player.js:1757-1762). It only moves when.
582
+ // Verified in a real browser to emit no `pause`, so no state comes of it.
583
+ this.requirePlayer().unload().catch(error => console.error('Failed to unload the previous track:', error));
584
+
585
+ // Loading covers the resolution too. Shaka dispatches its own `loading`
586
+ // once `player.load()` is called — after resolution — and the state setter
587
+ // drops that as a no-op. The `buffering` that follows is Shaka's to report.
588
+ this.dispatch({
589
+ type: 'trackLoading'
590
+ });
591
+ }
592
+ load(track, callback) {
593
+ // Before the queue is touched, so a load before `setupPlayer()` throws
594
+ // rather than half-applying.
595
+ this.requireElement();
530
596
 
597
+ // Clear now playing override when track changes (matches Android's PlayerListener.onMediaItemTransition)
598
+ this.nowPlayingManager.clearNowPlayingOverride();
599
+ this.syncQueueTo(track);
600
+
601
+ // Begun here, at the call, so a newer load supersedes this one immediately
602
+ // rather than once its own URL has resolved. Both continuations below carry
603
+ // it, as does `super.load()`.
604
+ const attempt = this.beginLoadAttempt();
605
+
606
+ // Loading ends being stopped. `dispatch()` drops every event while
607
+ // `_isStopped`, to keep Shaka's teardown noise off the stopped state, so
608
+ // the `trackLoading` in `transitionTo` would be swallowed on the stop → play
609
+ // path and the resolution window would report nothing. `super.load()` clears
610
+ // this too, but only after the URL resolves.
611
+ this._isStopped = false;
612
+
613
+ // Set loading flag early so seekTo() calls during async URL resolution
614
+ // are captured as pending seeks rather than silently dropped
615
+ this._loadInProgress = true;
616
+ this._pendingSeek = undefined;
617
+ this.transitionTo(track);
618
+
619
+ // Resolve the media URL before loading (async but we don't await)
620
+ const doLoad = async () => {
621
+ const resolvedRequest = track.src ? await this.resolveMediaRequest(track.src, track) : undefined;
622
+ // Web-only, and forced: a progressive file plays via `mediaElement.src`,
623
+ // which cannot carry headers. Native sends them with the media request
624
+ // and follows the redirect inline, so it needs none of this.
625
+ const resolvedMedia = resolvedRequest ? await followMediaRedirect(resolvedRequest.path ?? track.src, resolvedRequest.headers, {
626
+ mediaLayerHeaders: resolvedRequest.mediaLayerHeaders
627
+ }) : undefined;
628
+
629
+ // Something took over while the URL was resolving — discard this result
630
+ if (!attempt.isCurrent) return;
631
+ super.load(track, loadedTrack => {
531
632
  // Call the provided callback if any
532
633
  if (callback) {
533
634
  callback(loadedTrack);
534
635
  }
636
+ }, {
637
+ headers: resolvedMedia?.headers,
638
+ src: resolvedMedia?.src,
639
+ attempt
535
640
  });
536
641
  };
537
642
 
538
643
  // Execute async load without blocking, with error handling
539
644
  doLoad().catch(error => {
540
- // Only the active load may surface a resolution failure.
541
- if (loadId !== this.currentLoadId) return;
645
+ // A backstop with no reachable trigger today, kept because an unhandled
646
+ // rejection would be worse than a dead branch. Every await inside
647
+ // `doLoad` catches internally; `shaka.Player.load` is `async`, so it
648
+ // rejects rather than throwing and its rejection is handled against the
649
+ // attempt inside `Player.load`; and `this.player` is only ever assigned,
650
+ // so `requirePlayer()` cannot start succeeding and then fail mid-load.
651
+ //
652
+ // No attempt check either, for the same reason it would be dead: nothing
653
+ // awaits between the guard above and `super.load()`, so the attempt
654
+ // cannot have changed. Add an await there and this needs the check back.
542
655
  this._loadInProgress = false;
543
656
  this._pendingSeek = undefined;
544
657
  console.error('Error loading track:', error);
@@ -701,10 +814,8 @@ export class NativeAudioBrowser extends QueuePlayer {
701
814
  this.clearSleepTimerIfFading();
702
815
  }
703
816
  stop() {
704
- // Invalidate any in-flight load: its post-await continuation would call
705
- // super.load(), whose first line re-arms the player (_isStopped = false)
706
- // and revives the state out of Stopped.
707
- this.currentLoadId++;
817
+ // `Player.stop()` cancels the load attempt, so an in-flight load's
818
+ // continuation cannot re-arm the player and revive it out of Stopped.
708
819
  super.stop();
709
820
  this.clearSleepTimerIfFading();
710
821
  }
@@ -730,11 +841,13 @@ export class NativeAudioBrowser extends QueuePlayer {
730
841
  this.sleepTimer.clear();
731
842
  this.pause();
732
843
  this.onSleepTimerChanged(null);
733
- return;
844
+ // Nothing is loading, so the caller must still report the end — the
845
+ // element has stopped and its own `pause` is swallowed as end-of-track.
846
+ return false;
734
847
  }
735
848
 
736
849
  // Otherwise proceed with normal track end behavior
737
- super.onTrackEnded();
850
+ return super.onTrackEnded();
738
851
  }
739
852
 
740
853
  // MARK: Queue management
@@ -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":[]}