@rntp/player 5.0.0 → 5.1.0

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 (61) hide show
  1. package/android/src/main/java/com/doublesymmetry/trackplayer/HeaderInjectingDataSourceFactory.kt +5 -1
  2. package/android/src/main/java/com/doublesymmetry/trackplayer/TrackPlayerModule.kt +43 -3
  3. package/android/src/main/java/com/doublesymmetry/trackplayer/models/EmitEventType.kt +30 -0
  4. package/android/src/main/java/com/doublesymmetry/trackplayer/models/MetadataApplier.kt +59 -0
  5. package/android/src/main/java/com/doublesymmetry/trackplayer/models/PlayerConfig.kt +10 -0
  6. package/android/src/main/java/com/doublesymmetry/trackplayer/models/StreamMetadataExtractor.kt +98 -0
  7. package/android/src/main/java/com/doublesymmetry/trackplayer/models/TrackPlayerMediaItem.kt +20 -8
  8. package/android/src/test/java/com/doublesymmetry/trackplayer/models/EmitEventTest.kt +33 -0
  9. package/android/src/test/java/com/doublesymmetry/trackplayer/models/MetadataApplierTest.kt +243 -0
  10. package/android/src/test/java/com/doublesymmetry/trackplayer/models/PlayerConfigTest.kt +33 -0
  11. package/android/src/test/java/com/doublesymmetry/trackplayer/models/StreamMetadataExtractorTest.kt +254 -0
  12. package/android/src/test/java/com/doublesymmetry/trackplayer/models/TrackPlayerMediaItemTest.kt +202 -0
  13. package/ios/TrackPlayer.swift +49 -2
  14. package/ios/models/EmitEvent.swift +28 -0
  15. package/ios/models/MediaItem.swift +8 -3
  16. package/ios/tests/AVPlayerEngineIntegrationTests.swift +13 -4
  17. package/lib/commonjs/audio.js +1 -0
  18. package/lib/commonjs/audio.js.map +1 -1
  19. package/lib/commonjs/events/MediaMetadataChanged.js +2 -0
  20. package/lib/commonjs/events/MediaMetadataChanged.js.map +1 -0
  21. package/lib/commonjs/events/index.js +13 -0
  22. package/lib/commonjs/events/index.js.map +1 -1
  23. package/lib/commonjs/hooks/useActiveMediaItem.js +9 -3
  24. package/lib/commonjs/hooks/useActiveMediaItem.js.map +1 -1
  25. package/lib/commonjs/hooks/useProgress.js.map +1 -1
  26. package/lib/commonjs/interfaces/PlayerConfig.js +1 -0
  27. package/lib/commonjs/interfaces/PlayerConfig.js.map +1 -1
  28. package/lib/module/audio.js +1 -0
  29. package/lib/module/audio.js.map +1 -1
  30. package/lib/module/events/MediaMetadataChanged.js +2 -0
  31. package/lib/module/events/MediaMetadataChanged.js.map +1 -0
  32. package/lib/module/events/index.js +2 -0
  33. package/lib/module/events/index.js.map +1 -1
  34. package/lib/module/hooks/useActiveMediaItem.js +9 -3
  35. package/lib/module/hooks/useActiveMediaItem.js.map +1 -1
  36. package/lib/module/hooks/useProgress.js.map +1 -1
  37. package/lib/module/interfaces/PlayerConfig.js +1 -0
  38. package/lib/module/interfaces/PlayerConfig.js.map +1 -1
  39. package/lib/typescript/src/audio.d.ts.map +1 -1
  40. package/lib/typescript/src/events/MediaMetadataChanged.d.ts +31 -0
  41. package/lib/typescript/src/events/MediaMetadataChanged.d.ts.map +1 -0
  42. package/lib/typescript/src/events/MetadataReceived.d.ts +15 -0
  43. package/lib/typescript/src/events/MetadataReceived.d.ts.map +1 -1
  44. package/lib/typescript/src/events/index.d.ts +4 -0
  45. package/lib/typescript/src/events/index.d.ts.map +1 -1
  46. package/lib/typescript/src/hooks/useActiveMediaItem.d.ts +8 -2
  47. package/lib/typescript/src/hooks/useActiveMediaItem.d.ts.map +1 -1
  48. package/lib/typescript/src/hooks/useProgress.d.ts.map +1 -1
  49. package/lib/typescript/src/interfaces/MediaItem.d.ts +15 -0
  50. package/lib/typescript/src/interfaces/MediaItem.d.ts.map +1 -1
  51. package/lib/typescript/src/interfaces/PlayerConfig.d.ts +15 -0
  52. package/lib/typescript/src/interfaces/PlayerConfig.d.ts.map +1 -1
  53. package/package.json +1 -1
  54. package/src/audio.ts +3 -0
  55. package/src/events/MediaMetadataChanged.ts +31 -0
  56. package/src/events/MetadataReceived.ts +15 -0
  57. package/src/events/index.ts +4 -0
  58. package/src/hooks/useActiveMediaItem.ts +9 -3
  59. package/src/hooks/useProgress.ts +1 -1
  60. package/src/interfaces/MediaItem.ts +15 -0
  61. package/src/interfaces/PlayerConfig.ts +16 -0
