@rntp/player 5.0.0-beta.2 → 5.0.0-beta.4

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 (40) hide show
  1. package/RNTPPlayer.podspec +1 -0
  2. package/android/src/main/java/com/doublesymmetry/trackplayer/TrackPlayerModule.kt +60 -0
  3. package/android/src/main/java/com/doublesymmetry/trackplayer/TrackPlayerPlaybackService.kt +156 -0
  4. package/android/src/main/java/com/doublesymmetry/trackplayer/models/BrowseTree.kt +51 -20
  5. package/android/src/main/java/com/doublesymmetry/trackplayer/models/EmitEventType.kt +11 -0
  6. package/ios/CarPlay/BrowseTreeStore.swift +40 -0
  7. package/ios/CarPlay/RNTPCarPlaySceneDelegate.swift +283 -0
  8. package/ios/TrackPlayer.swift +135 -1
  9. package/ios/TrackPlayerBridge.mm +9 -0
  10. package/ios/models/EmitEvent.swift +10 -0
  11. package/lib/commonjs/NativeTrackPlayer.js.map +1 -1
  12. package/lib/commonjs/audio.js +76 -7
  13. package/lib/commonjs/audio.js.map +1 -1
  14. package/lib/commonjs/events/SleepTimerTriggered.js +2 -0
  15. package/lib/commonjs/events/SleepTimerTriggered.js.map +1 -0
  16. package/lib/commonjs/events/index.js +13 -0
  17. package/lib/commonjs/events/index.js.map +1 -1
  18. package/lib/module/NativeTrackPlayer.js.map +1 -1
  19. package/lib/module/audio.js +72 -7
  20. package/lib/module/audio.js.map +1 -1
  21. package/lib/module/events/SleepTimerTriggered.js +2 -0
  22. package/lib/module/events/SleepTimerTriggered.js.map +1 -0
  23. package/lib/module/events/index.js +2 -0
  24. package/lib/module/events/index.js.map +1 -1
  25. package/lib/typescript/src/NativeTrackPlayer.d.ts +4 -0
  26. package/lib/typescript/src/NativeTrackPlayer.d.ts.map +1 -1
  27. package/lib/typescript/src/audio.d.ts +48 -5
  28. package/lib/typescript/src/audio.d.ts.map +1 -1
  29. package/lib/typescript/src/events/SleepTimerTriggered.d.ts +5 -0
  30. package/lib/typescript/src/events/SleepTimerTriggered.d.ts.map +1 -0
  31. package/lib/typescript/src/events/index.d.ts +5 -1
  32. package/lib/typescript/src/events/index.d.ts.map +1 -1
  33. package/lib/typescript/src/interfaces/BrowseTree.d.ts +35 -5
  34. package/lib/typescript/src/interfaces/BrowseTree.d.ts.map +1 -1
  35. package/package.json +1 -1
  36. package/src/NativeTrackPlayer.ts +6 -0
  37. package/src/audio.ts +84 -8
  38. package/src/events/SleepTimerTriggered.ts +4 -0
  39. package/src/events/index.ts +4 -0
  40. package/src/interfaces/BrowseTree.ts +40 -5
@@ -103,6 +103,18 @@ Object.keys(_QueueChanged).forEach(function (key) {
103
103
  }
104
104
  });
105
105
  });
106
+ var _SleepTimerTriggered = require("./SleepTimerTriggered.js");
107
+ Object.keys(_SleepTimerTriggered).forEach(function (key) {
108
+ if (key === "default" || key === "__esModule") return;
109
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
110
+ if (key in exports && exports[key] === _SleepTimerTriggered[key]) return;
111
+ Object.defineProperty(exports, key, {
112
+ enumerable: true,
113
+ get: function () {
114
+ return _SleepTimerTriggered[key];
115
+ }
116
+ });
117
+ });
106
118
  /**
107
119
  * Copyright (c) Double Symmetry GmbH
108
120
  * Commercial use requires a license. See https://rntp.dev/pricing
@@ -123,6 +135,7 @@ let Event = exports.Event = /*#__PURE__*/function (Event) {
123
135
  Event["RemoteSeek"] = "event.remote-seek";
124
136
  Event["RemoteSkipForward"] = "event.remote-skip-forward";
125
137
  Event["RemoteSkipBackward"] = "event.remote-skip-backward";
138
+ Event["SleepTimerTriggered"] = "event.sleep-timer-triggered";
126
139
  return Event;
127
140
  }({});
128
141
  /** Union of all event payloads with a `type` discriminator. */