@@ -26,6 +26,40 @@ class TrackPlayerMediaItemTest {
26
26
  // Arguments.createMap() and createArray() call into native code; replace with JavaOnlyMap.
27
27
  mockkStatic(Arguments::class)
28
28
  every { Arguments.createMap() } answers { JavaOnlyMap() }
29
+ // toBundle / fromBundle traverse the map with native helpers; for tests, hand-roll
30
+ // a small subset that covers the JSON-shaped values our extras use.
31
+ every { Arguments.toBundle(any()) } answers {
32
+ val src = firstArg<ReadableMap?>() ?: return@answers null
33
+ val bundle = android.os.Bundle()
34
+ val it = src.keySetIterator()
35
+ while (it.hasNextKey()) {
36
+ val k = it.nextKey()
37
+ when (src.getType(k)) {
38
+ ReadableType.Null -> bundle.putString(k, null)
39
+ ReadableType.Boolean -> bundle.putBoolean(k, src.getBoolean(k))
40
+ ReadableType.Number -> bundle.putDouble(k, src.getDouble(k))
41
+ ReadableType.String -> bundle.putString(k, src.getString(k))
42
+ else -> {} // skip nested maps/arrays for these tests
43
+ }
44
+ }
45
+ bundle
46
+ }
47
+ every { Arguments.fromBundle(any()) } answers {
48
+ // Arguments.fromBundle(Bundle): WritableMap is non-null in current RN.
49
+ val src = firstArg<android.os.Bundle>()
50
+ val map = JavaOnlyMap()
51
+ for (k in src.keySet()) {
52
+ when (val v = src.get(k)) {
53
+ null -> map.putNull(k)
54
+ is Boolean -> map.putBoolean(k, v)
55
+ is Double -> map.putDouble(k, v)
56
+ is Int -> map.putInt(k, v)
57
+ is String -> map.putString(k, v)
58
+ else -> {} // skip nested types for these tests
59
+ }
60
+ }
61
+ map
62
+ }
29
63
  }
30
64
 
31
65
  @After
@@ -377,4 +411,172 @@ class TrackPlayerMediaItemTest {
377
411
  assertEquals("cast-item-id", item.url)
378
412
  assertEquals("Cast Track", item.title)
379
413
  }
414
+
415
+ // ---- extras (app-defined payload) ----
416
+
417
+ @Test
418
+ fun `fromReadableMap parses extras when present`() {
419
+ val extrasMap = mockk<ReadableMap>(relaxed = true) {
420
+ every { keySetIterator() } returns mockk {
421
+ every { hasNextKey() } returnsMany listOf(true, true, true, false)
422
+ every { nextKey() } returnsMany listOf("source", "isrc", "weight")
423
+ }
424
+ every { getType("source") } returns ReadableType.String
425
+ every { getString("source") } returns "recommendations"
426
+ every { getType("isrc") } returns ReadableType.String
427
+ every { getString("isrc") } returns "USRC17607839"
428
+ every { getType("weight") } returns ReadableType.Number
429
+ every { getDouble("weight") } returns 0.85
430
+ }
431
+
432
+ val map = mockk<ReadableMap>(relaxed = true) {
433
+ every { hasKey("url") } returns true
434
+ every { getType("url") } returns mockk { every { name } returns "String" }
435
+ every { getString("url") } returns "https://example.com/track.mp3"
436
+ every { hasKey("mediaId") } returns false
437
+ every { hasKey("title") } returns false
438
+ every { hasKey("artist") } returns false
439
+ every { hasKey("albumTitle") } returns false
440
+ every { hasKey("artworkUrl") } returns false
441
+ every { hasKey("duration") } returns false
442
+ every { hasKey("isLive") } returns false
443
+ every { hasKey("mimeType") } returns false
444
+ every { hasKey("extras") } returns true
445
+ every { getMap("extras") } returns extrasMap
446
+ }
447
+
448
+ val item = TrackPlayerMediaItem.fromReadableMap(map)
449
+
450
+ assertNotNull(item.extras)
451
+ assertEquals("recommendations", item.extras!!.getString("source"))
452
+ assertEquals("USRC17607839", item.extras!!.getString("isrc"))
453
+ assertEquals(0.85, item.extras!!.getDouble("weight"), 0.001)
454
+ }
455
+
456
+ @Test
457
+ fun `fromReadableMap leaves extras null when absent`() {
458
+ val map = mockk<ReadableMap>(relaxed = true) {
459
+ every { hasKey("url") } returns true
460
+ every { getType("url") } returns mockk { every { name } returns "String" }
461
+ every { getString("url") } returns "https://example.com/track.mp3"
462
+ every { hasKey("mediaId") } returns false
463
+ every { hasKey("title") } returns false
464
+ every { hasKey("artist") } returns false
465
+ every { hasKey("albumTitle") } returns false
466
+ every { hasKey("artworkUrl") } returns false
467
+ every { hasKey("duration") } returns false
468
+ every { hasKey("isLive") } returns false
469
+ every { hasKey("mimeType") } returns false
470
+ every { hasKey("extras") } returns false
471
+ }
472
+
473
+ val item = TrackPlayerMediaItem.fromReadableMap(map)
474
+ assertNull(item.extras)
475
+ }
476
+
477
+ @Test
478
+ fun `asMediaItem stores extras under a namespaced key without polluting known fields`() {
479
+ val payload = android.os.Bundle().apply {
480
+ putString("source", "recommendations")
481
+ putString("isrc", "USRC17607839")
482
+ }
483
+ val item = TrackPlayerMediaItem(
484
+ url = "https://example.com/track.mp3",
485
+ duration = 120.0,
486
+ isLive = false,
487
+ extras = payload,
488
+ )
489
+
490
+ val mediaItem = item.asMediaItem()
491
+ val metadataExtras = mediaItem.mediaMetadata.extras
492
+
493
+ assertNotNull(metadataExtras)
494
+ // Known fields still live at the top level of the metadata extras bundle…
495
+ assertEquals(120.0, metadataExtras!!.getDouble("duration"), 0.001)
496
+ assertFalse(metadataExtras.getBoolean("isLive"))
497
+ // …and the app payload is nested under our namespaced key.
498
+ val nested = metadataExtras.getBundle("rntp.extras")
499
+ assertNotNull(nested)
500
+ assertEquals("recommendations", nested!!.getString("source"))
501
+ assertEquals("USRC17607839", nested.getString("isrc"))
502
+ }
503
+
504
+ @Test
505
+ fun `asMediaItem omits extras bundle when no extras provided`() {
506
+ val item = TrackPlayerMediaItem(
507
+ url = "https://example.com/track.mp3",
508
+ )
509
+
510
+ val mediaItem = item.asMediaItem()
511
+ val metadataExtras = mediaItem.mediaMetadata.extras
512
+
513
+ // The metadata extras bundle is always created (for duration/isLive),
514
+ // but our namespaced key should be absent.
515
+ assertNotNull(metadataExtras)
516
+ assertFalse(metadataExtras!!.containsKey("rntp.extras"))
517
+ }
518
+
519
+ @Test
520
+ fun `toWritableMap includes extras when present`() {
521
+ val payload = android.os.Bundle().apply {
522
+ putString("source", "recommendations")
523
+ putDouble("weight", 0.85)
524
+ }
525
+ val item = TrackPlayerMediaItem(
526
+ url = "https://example.com/track.mp3",
527
+ extras = payload,
528
+ )
529
+
530
+ val map = item.toWritableMap()
531
+ assertTrue(map.hasKey("extras"))
532
+ val extras = map.getMap("extras")
533
+ assertNotNull(extras)
534
+ assertEquals("recommendations", extras!!.getString("source"))
535
+ assertEquals(0.85, extras.getDouble("weight"), 0.001)
536
+ }
537
+
538
+ @Test
539
+ fun `toWritableMap omits extras when absent`() {
540
+ val item = TrackPlayerMediaItem(
541
+ url = "https://example.com/track.mp3",
542
+ )
543
+
544
+ val map = item.toWritableMap()
545
+ assertFalse(map.hasKey("extras"))
546
+ }
547
+
548
+ @Test
549
+ fun `extras survive full round-trip through Media3 MediaItem`() {
550
+ val payload = android.os.Bundle().apply {
551
+ putString("source", "recommendations")
552
+ putString("isrc", "USRC17607839")
553
+ putDouble("weight", 0.85)
554
+ putBoolean("explicit", true)
555
+ }
556
+ val original = TrackPlayerMediaItem(
557
+ mediaId = "t-1",
558
+ url = "https://example.com/track.mp3",
559
+ title = "Song",
560
+ duration = 60.0,
561
+ extras = payload,
562
+ )
563
+
564
+ val restored = TrackPlayerMediaItem.fromMediaItem(original.asMediaItem())
565
+
566
+ assertEquals("t-1", restored.mediaId)
567
+ assertEquals("Song", restored.title)
568
+ assertEquals(60.0, restored.duration!!, 0.001)
569
+ assertNotNull(restored.extras)
570
+ assertEquals("recommendations", restored.extras!!.getString("source"))
571
+ assertEquals("USRC17607839", restored.extras!!.getString("isrc"))
572
+ assertEquals(0.85, restored.extras!!.getDouble("weight"), 0.001)
573
+ assertTrue(restored.extras!!.getBoolean("explicit"))
574
+ }
575
+
576
+ @Test
577
+ fun `fromMediaItem leaves extras null when source has none`() {
578
+ val original = TrackPlayerMediaItem(url = "https://example.com/track.mp3")
579
+ val restored = TrackPlayerMediaItem.fromMediaItem(original.asMediaItem())
580
+ assertNull(restored.extras)
581
+ }
380
582
  }
@@ -20,6 +20,16 @@ class TrackPlayer: RCTEventEmitter {
20
20
  private var progressSyncTimer: Timer?
21
21
  private var progressSyncIntervalSeconds: Double = 0
22
22
  private var progressSyncHttpUrl: String?
23
+ // When true (default), incoming stream metadata (ICY/ID3) is written back
24
+ // into the queued MediaItem so getActiveTrack() and MPNowPlayingInfoCenter
25
+ // reflect the live title. When false, only the MetadataReceived event fires
26
+ // and apps update the queue themselves via TrackPlayer.updateMetadata(…).
27
+ private var autoUpdateMetadataFromStream: Bool = true
28
+ // Tracks the last-emitted effective metadata so we don't double-emit
29
+ // MediaMetadataChanged when the same merged view lands twice (e.g. an
30
+ // ICY frame with no actual changes, or a manual updateMetadata that
31
+ // re-applies identical fields).
32
+ private var lastEmittedMediaMetadata: MediaMetadataChangedEvent?
23
33
  private var progressSyncHttpHeaders: [String: String]?
24
34
 
25
35
  private var sleepTimerController: SleepTimerController?
@@ -76,6 +86,7 @@ class TrackPlayer: RCTEventEmitter {
76
86
  audioCache = cache
77
87
 
78
88
  let handleNoisy = config["handleAudioBecomingNoisy"] as? Bool ?? true
89
+ autoUpdateMetadataFromStream = config["autoUpdateMetadataFromStream"] as? Bool ?? true
79
90
  player = AudioPlayer(handleAudioBecomingNoisy: handleNoisy, cache: cache)
80
91
  player.preloadWindow = preloadWindow
81
92
  bindPlayerCallbacks()
@@ -312,6 +323,12 @@ class TrackPlayer: RCTEventEmitter {
312
323
  )
313
324
 
314
325
  player.updateMetadata(at: idx, with: updated)
326
+ // Only emit MediaMetadataChanged for the *active* item — updating a
327
+ // non-current queue entry's metadata changes its stored fields but
328
+ // doesn't affect what `getActiveMediaItem` returns.
329
+ if idx == player.currentIndex {
330
+ emitMediaMetadataChangedIfNeeded(for: updated)
331
+ }
315
332
  }
316
333
 
317
334
  // MARK: - State Getters (sync)
@@ -540,14 +557,23 @@ class TrackPlayer: RCTEventEmitter {
540
557
  let mediaItem = item as? MediaItem
541
558
  let dict = mediaItem?.toDictionary()
542
559
  BrowseTreeStore.shared.updateNowPlaying(mediaId: mediaItem?.mediaId)
560
+ // Reset dedup state on transitions so the first emit for the new item
561
+ // is never suppressed by a coincidental match against the previous one.
562
+ lastEmittedMediaMetadata = nil
543
563
  emitEvent(event: MediaItemTransitionEvent(item: dict, index: index))
564
+ emitMediaMetadataChangedIfNeeded(for: mediaItem)
544
565
  }
545
566
 
546
567
  func handleMetadataReceived(_ metadata: StreamMetadata) {
568
+ // Always emit the raw stream-truth event first (mirrors Android: synchronous,
569
+ // pre-merge). Consumers that care about the *effective* view get the
570
+ // separate MediaMetadataChanged event below.
571
+ emitEvent(event: MetadataReceivedEvent(metadata: metadata))
572
+
573
+ guard autoUpdateMetadataFromStream else { return }
547
574
  let idx = player.currentIndex
548
575
  guard idx >= 0 && idx < player.items.count,
549
576
  let existing = player.items[idx] as? MediaItem else { return }
550
-
551
577
  let updated = existing.withMetadata(
552
578
  title: metadata.title.map { .some($0) },
553
579
  artist: metadata.artist.map { .some($0) },
@@ -555,7 +581,28 @@ class TrackPlayer: RCTEventEmitter {
555
581
  artworkUrl: metadata.artworkUri.flatMap { MediaURL(object: $0) }.map { .some($0) }
556
582
  )
557
583
  player.updateMetadata(at: idx, with: updated)
558
- emitEvent(event: MetadataReceivedEvent(metadata: metadata))
584
+ emitMediaMetadataChangedIfNeeded(for: updated)
585
+ }
586
+
587
+ /// Build a MediaMetadataChanged event from a merged MediaItem and emit it,
588
+ /// skipping duplicate emits when the effective view is unchanged.
589
+ ///
590
+ /// Note: iOS's MediaItem schema does not include `genre`, so that field
591
+ /// is always nil in events from this platform. Android emits it whenever
592
+ /// present in either the queued item or the stream.
593
+ private func emitMediaMetadataChangedIfNeeded(for item: MediaItem?) {
594
+ guard let item else { return }
595
+ let event = MediaMetadataChangedEvent(
596
+ title: item.title,
597
+ artist: item.artist,
598
+ albumTitle: item.albumTitle,
599
+ artworkUrl: item.artworkUrl.map { $0.isLocal ? $0.value.path : $0.value.absoluteString },
600
+ genre: nil
601
+ )
602
+ if event.isEmpty { return }
603
+ if event == lastEmittedMediaMetadata { return }
604
+ lastEmittedMediaMetadata = event
605
+ emitEvent(event: event)
559
606
  }
560
607
 
561
608
  // MARK: - Progress Sync
@@ -16,6 +16,7 @@ enum EmitEventType: String, CaseIterable {
16
16
  case RemoteStop = "event.remote-stop"
17
17
  case RemoteSeek = "event.remote-seek"
18
18
  case MetadataReceived = "event.metadata-received"
19
+ case MediaMetadataChanged = "event.media-metadata-changed"
19
20
  case RemoteSkipForward = "event.remote-skip-forward"
20
21
  case RemoteSkipBackward = "event.remote-skip-backward"
21
22
  case PlaybackProgressUpdated = "event.playback-progress-updated"
@@ -127,6 +128,33 @@ struct MetadataReceivedEvent: EmitEvent {
127
128
  }
128
129
  }
129
130
 
131
+ /// Effective metadata of the currently active MediaItem after any merge of
132
+ /// stream-derived metadata onto user-supplied fields. Mirrors Android's
133
+ /// `MediaMetadataChangedEvent` and the JS `Event.MediaMetadataChanged`.
134
+ struct MediaMetadataChangedEvent: EmitEvent, Equatable {
135
+ let title: String?
136
+ let artist: String?
137
+ let albumTitle: String?
138
+ let artworkUrl: String?
139
+ let genre: String?
140
+
141
+ var eventType: EmitEventType { .MediaMetadataChanged }
142
+ var body: [String: Any] {
143
+ var result: [String: Any] = [:]
144
+ if let title { result["title"] = title }
145
+ if let artist { result["artist"] = artist }
146
+ if let albumTitle { result["albumTitle"] = albumTitle }
147
+ if let artworkUrl { result["artworkUrl"] = artworkUrl }
148
+ if let genre { result["genre"] = genre }
149
+ return result
150
+ }
151
+
152
+ var isEmpty: Bool {
153
+ return title == nil && artist == nil && albumTitle == nil &&
154
+ artworkUrl == nil && genre == nil
155
+ }
156
+ }
157
+
130
158
  struct RemoteSkipForwardEvent: EmitEvent {
131
159
  let interval: Double
132
160
 
@@ -16,8 +16,9 @@ struct MediaItem {
16
16
  let artworkUrl: MediaURL?
17
17
  let duration: Double?
18
18
  let isLiveStream: Bool?
19
+ let extras: [String: Any]?
19
20
 
20
- init(mediaId: String, url: MediaURL, title: String?, artist: String?, albumTitle: String?, artworkUrl: MediaURL?, duration: Double? = nil, isLiveStream: Bool? = nil) {
21
+ init(mediaId: String, url: MediaURL, title: String?, artist: String?, albumTitle: String?, artworkUrl: MediaURL?, duration: Double? = nil, isLiveStream: Bool? = nil, extras: [String: Any]? = nil) {
21
22
  self.mediaId = mediaId
22
23
  self.url = url
23
24
  self.title = title
@@ -26,6 +27,7 @@ struct MediaItem {
26
27
  self.artworkUrl = artworkUrl
27
28
  self.duration = duration
28
29
  self.isLiveStream = isLiveStream
30
+ self.extras = extras
29
31
  }
30
32
 
31
33
  init(data: [String: Any]) {
@@ -40,8 +42,9 @@ struct MediaItem {
40
42
  let artworkUrl = MediaURL(object: data["artworkUrl"])
41
43
  let duration = data["duration"] as? Double
42
44
  let isLiveStream = data["isLive"] as? Bool
45
+ let extras = data["extras"] as? [String: Any]
43
46
 
44
- self.init(mediaId: mediaId, url: url, title: title, artist: artist, albumTitle: albumTitle, artworkUrl: artworkUrl, duration: duration, isLiveStream: isLiveStream)
47
+ self.init(mediaId: mediaId, url: url, title: title, artist: artist, albumTitle: albumTitle, artworkUrl: artworkUrl, duration: duration, isLiveStream: isLiveStream, extras: extras)
45
48
  }
46
49
  }
47
50
 
@@ -60,7 +63,8 @@ extension MediaItem {
60
63
  albumTitle: albumTitle ?? self.albumTitle,
61
64
  artworkUrl: artworkUrl ?? self.artworkUrl,
62
65
  duration: self.duration,
63
- isLiveStream: self.isLiveStream
66
+ isLiveStream: self.isLiveStream,
67
+ extras: self.extras
64
68
  )
65
69
  }
66
70
 
@@ -77,6 +81,7 @@ extension MediaItem {
77
81
  }
78
82
  if let duration = duration { dict["duration"] = duration }
79
83
  if let isLiveStream = isLiveStream { dict["isLive"] = isLiveStream }
84
+ if let extras = extras { dict["extras"] = extras }
80
85
  return dict
81
86
  }
82
87
  }
@@ -9,6 +9,15 @@ import XCTest
9
9
  @testable import PlayerCore
10
10
 
11
11
  final class AVPlayerEngineIntegrationTests: XCTestCase {
12
+ // Generous timeout for tests that play AAC to completion through the cache
13
+ // proxy. The fast path is sub-second locally, but GitHub-hosted runners
14
+ // routinely starve the simulator audio pipeline ("HALC IOWorkLoop: skipping
15
+ // cycle due to overload") and the previous 10s budget was tight enough that
16
+ // testCachedPlaybackCompletesWithoutContentLength flaked on CI. 30s is well
17
+ // beyond observed worst-case on macos-26 while staying short enough to fail
18
+ // fast for genuine regressions.
19
+ private let playbackTimeout: TimeInterval = 30.0
20
+
12
21
  private var engine: AVPlayerEngine!
13
22
  private var testFileURL: URL!
14
23
 
@@ -307,12 +316,12 @@ final class AVPlayerEngineIntegrationTests: XCTestCase {
307
316
  cachedEngine.onItemFailed = { _, _ in failed.fulfill() }
308
317
 
309
318
  cachedEngine.load(url: server.url)
310
- wait(for: [ready], timeout: 10.0)
319
+ wait(for: [ready], timeout: playbackTimeout)
311
320
 
312
321
  let ended = expectation(description: "ended")
313
322
  cachedEngine.onItemPlayedToEnd = { ended.fulfill() }
314
323
  cachedEngine.play()
315
- wait(for: [ended, failed], timeout: 10.0)
324
+ wait(for: [ended, failed], timeout: playbackTimeout)
316
325
  }
317
326
 
318
327
  func testCachedPlaybackCompletesWithoutContentLength() throws {
@@ -341,12 +350,12 @@ final class AVPlayerEngineIntegrationTests: XCTestCase {
341
350
  cachedEngine.onItemFailed = { _, _ in failed.fulfill() }
342
351
 
343
352
  cachedEngine.load(url: server.url)
344
- wait(for: [ready], timeout: 10.0)
353
+ wait(for: [ready], timeout: playbackTimeout)
345
354
 
346
355
  let ended = expectation(description: "ended")
347
356
  cachedEngine.onItemPlayedToEnd = { ended.fulfill() }
348
357
  cachedEngine.play()
349
- wait(for: [ended, failed], timeout: 10.0)
358
+ wait(for: [ended, failed], timeout: playbackTimeout)
350
359
  }
351
360
 
352
361
  // MARK: - Cache Hit Playback
@@ -112,6 +112,7 @@ function normalizePlayerConfig(options) {
112
112
  ...options,
113
113
  contentType: options.contentType ?? _index.DEFAULT_PLAYER_CONFIG.contentType,
114
114
  handleAudioBecomingNoisy: options.handleAudioBecomingNoisy ?? _index.DEFAULT_PLAYER_CONFIG.handleAudioBecomingNoisy,
115
+ autoUpdateMetadataFromStream: options.autoUpdateMetadataFromStream ?? _index.DEFAULT_PLAYER_CONFIG.autoUpdateMetadataFromStream,
115
116
  ...(cache ? {
116
117
  cache
117
118
  } : {}),
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_index","_index2","isTurboModuleEnabled","global","__turboModuleProxy","TrackPlayerModule","default","NativeModules","TrackPlayer","Proxy","get","Error","Platform","select","ios","NativeModule","OS","emitter","NativeEventEmitter","isPlayerSetup","resolveUrl","url","resolved","Image","resolveAssetSource","uri","resolveMediaItem","item","artworkUrl","normalizePlayerConfig","options","android","DEFAULT_ANDROID_PLAYER_CONFIG","cache","DEFAULT_CACHE_CONFIG","undefined","DEFAULT_PLAYER_CONFIG","contentType","handleAudioBecomingNoisy","progressSync","setupPlayer","registerBackgroundEventHandler","factory","AppRegistry","registerHeadlessTask","type","Event","QueueChanged","setImmediate","addEventListener","event","listener","addListener","play","pause","stop","seekTo","position","seekBy","offset","skipToNext","skipToPrevious","skipToIndex","index","retry","setPlaybackSpeed","speed","setVolume","volume","setMediaItem","mediaItem","setMediaItems","mediaItems","startIndex","map","addMediaItem","addMediaItems","insertMediaItem","insertMediaItems","removeMediaItem","removeMediaItems","fromIndex","toIndex","clear","clearCache","preload","duration","cancelPreload","replaceMediaItem","moveMediaItem","updateMetadata","metadata","getPlaybackState","isPlaying","getProgress","result","buffered","cached","getPlaybackSpeed","getVolume","getActiveMediaItem","getActiveMediaItemIndex","getQueue","getRepeatMode","isShuffleEnabled","setCommands","commands","setRepeatMode","mode","setShuffleEnabled","enabled","updateProgressSyncHeaders","headers","resolveBrowseItem","children","setBrowseTree","categories","cat","items","sleepAfterTime","seconds","fadeOutSeconds","sleepAfterMediaItemAtIndex","resolvedIndex","getSleepTimer","cancelSleepTimer","destroy"],"sourceRoot":"../../src","sources":["audio.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","_index","_index2","isTurboModuleEnabled","global","__turboModuleProxy","TrackPlayerModule","default","NativeModules","TrackPlayer","Proxy","get","Error","Platform","select","ios","NativeModule","OS","emitter","NativeEventEmitter","isPlayerSetup","resolveUrl","url","resolved","Image","resolveAssetSource","uri","resolveMediaItem","item","artworkUrl","normalizePlayerConfig","options","android","DEFAULT_ANDROID_PLAYER_CONFIG","cache","DEFAULT_CACHE_CONFIG","undefined","DEFAULT_PLAYER_CONFIG","contentType","handleAudioBecomingNoisy","autoUpdateMetadataFromStream","progressSync","setupPlayer","registerBackgroundEventHandler","factory","AppRegistry","registerHeadlessTask","type","Event","QueueChanged","setImmediate","addEventListener","event","listener","addListener","play","pause","stop","seekTo","position","seekBy","offset","skipToNext","skipToPrevious","skipToIndex","index","retry","setPlaybackSpeed","speed","setVolume","volume","setMediaItem","mediaItem","setMediaItems","mediaItems","startIndex","map","addMediaItem","addMediaItems","insertMediaItem","insertMediaItems","removeMediaItem","removeMediaItems","fromIndex","toIndex","clear","clearCache","preload","duration","cancelPreload","replaceMediaItem","moveMediaItem","updateMetadata","metadata","getPlaybackState","isPlaying","getProgress","result","buffered","cached","getPlaybackSpeed","getVolume","getActiveMediaItem","getActiveMediaItemIndex","getQueue","getRepeatMode","isShuffleEnabled","setCommands","commands","setRepeatMode","mode","setShuffleEnabled","enabled","updateProgressSyncHeaders","headers","resolveBrowseItem","children","setBrowseTree","categories","cat","items","sleepAfterTime","seconds","fadeOutSeconds","sleepAfterMediaItemAtIndex","resolvedIndex","getSleepTimer","cancelSleepTimer","destroy"],"sourceRoot":"../../src","sources":["audio.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=MediaMetadataChanged.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../src","sources":["events/MediaMetadataChanged.ts"],"mappings":"","ignoreList":[]}
@@ -43,6 +43,18 @@ Object.keys(_MediaItemTransition).forEach(function (key) {
43
43
  }
44
44
  });
45
45
  });
46
+ var _MediaMetadataChanged = require("./MediaMetadataChanged.js");
47
+ Object.keys(_MediaMetadataChanged).forEach(function (key) {
48
+ if (key === "default" || key === "__esModule") return;
49
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
50
+ if (key in exports && exports[key] === _MediaMetadataChanged[key]) return;
51
+ Object.defineProperty(exports, key, {
52
+ enumerable: true,
53
+ get: function () {
54
+ return _MediaMetadataChanged[key];
55
+ }
56
+ });
57
+ });
46
58
  var _MetadataReceived = require("./MetadataReceived.js");
47
59
  Object.keys(_MetadataReceived).forEach(function (key) {
48
60
  if (key === "default" || key === "__esModule") return;
@@ -123,6 +135,7 @@ let Event = exports.Event = /*#__PURE__*/function (Event) {
123
135
  Event["PlaybackStateChanged"] = "event.playback-state-changed";
124
136
  Event["IsPlayingChanged"] = "event.is-playing-changed";
125
137
  Event["MediaItemTransition"] = "event.media-item-transition";
138
+ Event["MediaMetadataChanged"] = "event.media-metadata-changed";
126
139
  Event["MetadataReceived"] = "event.metadata-received";
127
140
  Event["PlaybackError"] = "event.playback-error";
128
141
  Event["PlaybackProgressUpdated"] = "event.playback-progress-updated";
@@ -1 +1 @@
1
- {"version":3,"names":["_PlaybackStateChanged","require","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_IsPlayingChanged","_MediaItemTransition","_MetadataReceived","_RemoteControl","_PlaybackError","_PlaybackProgressUpdated","_QueueChanged","_SleepTimerTriggered","Event"],"sourceRoot":"../../../src","sources":["events/index.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_PlaybackStateChanged","require","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_IsPlayingChanged","_MediaItemTransition","_MediaMetadataChanged","_MetadataReceived","_RemoteControl","_PlaybackError","_PlaybackProgressUpdated","_QueueChanged","_SleepTimerTriggered","Event"],"sourceRoot":"../../../src","sources":["events/index.ts"],"mappings":"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","ignoreList":[]}
@@ -14,8 +14,14 @@ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r
14
14
  */
15
15
 
16
16
  /**
17
- * Returns the currently active media item, updating on item transitions
18
- * and when stream metadata changes (e.g. ICY tags from live radio).
17
+ * Returns the currently active media item, updating on item transitions and
18
+ * whenever the active item's effective metadata changes (e.g. ICY tags from
19
+ * a live radio stream rewriting title/artist).
20
+ *
21
+ * Subscribes to {@link Event.MediaMetadataChanged} rather than
22
+ * {@link Event.MetadataReceived} so the re-read of {@link getActiveMediaItem}
23
+ * happens *after* native has finished merging the new metadata into the
24
+ * queued item — no race against the IPC that lands the auto-update.
19
25
  */
20
26
  function useActiveMediaItem() {
21
27
  const [item, setItem] = (0, _react.useState)(() => TrackPlayer.getActiveMediaItem());
@@ -23,7 +29,7 @@ function useActiveMediaItem() {
23
29
  const transitionSub = TrackPlayer.addEventListener(_index.Event.MediaItemTransition, event => {
24
30
  setItem(event.item);
25
31
  });
26
- const metadataSub = TrackPlayer.addEventListener(_index.Event.MetadataReceived, () => {
32
+ const metadataSub = TrackPlayer.addEventListener(_index.Event.MediaMetadataChanged, () => {
27
33
  setItem(TrackPlayer.getActiveMediaItem());
28
34
  });
29
35
  return () => {
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","TrackPlayer","_interopRequireWildcard","_index","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","useActiveMediaItem","item","setItem","useState","getActiveMediaItem","useEffect","transitionSub","addEventListener","Event","MediaItemTransition","event","metadataSub","MetadataReceived","remove"],"sourceRoot":"../../../src","sources":["hooks/useActiveMediaItem.ts"],"mappings":";;;;;;AAKA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAC,uBAAA,CAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AAAkC,SAAAE,wBAAAE,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAJ,uBAAA,YAAAA,CAAAE,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAPlC;AACA;AACA;AACA;;AAOA;AACA;AACA;AACA;AACO,SAASkB,kBAAkBA,CAAA,EAAqB;EACrD,MAAM,CAACC,IAAI,EAAEC,OAAO,CAAC,GAAG,IAAAC,eAAQ,EAAmB,MACjDzB,WAAW,CAAC0B,kBAAkB,CAAC,CACjC,CAAC;EAED,IAAAC,gBAAS,EAAC,MAAM;IACd,MAAMC,aAAa,GAAG5B,WAAW,CAAC6B,gBAAgB,CAChDC,YAAK,CAACC,mBAAmB,EACxBC,KAAK,IAAK;MACTR,OAAO,CAACQ,KAAK,CAACT,IAAI,CAAC;IACrB,CACF,CAAC;IACD,MAAMU,WAAW,GAAGjC,WAAW,CAAC6B,gBAAgB,CAC9CC,YAAK,CAACI,gBAAgB,EACtB,MAAM;MACJV,OAAO,CAACxB,WAAW,CAAC0B,kBAAkB,CAAC,CAAC,CAAC;IAC3C,CACF,CAAC;IACD,OAAO,MAAM;MACXE,aAAa,CAACO,MAAM,CAAC,CAAC;MACtBF,WAAW,CAACE,MAAM,CAAC,CAAC;IACtB,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAEN,OAAOZ,IAAI;AACb","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","TrackPlayer","_interopRequireWildcard","_index","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","useActiveMediaItem","item","setItem","useState","getActiveMediaItem","useEffect","transitionSub","addEventListener","Event","MediaItemTransition","event","metadataSub","MediaMetadataChanged","remove"],"sourceRoot":"../../../src","sources":["hooks/useActiveMediaItem.ts"],"mappings":";;;;;;AAKA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAC,uBAAA,CAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AAAkC,SAAAE,wBAAAE,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAJ,uBAAA,YAAAA,CAAAE,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAPlC;AACA;AACA;AACA;;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASkB,kBAAkBA,CAAA,EAAqB;EACrD,MAAM,CAACC,IAAI,EAAEC,OAAO,CAAC,GAAG,IAAAC,eAAQ,EAAmB,MACjDzB,WAAW,CAAC0B,kBAAkB,CAAC,CACjC,CAAC;EAED,IAAAC,gBAAS,EAAC,MAAM;IACd,MAAMC,aAAa,GAAG5B,WAAW,CAAC6B,gBAAgB,CAChDC,YAAK,CAACC,mBAAmB,EACxBC,KAAK,IAAK;MACTR,OAAO,CAACQ,KAAK,CAACT,IAAI,CAAC;IACrB,CACF,CAAC;IACD,MAAMU,WAAW,GAAGjC,WAAW,CAAC6B,gBAAgB,CAC9CC,YAAK,CAACI,oBAAoB,EAC1B,MAAM;MACJV,OAAO,CAACxB,WAAW,CAAC0B,kBAAkB,CAAC,CAAC,CAAC;IAC3C,CACF,CAAC;IACD,OAAO,MAAM;MACXE,aAAa,CAACO,MAAM,CAAC,CAAC;MACtBF,WAAW,CAACE,MAAM,CAAC,CAAC;IACtB,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAEN,OAAOZ,IAAI;AACb","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","TrackPlayer","_interopRequireWildcard","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","useProgress","updateInterval","progress","setProgress","useState","getProgress","useEffect","id","setInterval","clearInterval"],"sourceRoot":"../../../src","sources":["hooks/useProgress.ts"],"mappings":";;;;;;AAKA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAC,uBAAA,CAAAF,OAAA;AAAwC,SAAAE,wBAAAC,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAH,uBAAA,YAAAA,CAAAC,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AANxC;AACA;AACA;AACA;;AAMA;AACA;AACA;AACA;AACO,SAASkB,WAAWA,CAACC,cAAc,GAAG,CAAC,EAAY;EACxD,MAAM,CAACC,QAAQ,EAAEC,WAAW,CAAC,GAAG,IAAAC,eAAQ,EAAW,MACjDzB,WAAW,CAAC0B,WAAW,CAAC,CAC1B,CAAC;EAED,IAAAC,gBAAS,EAAC,MAAM;IACd,MAAMC,EAAE,GAAGC,WAAW,CAAC,MAAM;MAC3BL,WAAW,CAACxB,WAAW,CAAC0B,WAAW,CAAC,CAAC,CAAC;IACxC,CAAC,EAAEJ,cAAc,GAAG,IAAI,CAAC;IAEzB,OAAO,MAAMQ,aAAa,CAACF,EAAE,CAAC;EAChC,CAAC,EAAE,CAACN,cAAc,CAAC,CAAC;EAEpB,OAAOC,QAAQ;AACjB","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","TrackPlayer","_interopRequireWildcard","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","useProgress","updateInterval","progress","setProgress","useState","getProgress","useEffect","id","setInterval","clearInterval"],"sourceRoot":"../../../src","sources":["hooks/useProgress.ts"],"mappings":";;;;;;AAKA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAC,uBAAA,CAAAF,OAAA;AAAwC,SAAAE,wBAAAC,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAH,uBAAA,YAAAA,CAAAC,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AANxC;AACA;AACA;AACA;;AAMA;AACA;AACA;AACA;AACO,SAASkB,WAAWA,CAACC,cAAsB,GAAG,CAAC,EAAY;EAChE,MAAM,CAACC,QAAQ,EAAEC,WAAW,CAAC,GAAG,IAAAC,eAAQ,EAAW,MACjDzB,WAAW,CAAC0B,WAAW,CAAC,CAC1B,CAAC;EAED,IAAAC,gBAAS,EAAC,MAAM;IACd,MAAMC,EAAE,GAAGC,WAAW,CAAC,MAAM;MAC3BL,WAAW,CAACxB,WAAW,CAAC0B,WAAW,CAAC,CAAC,CAAC;IACxC,CAAC,EAAEJ,cAAc,GAAG,IAAI,CAAC;IAEzB,OAAO,MAAMQ,aAAa,CAACF,EAAE,CAAC;EAChC,CAAC,EAAE,CAACN,cAAc,CAAC,CAAC;EAEpB,OAAOC,QAAQ;AACjB","ignoreList":[]}
@@ -28,6 +28,7 @@ const DEFAULT_ANDROID_PLAYER_CONFIG = exports.DEFAULT_ANDROID_PLAYER_CONFIG = {
28
28
  const DEFAULT_PLAYER_CONFIG = exports.DEFAULT_PLAYER_CONFIG = {
29
29
  contentType: 'music',
30
30
  handleAudioBecomingNoisy: true,
31
+ autoUpdateMetadataFromStream: true,
31
32
  android: DEFAULT_ANDROID_PLAYER_CONFIG
32
33
  };
33
34
  //# sourceMappingURL=PlayerConfig.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["DEFAULT_CACHE_CONFIG","exports","maxSizeBytes","DEFAULT_CAST_RECEIVER_APP_ID","DEFAULT_ANDROID_PLAYER_CONFIG","wakeMode","skipSilenceEnabled","DEFAULT_PLAYER_CONFIG","contentType","handleAudioBecomingNoisy","android"],"sourceRoot":"../../../src","sources":["interfaces/PlayerConfig.ts"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;;AAsCO,MAAMA,oBAA+D,GAAAC,OAAA,CAAAD,oBAAA,GAAG;EAC7EE,YAAY,EAAE,GAAG,GAAG,IAAI,GAAG;AAC7B,CAAC;;AAED;AACA;AACA;AACA;AACO,MAAMC,4BAA4B,GAAAF,OAAA,CAAAE,4BAAA,GAAG,UAAU;;AAEtD;AACO,MAAMC,6BAAkD,GAAAH,OAAA,CAAAG,6BAAA,GAAG;EAChEC,QAAQ,EAAE,MAAM;EAChBC,kBAAkB,EAAE;AACtB,CAAC;AAwBD;AACO,MAAMC,qBAIZ,GAAAN,OAAA,CAAAM,qBAAA,GAAG;EACFC,WAAW,EAAE,OAAO;EACpBC,wBAAwB,EAAE,IAAI;EAC9BC,OAAO,EAAEN;AACX,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["DEFAULT_CACHE_CONFIG","exports","maxSizeBytes","DEFAULT_CAST_RECEIVER_APP_ID","DEFAULT_ANDROID_PLAYER_CONFIG","wakeMode","skipSilenceEnabled","DEFAULT_PLAYER_CONFIG","contentType","handleAudioBecomingNoisy","autoUpdateMetadataFromStream","android"],"sourceRoot":"../../../src","sources":["interfaces/PlayerConfig.ts"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;;AAsCO,MAAMA,oBAA+D,GAAAC,OAAA,CAAAD,oBAAA,GAAG;EAC7EE,YAAY,EAAE,GAAG,GAAG,IAAI,GAAG;AAC7B,CAAC;;AAED;AACA;AACA;AACA;AACO,MAAMC,4BAA4B,GAAAF,OAAA,CAAAE,4BAAA,GAAG,UAAU;;AAEtD;AACO,MAAMC,6BAAkD,GAAAH,OAAA,CAAAG,6BAAA,GAAG;EAChEC,QAAQ,EAAE,MAAM;EAChBC,kBAAkB,EAAE;AACtB,CAAC;AAwBD;AACO,MAAMC,qBAIZ,GAAAN,OAAA,CAAAM,qBAAA,GAAG;EACFC,WAAW,EAAE,OAAO;EACpBC,wBAAwB,EAAE,IAAI;EAC9BC,4BAA4B,EAAE,IAAI;EAClCC,OAAO,EAAEP;AACX,CAAC","ignoreList":[]}
@@ -60,6 +60,7 @@ function normalizePlayerConfig(options) {
60
60
  ...options,
61
61
  contentType: options.contentType ?? DEFAULT_PLAYER_CONFIG.contentType,
62
62
  handleAudioBecomingNoisy: options.handleAudioBecomingNoisy ?? DEFAULT_PLAYER_CONFIG.handleAudioBecomingNoisy,
63
+ autoUpdateMetadataFromStream: options.autoUpdateMetadataFromStream ?? DEFAULT_PLAYER_CONFIG.autoUpdateMetadataFromStream,
63
64
  ...(cache ? {
64
65
  cache
65
66
  } : {}),