@@ -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","Event"],"sourceRoot":"../../../src","sources":["events/index.ts"],"mappings":";;;;;;;;;AAuEA,IAAAA,qBAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,qBAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAL,qBAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAb,qBAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAS,iBAAA,GAAAb,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAW,iBAAA,EAAAV,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAS,iBAAA,CAAAT,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,iBAAA,CAAAT,GAAA;IAAA;EAAA;AAAA;AACA,IAAAU,oBAAA,GAAAd,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAY,oBAAA,EAAAX,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAU,oBAAA,CAAAV,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAE,oBAAA,CAAAV,GAAA;IAAA;EAAA;AAAA;AACA,IAAAW,iBAAA,GAAAf,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAa,iBAAA,EAAAZ,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAW,iBAAA,CAAAX,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAG,iBAAA,CAAAX,GAAA;IAAA;EAAA;AAAA;AACA,IAAAY,cAAA,GAAAhB,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAc,cAAA,EAAAb,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAY,cAAA,CAAAZ,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAI,cAAA,CAAAZ,GAAA;IAAA;EAAA;AAAA;AACA,IAAAa,cAAA,GAAAjB,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAe,cAAA,EAAAd,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAa,cAAA,CAAAb,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAK,cAAA,CAAAb,GAAA;IAAA;EAAA;AAAA;AACA,IAAAc,wBAAA,GAAAlB,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAgB,wBAAA,EAAAf,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAc,wBAAA,CAAAd,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAM,wBAAA,CAAAd,GAAA;IAAA;EAAA;AAAA;AACA,IAAAe,aAAA,GAAAnB,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAiB,aAAA,EAAAhB,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAe,aAAA,CAAAf,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAO,aAAA,CAAAf,GAAA;IAAA;EAAA;AAAA;AA9EA;AACA;AACA;AACA;AAHA,IAuBYgB,KAAK,GAAAX,OAAA,CAAAW,KAAA,0BAALA,KAAK;EAALA,KAAK;EAALA,KAAK;EAALA,KAAK;EAALA,KAAK;EAALA,KAAK;EAALA,KAAK;EAALA,KAAK;EAALA,KAAK;EAALA,KAAK;EAALA,KAAK;EAALA,KAAK;EAALA,KAAK;EAALA,KAAK;EAALA,KAAK;EAALA,KAAK;EAAA,OAALA,KAAK;AAAA;AA4CjB","ignoreList":[]}
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 +1 @@
1
- {"version":3,"names":["TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../src","sources":["NativeTrackPlayer.ts"],"mappings":";;AAAA;AACA;AACA;AACA;;AAGA,SAASA,mBAAmB,QAAQ,cAAc;AAgFlD,eAAeA,mBAAmB,CAACC,YAAY,CAAO,aAAa,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../src","sources":["NativeTrackPlayer.ts"],"mappings":";;AAAA;AACA;AACA;AACA;;AAGA,SAASA,mBAAmB,QAAQ,cAAc;AAsFlD,eAAeA,mBAAmB,CAACC,YAAY,CAAO,aAAa,CAAC","ignoreList":[]}
@@ -353,26 +353,91 @@ export function updateProgressSyncHeaders(headers) {
353
353
 
354
354
  // ─── Browse Tree ─────────────────────────────────────
355
355
 
356
+ function resolveBrowseItem(item) {
357
+ return {
358
+ ...item,
359
+ ...(item.url != null ? {
360
+ url: resolveUrl(item.url)
361
+ } : {}),
362
+ ...(item.artworkUrl != null ? {
363
+ artworkUrl: resolveUrl(item.artworkUrl)
364
+ } : {}),
365
+ ...(item.children != null ? {
366
+ children: item.children.map(resolveBrowseItem)
367
+ } : {})
368
+ };
369
+ }
370
+
356
371
  /**
357
- * Set the media browse tree for Android Auto and other media browsers.
358
- * Each category becomes a top-level browsable folder; its items are playable leaves.
372
+ * Set the media browse tree for Android Auto and CarPlay.
373
+ * Each category becomes a top-level browsable folder (Android Auto) or tab (CarPlay);
374
+ * its items can be playable tracks or browsable containers with children.
359
375
  *
360
- * When a user selects an item in Android Auto, the native player loads and plays it
361
- * without JS intervention.
376
+ * When a user selects a playable item, the native player loads its siblings
377
+ * as the queue and starts playback without JS intervention.
362
378
  *
363
379
  * @remarks
364
- * - On iOS this is a no-op (CarPlay uses MPPlayableContentManager, not MediaBrowserService)
380
+ * - On CarPlay, a maximum of 4 tabs are shown. If more than 4 categories are provided,
381
+ * the first 3 become tabs and the rest are grouped under a "More" tab.
382
+ * - Maximum nesting depth: 4 levels (matching CarPlay's navigation stack limit).
365
383
  * - Call again to update the tree (e.g. after loading new content)
366
384
  */
367
385
  export function setBrowseTree(categories) {
368
- if (Platform.OS !== 'android') return;
369
386
  const resolved = categories.map(cat => ({
370
387
  ...cat,
371
- items: cat.items.map(resolveMediaItem)
388
+ items: cat.items.map(resolveBrowseItem)
372
389
  }));
373
390
  TrackPlayer.setBrowseTree(resolved);
374
391
  }
375
392
 
393
+ // ─── Sleep Timer ─────────────────────────────────────
394
+
395
+ /**
396
+ * Sets a countdown sleep timer. Playback pauses after `seconds` of wall clock time.
397
+ * The timer keeps counting even if playback is paused.
398
+ *
399
+ * @param seconds Duration in seconds before playback pauses.
400
+ * @param options.fadeOutSeconds Gradually reduce volume over the last N seconds.
401
+ * Clamped to `seconds` if it exceeds it. Defaults to 0 (no fade).
402
+ *
403
+ * @remarks Cancels any existing sleep timer (last one wins).
404
+ */
405
+ export function sleepAfterTime(seconds, options) {
406
+ TrackPlayer.sleepAfterTime(seconds, options?.fadeOutSeconds ?? 0);
407
+ }
408
+
409
+ /**
410
+ * Pauses playback after the media item at `index` finishes playing.
411
+ *
412
+ * @param index Queue index of the target media item. Defaults to the active item.
413
+ *
414
+ * @remarks
415
+ * - Cancels any existing sleep timer (last one wins).
416
+ * - Index is absolute — queue mutations after setting may shift which item it points to.
417
+ * - No fade-out support (no known time horizon).
418
+ */
419
+ export function sleepAfterMediaItemAtIndex(index) {
420
+ const resolvedIndex = index ?? getActiveMediaItemIndex() ?? 0;
421
+ TrackPlayer.sleepAfterMediaItemAtIndex(resolvedIndex);
422
+ }
423
+
424
+ /**
425
+ * Returns the current sleep timer state, or `null` if none is active.
426
+ */
427
+ export function getSleepTimer() {
428
+ const result = TrackPlayer.getSleepTimer();
429
+ if (result == null) return null;
430
+ return result;
431
+ }
432
+
433
+ /**
434
+ * Cancels the active sleep timer. If a volume fade is in progress,
435
+ * restores the original volume immediately.
436
+ */
437
+ export function cancelSleepTimer() {
438
+ TrackPlayer.cancelSleepTimer();
439
+ }
440
+
376
441
  // ─── Destroy ─────────────────────────────────────────
377
442
 
378
443
  /**
@@ -1 +1 @@
1
- {"version":3,"names":["AppRegistry","Image","NativeEventEmitter","NativeModules","Platform","DEFAULT_PLAYER_CONFIG","DEFAULT_ANDROID_PLAYER_CONFIG","DEFAULT_CACHE_CONFIG","Event","isTurboModuleEnabled","global","__turboModuleProxy","TrackPlayerModule","require","default","TrackPlayer","Proxy","get","Error","select","ios","NativeModule","OS","emitter","isPlayerSetup","resolveUrl","url","resolved","resolveAssetSource","uri","resolveMediaItem","item","artworkUrl","normalizePlayerConfig","options","android","cache","undefined","contentType","handleAudioBecomingNoisy","progressSync","setupPlayer","registerBackgroundEventHandler","factory","registerHeadlessTask","type","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","replaceMediaItem","moveMediaItem","updateMetadata","metadata","getPlaybackState","isPlaying","getProgress","result","duration","buffered","cached","getPlaybackSpeed","getVolume","getActiveMediaItem","getActiveMediaItemIndex","getQueue","getRepeatMode","isShuffleEnabled","setCommands","commands","setRepeatMode","mode","setShuffleEnabled","enabled","updateProgressSyncHeaders","headers","setBrowseTree","categories","cat","items","destroy"],"sourceRoot":"../../src","sources":["audio.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["AppRegistry","Image","NativeEventEmitter","NativeModules","Platform","DEFAULT_PLAYER_CONFIG","DEFAULT_ANDROID_PLAYER_CONFIG","DEFAULT_CACHE_CONFIG","Event","isTurboModuleEnabled","global","__turboModuleProxy","TrackPlayerModule","require","default","TrackPlayer","Proxy","get","Error","select","ios","NativeModule","OS","emitter","isPlayerSetup","resolveUrl","url","resolved","resolveAssetSource","uri","resolveMediaItem","item","artworkUrl","normalizePlayerConfig","options","android","cache","undefined","contentType","handleAudioBecomingNoisy","progressSync","setupPlayer","registerBackgroundEventHandler","factory","registerHeadlessTask","type","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","replaceMediaItem","moveMediaItem","updateMetadata","metadata","getPlaybackState","isPlaying","getProgress","result","duration","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=SleepTimerTriggered.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../src","sources":["events/SleepTimerTriggered.ts"],"mappings":"","ignoreList":[]}
@@ -21,6 +21,7 @@ export let Event = /*#__PURE__*/function (Event) {
21
21
  Event["RemoteSeek"] = "event.remote-seek";
22
22
  Event["RemoteSkipForward"] = "event.remote-skip-forward";
23
23
  Event["RemoteSkipBackward"] = "event.remote-skip-backward";
24
+ Event["SleepTimerTriggered"] = "event.sleep-timer-triggered";
24
25
  return Event;
25
26
  }({});
26
27
 
@@ -34,4 +35,5 @@ export * from "./RemoteControl.js";
34
35
  export * from "./PlaybackError.js";
35
36
  export * from "./PlaybackProgressUpdated.js";
36
37
  export * from "./QueueChanged.js";
38
+ export * from "./SleepTimerTriggered.js";
37
39
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Event"],"sourceRoot":"../../../src","sources":["events/index.ts"],"mappings":";;AAAA;AACA;AACA;AACA;;AAoBA,WAAYA,KAAK,0BAALA,KAAK;EAALA,KAAK;EAALA,KAAK;EAALA,KAAK;EAALA,KAAK;EAALA,KAAK;EAALA,KAAK;EAALA,KAAK;EAALA,KAAK;EAALA,KAAK;EAALA,KAAK;EAALA,KAAK;EAALA,KAAK;EAALA,KAAK;EAALA,KAAK;EAALA,KAAK;EAAA,OAALA,KAAK;AAAA;;AA4CjB;;AAIA,cAAc,2BAAwB;AACtC,cAAc,uBAAoB;AAClC,cAAc,0BAAuB;AACrC,cAAc,uBAAoB;AAClC,cAAc,oBAAiB;AAC/B,cAAc,oBAAiB;AAC/B,cAAc,8BAA2B;AACzC,cAAc,mBAAgB","ignoreList":[]}
1
+ {"version":3,"names":["Event"],"sourceRoot":"../../../src","sources":["events/index.ts"],"mappings":";;AAAA;AACA;AACA;AACA;;AAqBA,WAAYA,KAAK,0BAALA,KAAK;EAALA,KAAK;EAALA,KAAK;EAALA,KAAK;EAALA,KAAK;EAALA,KAAK;EAALA,KAAK;EAALA,KAAK;EAALA,KAAK;EAALA,KAAK;EAALA,KAAK;EAALA,KAAK;EAALA,KAAK;EAALA,KAAK;EAALA,KAAK;EAALA,KAAK;EAALA,KAAK;EAAA,OAALA,KAAK;AAAA;;AA8CjB;;AAIA,cAAc,2BAAwB;AACtC,cAAc,uBAAoB;AAClC,cAAc,0BAAuB;AACrC,cAAc,uBAAoB;AAClC,cAAc,oBAAiB;AAC/B,cAAc,oBAAiB;AAC/B,cAAc,8BAA2B;AACzC,cAAc,mBAAgB;AAC9B,cAAc,0BAAuB","ignoreList":[]}
@@ -45,6 +45,10 @@ export interface Spec extends TurboModule {
45
45
  setShuffleEnabled(enabled: boolean): void;
46
46
  setBrowseTree(categories: ReadonlyArray<UnsafeObject>): void;
47
47
  updateProgressSyncHeaders(headers: UnsafeObject): void;
48
+ sleepAfterTime(seconds: number, fadeOutSeconds: number): void;
49
+ sleepAfterMediaItemAtIndex(index: number): void;
50
+ getSleepTimer(): UnsafeObject | null;
51
+ cancelSleepTimer(): void;
48
52
  destroy(): void;
49
53
  addListener: (eventType: string) => void;
50
54
  removeListeners: (count: number) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"NativeTrackPlayer.d.ts","sourceRoot":"","sources":["../../../src/NativeTrackPlayer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NativeTrackPlayer.d.ts","sourceRoot":"","sources":["../../../src/NativeTrackPlayer.ts"],"names":[],"mappings":"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"}
@@ -137,17 +137,60 @@ export declare function setShuffleEnabled(enabled: boolean): void;
137
137
  /** Update the HTTP headers used for progress sync POST requests. */
138
138
  export declare function updateProgressSyncHeaders(headers: Record<string, string>): void;
139
139
  /**
140
- * Set the media browse tree for Android Auto and other media browsers.
141
- * Each category becomes a top-level browsable folder; its items are playable leaves.
140
+ * Set the media browse tree for Android Auto and CarPlay.
141
+ * Each category becomes a top-level browsable folder (Android Auto) or tab (CarPlay);
142
+ * its items can be playable tracks or browsable containers with children.
142
143
  *
143
- * When a user selects an item in Android Auto, the native player loads and plays it
144
- * without JS intervention.
144
+ * When a user selects a playable item, the native player loads its siblings
145
+ * as the queue and starts playback without JS intervention.
145
146
  *
146
147
  * @remarks
147
- * - On iOS this is a no-op (CarPlay uses MPPlayableContentManager, not MediaBrowserService)
148
+ * - On CarPlay, a maximum of 4 tabs are shown. If more than 4 categories are provided,
149
+ * the first 3 become tabs and the rest are grouped under a "More" tab.
150
+ * - Maximum nesting depth: 4 levels (matching CarPlay's navigation stack limit).
148
151
  * - Call again to update the tree (e.g. after loading new content)
149
152
  */
150
153
  export declare function setBrowseTree(categories: BrowseCategory[]): void;
154
+ /**
155
+ * Sets a countdown sleep timer. Playback pauses after `seconds` of wall clock time.
156
+ * The timer keeps counting even if playback is paused.
157
+ *
158
+ * @param seconds Duration in seconds before playback pauses.
159
+ * @param options.fadeOutSeconds Gradually reduce volume over the last N seconds.
160
+ * Clamped to `seconds` if it exceeds it. Defaults to 0 (no fade).
161
+ *
162
+ * @remarks Cancels any existing sleep timer (last one wins).
163
+ */
164
+ export declare function sleepAfterTime(seconds: number, options?: {
165
+ fadeOutSeconds?: number;
166
+ }): void;
167
+ /**
168
+ * Pauses playback after the media item at `index` finishes playing.
169
+ *
170
+ * @param index Queue index of the target media item. Defaults to the active item.
171
+ *
172
+ * @remarks
173
+ * - Cancels any existing sleep timer (last one wins).
174
+ * - Index is absolute — queue mutations after setting may shift which item it points to.
175
+ * - No fade-out support (no known time horizon).
176
+ */
177
+ export declare function sleepAfterMediaItemAtIndex(index?: number): void;
178
+ /**
179
+ * Returns the current sleep timer state, or `null` if none is active.
180
+ */
181
+ export declare function getSleepTimer(): {
182
+ type: 'time';
183
+ remainingSeconds: number;
184
+ fadeOutSeconds: number;
185
+ } | {
186
+ type: 'mediaItem';
187
+ index: number;
188
+ } | null;
189
+ /**
190
+ * Cancels the active sleep timer. If a volume fade is in progress,
191
+ * restores the original volume immediately.
192
+ */
193
+ export declare function cancelSleepTimer(): void;
151
194
  /**
152
195
  * Tears down the player and releases all resources.
153
196
  * After calling this, you must call `setupPlayer()` again to use the player.
@@ -1 +1 @@
1
- {"version":3,"file":"audio.d.ts","sourceRoot":"","sources":["../../../src/audio.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"audio.d.ts","sourceRoot":"","sources":["../../../src/audio.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export interface SleepTimerTriggeredEvent {
2
+ /** Which sleep timer mode triggered: countdown or media-item boundary. */
3
+ type: 'time' | 'mediaItem';
4
+ }
5
+ //# sourceMappingURL=SleepTimerTriggered.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SleepTimerTriggered.d.ts","sourceRoot":"","sources":["../../../../src/events/SleepTimerTriggered.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,wBAAwB;IACvC,0EAA0E;IAC1E,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;CAC5B"}
@@ -10,6 +10,7 @@ import type { RemotePlayEvent, RemotePauseEvent, RemoteNextEvent, RemotePrevious
10
10
  import type { PlaybackErrorEvent } from './PlaybackError';
11
11
  import type { PlaybackProgressUpdatedEvent } from './PlaybackProgressUpdated';
12
12
  import type { QueueChangedEvent } from './QueueChanged';
13
+ import type { SleepTimerTriggeredEvent } from './SleepTimerTriggered';
13
14
  export declare enum Event {
14
15
  PlaybackStateChanged = "event.playback-state-changed",
15
16
  IsPlayingChanged = "event.is-playing-changed",
@@ -25,7 +26,8 @@ export declare enum Event {
25
26
  RemoteStop = "event.remote-stop",
26
27
  RemoteSeek = "event.remote-seek",
27
28
  RemoteSkipForward = "event.remote-skip-forward",
28
- RemoteSkipBackward = "event.remote-skip-backward"
29
+ RemoteSkipBackward = "event.remote-skip-backward",
30
+ SleepTimerTriggered = "event.sleep-timer-triggered"
29
31
  }
30
32
  export type EventPayloadByEvent = {
31
33
  [Event.PlaybackStateChanged]: PlaybackStateChangedEvent;
@@ -43,6 +45,7 @@ export type EventPayloadByEvent = {
43
45
  [Event.RemoteSeek]: RemoteSeekEvent;
44
46
  [Event.RemoteSkipForward]: RemoteSkipForwardEvent;
45
47
  [Event.RemoteSkipBackward]: RemoteSkipBackwardEvent;
48
+ [Event.SleepTimerTriggered]: SleepTimerTriggeredEvent;
46
49
  };
47
50
  type Simplify<T> = {
48
51
  [KeyType in keyof T]: T[KeyType];
@@ -64,4 +67,5 @@ export * from './RemoteControl';
64
67
  export * from './PlaybackError';
65
68
  export * from './PlaybackProgressUpdated';
66
69
  export * from './QueueChanged';
70
+ export * from './SleepTimerTriggered';
67
71
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/events/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,KAAK,EACV,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,eAAe,EACf,sBAAsB,EACtB,uBAAuB,EACxB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,2BAA2B,CAAC;AAC9E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAExD,oBAAY,KAAK;IACf,oBAAoB,iCAAiC;IACrD,gBAAgB,6BAA6B;IAC7C,mBAAmB,gCAAgC;IACnD,gBAAgB,4BAA4B;IAC5C,aAAa,yBAAyB;IACtC,uBAAuB,oCAAoC;IAC3D,YAAY,wBAAwB;IACpC,UAAU,sBAAsB;IAChC,WAAW,uBAAuB;IAClC,UAAU,sBAAsB;IAChC,cAAc,0BAA0B;IACxC,UAAU,sBAAsB;IAChC,UAAU,sBAAsB;IAChC,iBAAiB,8BAA8B;IAC/C,kBAAkB,+BAA+B;CAClD;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,CAAC,KAAK,CAAC,oBAAoB,CAAC,EAAE,yBAAyB,CAAC;IACxD,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE,qBAAqB,CAAC;IAChD,CAAC,KAAK,CAAC,mBAAmB,CAAC,EAAE,wBAAwB,CAAC;IACtD,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE,qBAAqB,CAAC;IAChD,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,kBAAkB,CAAC;IAC1C,CAAC,KAAK,CAAC,uBAAuB,CAAC,EAAE,4BAA4B,CAAC;IAC9D,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,iBAAiB,CAAC;IACxC,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,eAAe,CAAC;IACpC,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,gBAAgB,CAAC;IACtC,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,eAAe,CAAC;IACpC,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,mBAAmB,CAAC;IAC5C,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,eAAe,CAAC;IACpC,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,eAAe,CAAC;IACpC,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE,sBAAsB,CAAC;IAClD,CAAC,KAAK,CAAC,kBAAkB,CAAC,EAAE,uBAAuB,CAAC;CACrD,CAAC;AAEF,KAAK,QAAQ,CAAC,CAAC,IAAI;KAAG,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;CAAE,GAAG,EAAE,CAAC;AAE7D,MAAM,MAAM,2BAA2B,GAAG;KACvC,CAAC,IAAI,MAAM,mBAAmB,GAAG,mBAAmB,CAAC,CAAC,CAAC,SAAS,KAAK,GAClE;QAAE,IAAI,EAAE,CAAC,CAAA;KAAE,GACX,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC,GAAG;QAAE,IAAI,EAAE,CAAC,CAAA;KAAE,CAAC;CACnD,CAAC;AAEF,+DAA+D;AAC/D,MAAM,MAAM,eAAe,GACzB,2BAA2B,CAAC,MAAM,2BAA2B,CAAC,CAAC;AAEjE,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/events/index.ts"],"names":[],"mappings":"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"}
@@ -2,17 +2,47 @@
2
2
  * Copyright (c) Double Symmetry GmbH
3
3
  * Commercial use requires a license. See https://rntp.dev/pricing
4
4
  */
5
- import type { MediaItem } from './MediaItem';
5
+ import type { MediaUrl } from './MediaItem';
6
6
  /**
7
- * A category in the media browse tree shown in Android Auto / media browsers.
8
- * Each category appears as a top-level tab/section; its items are playable leaves.
7
+ * An item in the browse tree either a playable track or a browsable container.
8
+ *
9
+ * - `url` present → playable track (leaf node)
10
+ * - `children` present (no `url`) → browsable container (tapping drills down)
11
+ * - `url` takes precedence if both are present
12
+ *
13
+ * Maximum nesting depth: 4 levels (matching CarPlay's navigation stack limit).
14
+ */
15
+ export interface BrowseItem {
16
+ /** Unique identifier for this item. */
17
+ mediaId: string;
18
+ /** Display title. */
19
+ title: string;
20
+ /** Artist or subtitle. */
21
+ artist?: string;
22
+ /** Artwork image URL. */
23
+ artworkUrl?: MediaUrl;
24
+ /** Audio source URL. If present, this item is playable. */
25
+ url?: MediaUrl;
26
+ /** Duration hint in seconds. */
27
+ duration?: number;
28
+ /** Whether this is a live stream. */
29
+ isLive?: boolean;
30
+ /** MIME type hint for format detection. */
31
+ mimeType?: string;
32
+ /** Child items. If present (and no `url`), this item is browsable. */
33
+ children?: BrowseItem[];
34
+ }
35
+ /**
36
+ * A top-level category in the browse tree.
37
+ * On Android Auto, each category is a browsable folder.
38
+ * On CarPlay, each category is a tab (max 4; overflow creates a "More" tab).
9
39
  */
10
40
  export interface BrowseCategory {
11
41
  /** Unique identifier for this category. */
12
42
  mediaId: string;
13
43
  /** Display title for the category (e.g. "Albums", "Podcasts"). */
14
44
  title: string;
15
- /** Playable media items within this category. */
16
- items: MediaItem[];
45
+ /** Items within this category — can be playable tracks or browsable containers. */
46
+ items: BrowseItem[];
17
47
  }
18
48
  //# sourceMappingURL=BrowseTree.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BrowseTree.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/BrowseTree.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,2CAA2C;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,kEAAkE;IAClE,KAAK,EAAE,MAAM,CAAC;IACd,iDAAiD;IACjD,KAAK,EAAE,SAAS,EAAE,CAAC;CACpB"}
1
+ {"version":3,"file":"BrowseTree.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/BrowseTree.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C;;;;;;;;GAQG;AACH,MAAM,WAAW,UAAU;IACzB,uCAAuC;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,qBAAqB;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,0BAA0B;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yBAAyB;IACzB,UAAU,CAAC,EAAE,QAAQ,CAAC;IAGtB,2DAA2D;IAC3D,GAAG,CAAC,EAAE,QAAQ,CAAC;IACf,gCAAgC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qCAAqC;IACrC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAGlB,sEAAsE;IACtE,QAAQ,CAAC,EAAE,UAAU,EAAE,CAAC;CACzB;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,2CAA2C;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,kEAAkE;IAClE,KAAK,EAAE,MAAM,CAAC;IACd,mFAAmF;IACnF,KAAK,EAAE,UAAU,EAAE,CAAC;CACrB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rntp/player",
3
- "version": "5.0.0-beta.2",
3
+ "version": "5.0.0-beta.4",
4
4
  "description": "The premium audio player for React Native",
5
5
  "source": "./src/index.tsx",
6
6
  "react-native": "./src/index.tsx",
@@ -76,6 +76,12 @@ export interface Spec extends TurboModule {
76
76
  // Progress Sync
77
77
  updateProgressSyncHeaders(headers: UnsafeObject): void;
78
78
 
79
+ // Sleep Timer
80
+ sleepAfterTime(seconds: number, fadeOutSeconds: number): void;
81
+ sleepAfterMediaItemAtIndex(index: number): void;
82
+ getSleepTimer(): UnsafeObject | null;
83
+ cancelSleepTimer(): void;
84
+
79
85
  // Destroy
80
86
  destroy(): void;
81
87
 
package/src/audio.ts CHANGED
@@ -16,6 +16,7 @@ import {
16
16
  type PlayerConfig,
17
17
  type RemoteControlConfig,
18
18
  type BrowseCategory,
19
+ type BrowseItem,
19
20
  type MediaItem,
20
21
  type MediaUrl,
21
22
  type Progress,
@@ -412,27 +413,102 @@ export function updateProgressSyncHeaders(
412
413
 
413
414
  // ─── Browse Tree ─────────────────────────────────────
414
415
 
416
+ function resolveBrowseItem(item: BrowseItem): BrowseItem {
417
+ return {
418
+ ...item,
419
+ ...(item.url != null ? { url: resolveUrl(item.url) } : {}),
420
+ ...(item.artworkUrl != null
421
+ ? { artworkUrl: resolveUrl(item.artworkUrl) }
422
+ : {}),
423
+ ...(item.children != null
424
+ ? { children: item.children.map(resolveBrowseItem) }
425
+ : {}),
426
+ };
427
+ }
428
+
415
429
  /**
416
- * Set the media browse tree for Android Auto and other media browsers.
417
- * Each category becomes a top-level browsable folder; its items are playable leaves.
430
+ * Set the media browse tree for Android Auto and CarPlay.
431
+ * Each category becomes a top-level browsable folder (Android Auto) or tab (CarPlay);
432
+ * its items can be playable tracks or browsable containers with children.
418
433
  *
419
- * When a user selects an item in Android Auto, the native player loads and plays it
420
- * without JS intervention.
434
+ * When a user selects a playable item, the native player loads its siblings
435
+ * as the queue and starts playback without JS intervention.
421
436
  *
422
437
  * @remarks
423
- * - On iOS this is a no-op (CarPlay uses MPPlayableContentManager, not MediaBrowserService)
438
+ * - On CarPlay, a maximum of 4 tabs are shown. If more than 4 categories are provided,
439
+ * the first 3 become tabs and the rest are grouped under a "More" tab.
440
+ * - Maximum nesting depth: 4 levels (matching CarPlay's navigation stack limit).
424
441
  * - Call again to update the tree (e.g. after loading new content)
425
442
  */
426
443
  export function setBrowseTree(categories: BrowseCategory[]): void {
427
- if (Platform.OS !== 'android') return;
428
-
429
444
  const resolved = categories.map((cat) => ({
430
445
  ...cat,
431
- items: cat.items.map(resolveMediaItem),
446
+ items: cat.items.map(resolveBrowseItem),
432
447
  }));
433
448
  TrackPlayer.setBrowseTree(resolved);
434
449
  }
435
450
 
451
+ // ─── Sleep Timer ─────────────────────────────────────
452
+
453
+ /**
454
+ * Sets a countdown sleep timer. Playback pauses after `seconds` of wall clock time.
455
+ * The timer keeps counting even if playback is paused.
456
+ *
457
+ * @param seconds Duration in seconds before playback pauses.
458
+ * @param options.fadeOutSeconds Gradually reduce volume over the last N seconds.
459
+ * Clamped to `seconds` if it exceeds it. Defaults to 0 (no fade).
460
+ *
461
+ * @remarks Cancels any existing sleep timer (last one wins).
462
+ */
463
+ export function sleepAfterTime(
464
+ seconds: number,
465
+ options?: { fadeOutSeconds?: number }
466
+ ): void {
467
+ TrackPlayer.sleepAfterTime(seconds, options?.fadeOutSeconds ?? 0);
468
+ }
469
+
470
+ /**
471
+ * Pauses playback after the media item at `index` finishes playing.
472
+ *
473
+ * @param index Queue index of the target media item. Defaults to the active item.
474
+ *
475
+ * @remarks
476
+ * - Cancels any existing sleep timer (last one wins).
477
+ * - Index is absolute — queue mutations after setting may shift which item it points to.
478
+ * - No fade-out support (no known time horizon).
479
+ */
480
+ export function sleepAfterMediaItemAtIndex(index?: number): void {
481
+ const resolvedIndex = index ?? getActiveMediaItemIndex() ?? 0;
482
+ TrackPlayer.sleepAfterMediaItemAtIndex(resolvedIndex);
483
+ }
484
+
485
+ /**
486
+ * Returns the current sleep timer state, or `null` if none is active.
487
+ */
488
+ export function getSleepTimer():
489
+ | {
490
+ type: 'time';
491
+ remainingSeconds: number;
492
+ fadeOutSeconds: number;
493
+ }
494
+ | {
495
+ type: 'mediaItem';
496
+ index: number;
497
+ }
498
+ | null {
499
+ const result = TrackPlayer.getSleepTimer();
500
+ if (result == null) return null;
501
+ return result as any;
502
+ }
503
+
504
+ /**
505
+ * Cancels the active sleep timer. If a volume fade is in progress,
506
+ * restores the original volume immediately.
507
+ */
508
+ export function cancelSleepTimer(): void {
509
+ TrackPlayer.cancelSleepTimer();
510
+ }
511
+
436
512
  // ─── Destroy ─────────────────────────────────────────
437
513
 
438
514
  /**
@@ -0,0 +1,4 @@
1
+ export interface SleepTimerTriggeredEvent {
2
+ /** Which sleep timer mode triggered: countdown or media-item boundary. */
3
+ type: 'time' | 'mediaItem';
4
+ }