@javascriptcommon/react-native-track-player 1.2.23 → 4.1.5

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 (507) hide show
  1. package/LICENSE +201 -21
  2. package/README.md +8 -0
  3. package/android/build.gradle +80 -63
  4. package/android/proguard-rules.txt +0 -3
  5. package/android/src/main/AndroidManifest.xml +10 -11
  6. package/android/src/main/java/com/doublesymmetry/trackplayer/HeadlessJsMediaService.kt +199 -0
  7. package/android/src/main/java/com/doublesymmetry/trackplayer/TrackPlayer.kt +33 -0
  8. package/android/src/main/java/com/{guichaguri → doublesymmetry}/trackplayer/extensions/AudioPlayerStateExt.kt +3 -3
  9. package/android/src/main/java/com/doublesymmetry/trackplayer/extensions/EnumExtensions.kt +5 -0
  10. package/android/src/main/java/com/doublesymmetry/trackplayer/extensions/NumberExt.kt +13 -0
  11. package/android/src/main/java/com/{guichaguri → doublesymmetry}/trackplayer/model/MetadataAdapter.kt +20 -17
  12. package/android/src/main/java/com/doublesymmetry/trackplayer/model/NowPlayingMetadata.kt +16 -0
  13. package/android/src/main/java/com/{guichaguri/trackplayer/kotlinaudio/models → doublesymmetry/trackplayer/model}/PlaybackMetadata.kt +31 -28
  14. package/android/src/main/java/com/{guichaguri → doublesymmetry}/trackplayer/model/State.kt +1 -1
  15. package/android/src/main/java/com/doublesymmetry/trackplayer/model/Track.kt +67 -0
  16. package/android/src/main/java/com/doublesymmetry/trackplayer/model/TrackAudioItem.kt +18 -0
  17. package/android/src/main/java/com/doublesymmetry/trackplayer/model/TrackMetadata.kt +38 -0
  18. package/android/src/main/java/com/{guichaguri → doublesymmetry}/trackplayer/module/MusicEvents.kt +10 -9
  19. package/android/src/main/java/com/doublesymmetry/trackplayer/module/MusicModule.kt +778 -0
  20. package/android/src/main/java/com/doublesymmetry/trackplayer/service/MusicService.kt +1286 -0
  21. package/android/src/main/java/com/doublesymmetry/trackplayer/utils/AppForegroundTracker.kt +35 -0
  22. package/android/src/main/java/com/{guichaguri/trackplayer/service → doublesymmetry/trackplayer/utils}/BundleUtils.kt +50 -20
  23. package/android/src/main/java/com/doublesymmetry/trackplayer/utils/CoilBitmapLoader.kt +65 -0
  24. package/android/src/main/java/com/doublesymmetry/trackplayer/utils/MediaItemBuilder.kt +41 -0
  25. package/android/src/main/java/com/doublesymmetry/trackplayer/utils/RejectionException.kt +11 -0
  26. package/android/src/main/java/com/doublesymmetry/trackplayer/video/TrackPlayerVideoView.kt +42 -0
  27. package/android/src/main/java/com/doublesymmetry/trackplayer/video/TrackPlayerVideoViewManager.kt +18 -0
  28. package/android/src/main/java/com/{guichaguri/trackplayer → lovegaoshi}/kotlinaudio/event/EventHolder.kt +7 -7
  29. package/android/src/main/java/com/{guichaguri/trackplayer → lovegaoshi}/kotlinaudio/event/PlayerEventHolder.kt +22 -9
  30. package/android/src/main/java/com/{guichaguri/trackplayer → lovegaoshi}/kotlinaudio/models/AudioContentType.kt +1 -1
  31. package/android/src/main/java/com/lovegaoshi/kotlinaudio/models/AudioItem.kt +118 -0
  32. package/android/src/main/java/com/{guichaguri/trackplayer → lovegaoshi}/kotlinaudio/models/AudioItemTransitionReason.kt +3 -3
  33. package/android/src/main/java/com/{guichaguri/trackplayer → lovegaoshi}/kotlinaudio/models/AudioPlayerState.kt +2 -2
  34. package/android/src/main/java/com/{guichaguri/trackplayer → lovegaoshi}/kotlinaudio/models/BufferConfig.kt +1 -1
  35. package/android/src/main/java/com/{guichaguri/trackplayer → lovegaoshi}/kotlinaudio/models/CacheConfig.kt +1 -1
  36. package/android/src/main/java/com/{guichaguri/trackplayer → lovegaoshi}/kotlinaudio/models/Capability.kt +1 -1
  37. package/android/src/main/java/com/lovegaoshi/kotlinaudio/models/CustomButton.kt +19 -0
  38. package/android/src/main/java/com/{guichaguri/trackplayer → lovegaoshi}/kotlinaudio/models/FocusChangeData.kt +1 -1
  39. package/android/src/main/java/com/{guichaguri/trackplayer → lovegaoshi}/kotlinaudio/models/MediaSessionCallback.kt +1 -1
  40. package/android/src/main/java/com/{guichaguri/trackplayer → lovegaoshi}/kotlinaudio/models/PlayWhenReadyChangeData.kt +1 -3
  41. package/android/src/main/java/com/{guichaguri/trackplayer → lovegaoshi}/kotlinaudio/models/PlaybackEndedReason.kt +1 -1
  42. package/android/src/main/java/com/{guichaguri/trackplayer → lovegaoshi}/kotlinaudio/models/PlaybackError.kt +1 -1
  43. package/android/src/main/java/com/{guichaguri/trackplayer → lovegaoshi}/kotlinaudio/models/PlayerConfig.kt +8 -5
  44. package/android/src/main/java/com/lovegaoshi/kotlinaudio/models/PlayerOptions.kt +40 -0
  45. package/android/src/main/java/com/{guichaguri/trackplayer → lovegaoshi}/kotlinaudio/models/PositionChangedReason.kt +1 -1
  46. package/android/src/main/java/com/lovegaoshi/kotlinaudio/models/RepeatMode.kt +16 -0
  47. package/android/src/main/java/com/lovegaoshi/kotlinaudio/models/WakeMode.kt +7 -0
  48. package/android/src/main/java/com/lovegaoshi/kotlinaudio/player/AudioPlayer.kt +756 -0
  49. package/android/src/main/java/com/lovegaoshi/kotlinaudio/player/ForwardingPlayer.java +1124 -0
  50. package/android/src/main/java/com/{guichaguri/trackplayer/kotlinaudio/players → lovegaoshi/kotlinaudio/player}/QueuedAudioPlayer.kt +68 -58
  51. package/android/src/main/java/com/lovegaoshi/kotlinaudio/player/components/APMRenderersFactory.kt +33 -0
  52. package/android/src/main/java/com/lovegaoshi/kotlinaudio/player/components/Buffer.kt +34 -0
  53. package/android/src/main/java/com/lovegaoshi/kotlinaudio/player/components/Cache.kt +27 -0
  54. package/android/src/main/java/com/lovegaoshi/kotlinaudio/player/components/FocusManager.kt +59 -0
  55. package/android/src/main/java/com/lovegaoshi/kotlinaudio/player/components/MediaFactory.kt +130 -0
  56. package/android/src/main/java/com/lovegaoshi/kotlinaudio/processors/TeeListener.kt +171 -0
  57. package/android/src/main/java/com/lovegaoshi/kotlinaudio/service/MusicService.kt +127 -0
  58. package/android/src/main/java/com/lovegaoshi/kotlinaudio/utils/FFT.java +99 -0
  59. package/android/src/main/java/com/lovegaoshi/kotlinaudio/utils/Utils.kt +113 -0
  60. package/android/src/main/res/drawable/baseline_repeat_24.xml +5 -0
  61. package/android/src/main/res/drawable/baseline_repeat_one_24.xml +5 -0
  62. package/android/src/main/res/drawable/forward.xml +5 -0
  63. package/android/src/main/res/drawable/heart_24px.xml +5 -0
  64. package/android/src/main/res/drawable/hearte_24px.xml +5 -0
  65. package/android/src/main/res/drawable/ifl_24px.xml +5 -0
  66. package/android/src/main/res/drawable/rewind.xml +5 -0
  67. package/android/src/main/res/drawable/shuffle_24px.xml +5 -0
  68. package/android/src/main/res/values/strings.xml +3 -4
  69. package/android/src/main/res/xml/automotive_app_desc.xml +3 -0
  70. package/ios/Example/SwiftAudio/Assets.xcassets/22AMI.imageset/22AMillion.jpg +0 -0
  71. package/ios/Example/SwiftAudio/Assets.xcassets/22AMI.imageset/Contents.json +21 -0
  72. package/ios/Example/SwiftAudio/Assets.xcassets/AccentColor.colorset/Contents.json +11 -0
  73. package/ios/Example/SwiftAudio/Assets.xcassets/AppIcon.appiconset/Contents.json +58 -0
  74. package/ios/Example/SwiftAudio/Assets.xcassets/Contents.json +6 -0
  75. package/ios/Example/SwiftAudio/Assets.xcassets/cover.imageset/Contents.json +21 -0
  76. package/ios/Example/SwiftAudio/Assets.xcassets/cover.imageset/cover.jpg +0 -0
  77. package/ios/Example/SwiftAudio/AudioController.swift +46 -0
  78. package/ios/Example/SwiftAudio/Extensions.swift +22 -0
  79. package/ios/Example/SwiftAudio/PlayerView.swift +172 -0
  80. package/ios/Example/SwiftAudio/PlayerViewModel.swift +120 -0
  81. package/ios/Example/SwiftAudio/Preview Content/Preview Assets.xcassets/Contents.json +6 -0
  82. package/ios/Example/SwiftAudio/QueueView.swift +65 -0
  83. package/ios/{TrackPlayer.xcodeproj/xcuserdata/marco.xcuserdatad/xcschemes/xcschememanagement.plist → Example/SwiftAudio/SwiftAudio.entitlements} +6 -8
  84. package/ios/Example/SwiftAudio/SwiftAudioApp.swift +17 -0
  85. package/ios/Example/SwiftAudio.xcodeproj/project.pbxproj +412 -0
  86. package/ios/{TrackPlayer.xcodeproj → Example/SwiftAudio.xcodeproj}/project.xcworkspace/contents.xcworkspacedata +1 -1
  87. package/ios/RNTrackPlayer/Models/Capabilities.swift +39 -4
  88. package/ios/RNTrackPlayer/Models/MediaURL.swift +12 -6
  89. package/ios/RNTrackPlayer/Models/MetadataAdapter.swift +147 -0
  90. package/ios/RNTrackPlayer/Models/PitchAlgorithms.swift +13 -0
  91. package/ios/RNTrackPlayer/Models/SessionCategories.swift +106 -0
  92. package/ios/RNTrackPlayer/Models/State.swift +26 -0
  93. package/ios/RNTrackPlayer/Models/Track.swift +74 -54
  94. package/ios/RNTrackPlayer/RNTrackPlayer.swift +867 -406
  95. package/ios/RNTrackPlayer/Support/RNTrackPlayer-Bridging-Header.h +1 -0
  96. package/ios/RNTrackPlayer/TrackPlayer.h +14 -0
  97. package/ios/RNTrackPlayer/TrackPlayer.mm +249 -0
  98. package/ios/RNTrackPlayer/Utils/EventType.swift +45 -0
  99. package/ios/RNTrackPlayer/Utils/Metadata.swift +60 -0
  100. package/ios/RNTrackPlayer/Video/RNTrackPlayerVideoView.swift +83 -0
  101. package/ios/RNTrackPlayer/Video/RNTrackPlayerVideoViewManager.m +5 -0
  102. package/ios/RNTrackPlayer/Video/RNTrackPlayerVideoViewManager.swift +17 -0
  103. package/ios/SwiftAudioEx/Package.swift +20 -0
  104. package/ios/SwiftAudioEx/Sources/SwiftAudioEx/AVPlayerWrapper/AVPlayerWrapper.swift +531 -0
  105. package/ios/SwiftAudioEx/Sources/SwiftAudioEx/AVPlayerWrapper/AVPlayerWrapperDelegate.swift +27 -0
  106. package/ios/SwiftAudioEx/Sources/SwiftAudioEx/AVPlayerWrapper/AVPlayerWrapperProtocol.swift +69 -0
  107. package/ios/SwiftAudioEx/Sources/SwiftAudioEx/AVPlayerWrapper/AVPlayerWrapperState.swift +43 -0
  108. package/ios/SwiftAudioEx/Sources/SwiftAudioEx/AudioItem.swift +158 -0
  109. package/ios/SwiftAudioEx/Sources/SwiftAudioEx/AudioPlayer.swift +459 -0
  110. package/ios/SwiftAudioEx/Sources/SwiftAudioEx/AudioPlayerError.swift +26 -0
  111. package/ios/SwiftAudioEx/Sources/SwiftAudioEx/AudioSessionController/AudioSession.swift +33 -0
  112. package/ios/SwiftAudioEx/Sources/SwiftAudioEx/AudioSessionController/AudioSessionController.swift +135 -0
  113. package/ios/SwiftAudioEx/Sources/SwiftAudioEx/AudioTap.swift +96 -0
  114. package/ios/SwiftAudioEx/Sources/SwiftAudioEx/Event.swift +155 -0
  115. package/ios/SwiftAudioEx/Sources/SwiftAudioEx/NowPlayingInfoController/MediaItemProperty.swift +95 -0
  116. package/ios/SwiftAudioEx/Sources/SwiftAudioEx/NowPlayingInfoController/NowPlayingInfoCenter.swift +17 -0
  117. package/ios/SwiftAudioEx/Sources/SwiftAudioEx/NowPlayingInfoController/NowPlayingInfoController.swift +73 -0
  118. package/ios/SwiftAudioEx/Sources/SwiftAudioEx/NowPlayingInfoController/NowPlayingInfoControllerProtocol.swift +26 -0
  119. package/ios/SwiftAudioEx/Sources/SwiftAudioEx/NowPlayingInfoController/NowPlayingInfoKeyValue.swift +14 -0
  120. package/ios/SwiftAudioEx/Sources/SwiftAudioEx/NowPlayingInfoController/NowPlayingInfoProperty.swift +234 -0
  121. package/ios/SwiftAudioEx/Sources/SwiftAudioEx/Observer/AVPlayerItemNotificationObserver.swift +102 -0
  122. package/ios/SwiftAudioEx/Sources/SwiftAudioEx/Observer/AVPlayerItemObserver.swift +136 -0
  123. package/ios/SwiftAudioEx/Sources/SwiftAudioEx/Observer/AVPlayerObserver.swift +120 -0
  124. package/ios/SwiftAudioEx/Sources/SwiftAudioEx/Observer/AVPlayerTimeObserver.swift +112 -0
  125. package/ios/SwiftAudioEx/Sources/SwiftAudioEx/QueueManager.swift +356 -0
  126. package/ios/SwiftAudioEx/Sources/SwiftAudioEx/QueuedAudioPlayer.swift +236 -0
  127. package/ios/SwiftAudioEx/Sources/SwiftAudioEx/RemoteCommandController/RemoteCommand.swift +170 -0
  128. package/ios/SwiftAudioEx/Sources/SwiftAudioEx/RemoteCommandController/RemoteCommandController.swift +206 -0
  129. package/ios/SwiftAudioEx/Sources/SwiftAudioEx/RepeatMode.swift +15 -0
  130. package/ios/SwiftAudioEx/Sources/SwiftAudioEx/TimeEventFrequency.swift +26 -0
  131. package/ios/SwiftAudioEx/Sources/SwiftAudioEx/Utils/DispatchQueueType.swift +18 -0
  132. package/ios/SwiftAudioEx/Sources/SwiftAudioEx/WaveformAudioTap.swift +159 -0
  133. package/lib/specs/NativeTrackPlayer.d.ts +134 -0
  134. package/lib/specs/NativeTrackPlayer.js +4 -0
  135. package/lib/src/TrackPlayerModule.web.d.ts +2 -0
  136. package/lib/src/TrackPlayerModule.web.js +2 -0
  137. package/lib/src/VideoView.d.ts +16 -0
  138. package/lib/src/VideoView.js +25 -0
  139. package/lib/src/constants/AndroidAudioContentType.d.ts +35 -0
  140. package/lib/src/constants/AndroidAudioContentType.js +36 -0
  141. package/lib/src/constants/AndroidAutoContentStyle.d.ts +10 -0
  142. package/lib/src/constants/AndroidAutoContentStyle.js +11 -0
  143. package/lib/src/constants/AppKilledPlaybackBehavior.d.ts +17 -0
  144. package/lib/src/constants/AppKilledPlaybackBehavior.js +18 -0
  145. package/lib/src/constants/Capability.d.ts +17 -0
  146. package/lib/src/constants/Capability.js +19 -0
  147. package/lib/src/constants/Event.d.ts +172 -0
  148. package/lib/src/constants/Event.js +173 -0
  149. package/lib/src/constants/IOSCategory.d.ts +36 -0
  150. package/lib/src/constants/IOSCategory.js +37 -0
  151. package/lib/src/constants/IOSCategoryMode.d.ts +47 -0
  152. package/lib/src/constants/IOSCategoryMode.js +48 -0
  153. package/lib/src/constants/IOSCategoryOptions.d.ts +44 -0
  154. package/lib/src/constants/IOSCategoryOptions.js +45 -0
  155. package/lib/src/constants/MediaItemPlayable.d.ts +4 -0
  156. package/lib/src/constants/MediaItemPlayable.js +5 -0
  157. package/lib/src/constants/PitchAlgorithm.d.ts +14 -0
  158. package/lib/src/constants/PitchAlgorithm.js +16 -0
  159. package/lib/src/constants/RatingType.d.ts +8 -0
  160. package/lib/src/constants/RatingType.js +10 -0
  161. package/lib/src/constants/RepeatMode.d.ts +8 -0
  162. package/lib/src/constants/RepeatMode.js +10 -0
  163. package/lib/src/constants/State.d.ts +34 -0
  164. package/lib/src/constants/State.js +35 -0
  165. package/lib/src/constants/TrackType.d.ts +6 -0
  166. package/lib/src/constants/TrackType.js +7 -0
  167. package/lib/src/constants/index.d.ts +14 -0
  168. package/lib/src/constants/index.js +14 -0
  169. package/lib/src/hooks/index.d.ts +6 -0
  170. package/lib/src/hooks/index.js +6 -0
  171. package/lib/src/hooks/useActiveTrack.d.ts +2 -0
  172. package/lib/src/hooks/useActiveTrack.js +28 -0
  173. package/lib/src/hooks/useAppIsInBackground.d.ts +1 -0
  174. package/lib/src/hooks/useAppIsInBackground.js +16 -0
  175. package/lib/src/hooks/useIsPlaying.d.ts +35 -0
  176. package/lib/src/hooks/useIsPlaying.js +50 -0
  177. package/lib/src/hooks/usePlayWhenReady.d.ts +1 -0
  178. package/lib/src/hooks/usePlayWhenReady.js +27 -0
  179. package/lib/src/hooks/usePlaybackState.d.ts +10 -0
  180. package/lib/src/hooks/usePlaybackState.js +35 -0
  181. package/lib/src/hooks/useProgress.d.ts +7 -0
  182. package/lib/src/hooks/useProgress.js +55 -0
  183. package/lib/src/hooks/useTrackPlayerEvents.d.ts +8 -0
  184. package/lib/src/hooks/useTrackPlayerEvents.js +30 -0
  185. package/lib/src/index.d.ts +6 -0
  186. package/lib/src/index.js +6 -0
  187. package/lib/src/interfaces/AndroidAutoBrowseTree.d.ts +5 -0
  188. package/lib/src/interfaces/AndroidAutoBrowseTree.js +1 -0
  189. package/lib/src/interfaces/AndroidOptions.d.ts +41 -0
  190. package/lib/src/interfaces/AndroidOptions.js +1 -0
  191. package/lib/src/interfaces/CustomButtons.d.ts +5 -0
  192. package/lib/src/interfaces/CustomButtons.js +1 -0
  193. package/lib/src/interfaces/FeedbackOptions.d.ts +6 -0
  194. package/lib/src/interfaces/FeedbackOptions.js +1 -0
  195. package/lib/src/interfaces/MediaItem.d.ts +18 -0
  196. package/lib/src/interfaces/MediaItem.js +1 -0
  197. package/lib/src/interfaces/MetadataOptions.d.ts +3 -0
  198. package/lib/src/interfaces/MetadataOptions.js +1 -0
  199. package/lib/src/interfaces/NowPlayingMetadata.d.ts +4 -0
  200. package/lib/src/interfaces/NowPlayingMetadata.js +1 -0
  201. package/lib/src/interfaces/PlaybackState.d.ts +8 -0
  202. package/lib/src/interfaces/PlaybackState.js +1 -0
  203. package/lib/src/interfaces/PlayerOptions.d.ts +132 -0
  204. package/lib/src/interfaces/PlayerOptions.js +1 -0
  205. package/lib/src/interfaces/Progress.d.ts +15 -0
  206. package/lib/src/interfaces/Progress.js +1 -0
  207. package/lib/src/interfaces/ResourceObject.d.ts +1 -0
  208. package/lib/src/interfaces/ResourceObject.js +1 -0
  209. package/lib/src/interfaces/ServiceHandler.d.ts +1 -0
  210. package/lib/src/interfaces/ServiceHandler.js +1 -0
  211. package/lib/src/interfaces/Track.d.ts +21 -0
  212. package/lib/src/interfaces/Track.js +1 -0
  213. package/lib/src/interfaces/TrackMetadataBase.d.ts +28 -0
  214. package/lib/src/interfaces/TrackMetadataBase.js +1 -0
  215. package/lib/src/interfaces/UpdateOptions.d.ts +52 -0
  216. package/lib/src/interfaces/UpdateOptions.js +1 -0
  217. package/lib/src/interfaces/events/AudioMetadataReceivedEvent.d.ts +33 -0
  218. package/lib/src/interfaces/events/AudioMetadataReceivedEvent.js +1 -0
  219. package/lib/src/interfaces/events/ControllerConnectedEvent.d.ts +8 -0
  220. package/lib/src/interfaces/events/ControllerConnectedEvent.js +1 -0
  221. package/lib/src/interfaces/events/EventPayloadByEvent.d.ts +77 -0
  222. package/lib/src/interfaces/events/EventPayloadByEvent.js +1 -0
  223. package/lib/src/interfaces/events/FFTUpdateEvent.d.ts +7 -0
  224. package/lib/src/interfaces/events/FFTUpdateEvent.js +1 -0
  225. package/lib/src/interfaces/events/PlaybackActiveTrackChangedEvent.d.ts +24 -0
  226. package/lib/src/interfaces/events/PlaybackActiveTrackChangedEvent.js +1 -0
  227. package/lib/src/interfaces/events/PlaybackAnimatedVolumeChangedEvent.d.ts +4 -0
  228. package/lib/src/interfaces/events/PlaybackAnimatedVolumeChangedEvent.js +1 -0
  229. package/lib/src/interfaces/events/PlaybackErrorEvent.d.ts +6 -0
  230. package/lib/src/interfaces/events/PlaybackErrorEvent.js +1 -0
  231. package/lib/src/interfaces/events/PlaybackMetadataReceivedEvent.d.ts +16 -0
  232. package/lib/src/interfaces/events/PlaybackMetadataReceivedEvent.js +1 -0
  233. package/lib/src/interfaces/events/PlaybackPlayWhenReadyChangedEvent.d.ts +4 -0
  234. package/lib/src/interfaces/events/PlaybackPlayWhenReadyChangedEvent.js +1 -0
  235. package/lib/src/interfaces/events/PlaybackProgressUpdatedEvent.d.ts +4 -0
  236. package/lib/src/interfaces/events/PlaybackProgressUpdatedEvent.js +1 -0
  237. package/lib/src/interfaces/events/PlaybackQueueEndedEvent.d.ts +9 -0
  238. package/lib/src/interfaces/events/PlaybackQueueEndedEvent.js +1 -0
  239. package/lib/src/interfaces/events/PlaybackResumeEvent.d.ts +3 -0
  240. package/lib/src/interfaces/events/PlaybackResumeEvent.js +1 -0
  241. package/lib/src/interfaces/events/PlaybackTrackChangedEvent.d.ts +11 -0
  242. package/lib/src/interfaces/events/PlaybackTrackChangedEvent.js +1 -0
  243. package/lib/src/interfaces/events/PlayerErrorEvent.d.ts +6 -0
  244. package/lib/src/interfaces/events/PlayerErrorEvent.js +1 -0
  245. package/lib/src/interfaces/events/RemoteBrowseEvent.d.ts +4 -0
  246. package/lib/src/interfaces/events/RemoteBrowseEvent.js +1 -0
  247. package/lib/src/interfaces/events/RemoteCustomActionEvent.d.ts +7 -0
  248. package/lib/src/interfaces/events/RemoteCustomActionEvent.js +1 -0
  249. package/lib/src/interfaces/events/RemoteDuckEvent.d.ts +13 -0
  250. package/lib/src/interfaces/events/RemoteDuckEvent.js +1 -0
  251. package/lib/src/interfaces/events/RemoteJumpBackwardEvent.d.ts +7 -0
  252. package/lib/src/interfaces/events/RemoteJumpBackwardEvent.js +1 -0
  253. package/lib/src/interfaces/events/RemoteJumpForwardEvent.d.ts +7 -0
  254. package/lib/src/interfaces/events/RemoteJumpForwardEvent.js +1 -0
  255. package/lib/src/interfaces/events/RemotePlayIdEvent.d.ts +4 -0
  256. package/lib/src/interfaces/events/RemotePlayIdEvent.js +1 -0
  257. package/lib/src/interfaces/events/RemotePlaySearchEvent.d.ts +9 -0
  258. package/lib/src/interfaces/events/RemotePlaySearchEvent.js +1 -0
  259. package/lib/src/interfaces/events/RemoteSearchEvent.d.ts +3 -0
  260. package/lib/src/interfaces/events/RemoteSearchEvent.js +1 -0
  261. package/lib/src/interfaces/events/RemoteSeekEvent.d.ts +4 -0
  262. package/lib/src/interfaces/events/RemoteSeekEvent.js +1 -0
  263. package/lib/src/interfaces/events/RemoteSetRatingEvent.d.ts +4 -0
  264. package/lib/src/interfaces/events/RemoteSetRatingEvent.js +1 -0
  265. package/lib/src/interfaces/events/RemoteSkipEvent.d.ts +3 -0
  266. package/lib/src/interfaces/events/RemoteSkipEvent.js +1 -0
  267. package/lib/src/interfaces/events/index.d.ts +20 -0
  268. package/lib/src/interfaces/events/index.js +20 -0
  269. package/lib/src/interfaces/index.d.ts +15 -0
  270. package/lib/src/interfaces/index.js +15 -0
  271. package/lib/src/resolveAssetSource.d.ts +2 -0
  272. package/lib/src/resolveAssetSource.js +3 -0
  273. package/lib/src/resolveAssetSource.web.d.ts +2 -0
  274. package/lib/src/resolveAssetSource.web.js +8 -0
  275. package/lib/src/trackPlayer.d.ts +371 -0
  276. package/lib/src/trackPlayer.js +627 -0
  277. package/lib/web/TrackPlayer/Player.d.ts +40 -0
  278. package/lib/web/TrackPlayer/Player.js +188 -0
  279. package/lib/web/TrackPlayer/PlaylistPlayer.d.ts +31 -0
  280. package/lib/web/TrackPlayer/PlaylistPlayer.js +181 -0
  281. package/lib/web/TrackPlayer/RepeatMode.d.ts +5 -0
  282. package/lib/web/TrackPlayer/RepeatMode.js +6 -0
  283. package/lib/web/TrackPlayer/SetupNotCalledError.d.ts +3 -0
  284. package/lib/web/TrackPlayer/SetupNotCalledError.js +5 -0
  285. package/lib/web/TrackPlayer/index.d.ts +3 -0
  286. package/lib/web/TrackPlayer/index.js +3 -0
  287. package/lib/web/TrackPlayerModule.d.ts +63 -0
  288. package/lib/web/TrackPlayerModule.js +153 -0
  289. package/lib/web/index.d.ts +3 -0
  290. package/lib/web/index.js +3 -0
  291. package/package.json +85 -6
  292. package/react-native-track-player.podspec +13 -13
  293. package/specs/NativeTrackPlayer.ts +153 -0
  294. package/src/TrackPlayerModule.web.ts +2 -0
  295. package/src/VideoView.tsx +51 -0
  296. package/src/constants/AndroidAudioContentType.ts +35 -0
  297. package/src/constants/AndroidAutoContentStyle.ts +10 -0
  298. package/src/constants/AppKilledPlaybackBehavior.ts +19 -0
  299. package/src/constants/Capability.ts +19 -0
  300. package/src/constants/Event.ts +173 -0
  301. package/src/constants/IOSCategory.ts +36 -0
  302. package/src/constants/IOSCategoryMode.ts +47 -0
  303. package/src/constants/IOSCategoryOptions.ts +44 -0
  304. package/src/constants/MediaItemPlayable.ts +4 -0
  305. package/src/constants/PitchAlgorithm.ts +16 -0
  306. package/src/constants/RatingType.ts +10 -0
  307. package/src/constants/RepeatMode.ts +10 -0
  308. package/src/constants/State.ts +34 -0
  309. package/src/constants/TrackType.ts +6 -0
  310. package/src/constants/index.ts +14 -0
  311. package/src/hooks/index.ts +6 -0
  312. package/src/hooks/useActiveTrack.ts +36 -0
  313. package/src/hooks/useAppIsInBackground.ts +20 -0
  314. package/src/hooks/useIsPlaying.ts +56 -0
  315. package/src/hooks/usePlayWhenReady.ts +37 -0
  316. package/src/hooks/usePlaybackState.ts +45 -0
  317. package/src/hooks/useProgress.ts +64 -0
  318. package/src/hooks/useTrackPlayerEvents.ts +48 -0
  319. package/src/index.ts +8 -0
  320. package/src/interfaces/AndroidAutoBrowseTree.ts +6 -0
  321. package/src/interfaces/AndroidOptions.ts +48 -0
  322. package/src/interfaces/CustomButtons.ts +6 -0
  323. package/src/interfaces/FeedbackOptions.ts +7 -0
  324. package/src/interfaces/MediaItem.ts +19 -0
  325. package/src/interfaces/MetadataOptions.ts +4 -0
  326. package/src/interfaces/NowPlayingMetadata.ts +5 -0
  327. package/src/interfaces/PlaybackState.ts +11 -0
  328. package/src/interfaces/PlayerOptions.ts +138 -0
  329. package/src/interfaces/Progress.ts +15 -0
  330. package/src/interfaces/ResourceObject.ts +1 -0
  331. package/src/interfaces/ServiceHandler.ts +1 -0
  332. package/src/interfaces/Track.ts +23 -0
  333. package/src/interfaces/TrackMetadataBase.ts +29 -0
  334. package/src/interfaces/UpdateOptions.ts +59 -0
  335. package/src/interfaces/events/AudioMetadataReceivedEvent.ts +37 -0
  336. package/src/interfaces/events/ControllerConnectedEvent.ts +9 -0
  337. package/src/interfaces/events/EventPayloadByEvent.ts +80 -0
  338. package/src/interfaces/events/FFTUpdateEvent.ts +9 -0
  339. package/src/interfaces/events/PlaybackActiveTrackChangedEvent.ts +29 -0
  340. package/src/interfaces/events/PlaybackAnimatedVolumeChangedEvent.ts +4 -0
  341. package/src/interfaces/events/PlaybackErrorEvent.ts +6 -0
  342. package/src/interfaces/events/PlaybackMetadataReceivedEvent.ts +16 -0
  343. package/src/interfaces/events/PlaybackPlayWhenReadyChangedEvent.ts +4 -0
  344. package/src/interfaces/events/PlaybackProgressUpdatedEvent.ts +5 -0
  345. package/src/interfaces/events/PlaybackQueueEndedEvent.ts +9 -0
  346. package/src/interfaces/events/PlaybackResumeEvent.ts +5 -0
  347. package/src/interfaces/events/PlaybackTrackChangedEvent.ts +11 -0
  348. package/src/interfaces/events/PlayerErrorEvent.ts +6 -0
  349. package/src/interfaces/events/RemoteBrowseEvent.ts +4 -0
  350. package/src/interfaces/events/RemoteCustomActionEvent.ts +7 -0
  351. package/src/interfaces/events/RemoteDuckEvent.ts +13 -0
  352. package/src/interfaces/events/RemoteJumpBackwardEvent.ts +7 -0
  353. package/src/interfaces/events/RemoteJumpForwardEvent.ts +7 -0
  354. package/src/interfaces/events/RemotePlayIdEvent.ts +4 -0
  355. package/src/interfaces/events/RemotePlaySearchEvent.ts +21 -0
  356. package/src/interfaces/events/RemoteSearchEvent.ts +3 -0
  357. package/src/interfaces/events/RemoteSeekEvent.ts +4 -0
  358. package/src/interfaces/events/RemoteSetRatingEvent.ts +5 -0
  359. package/src/interfaces/events/RemoteSkipEvent.ts +3 -0
  360. package/src/interfaces/events/index.ts +20 -0
  361. package/src/interfaces/index.ts +15 -0
  362. package/src/resolveAssetSource.ts +3 -0
  363. package/src/resolveAssetSource.web.ts +10 -0
  364. package/src/trackPlayer.ts +806 -0
  365. package/web/TrackPlayer/Player.ts +201 -0
  366. package/web/TrackPlayer/PlaylistPlayer.ts +215 -0
  367. package/web/TrackPlayer/RepeatMode.ts +6 -0
  368. package/web/TrackPlayer/SetupNotCalledError.ts +5 -0
  369. package/web/TrackPlayer/index.ts +3 -0
  370. package/web/TrackPlayerModule.ts +181 -0
  371. package/web/index.ts +4 -0
  372. package/CHANGELOG.md +0 -75
  373. package/android/react-native-music-control.iml +0 -139
  374. package/android/react-native-track-player.iml +0 -151
  375. package/android/src/main/ic_home-playstore.png +0 -0
  376. package/android/src/main/ic_repeat-playstore.png +0 -0
  377. package/android/src/main/ic_repeat_50-playstore.png +0 -0
  378. package/android/src/main/ic_shuffle-playstore.png +0 -0
  379. package/android/src/main/ic_shuffle_50-playstore.png +0 -0
  380. package/android/src/main/ic_shuffle_sm-playstore.png +0 -0
  381. package/android/src/main/ic_stop-playstore.png +0 -0
  382. package/android/src/main/ic_test-playstore.png +0 -0
  383. package/android/src/main/java/com/guichaguri/trackplayer/HeadlessJsMediaService.java +0 -225
  384. package/android/src/main/java/com/guichaguri/trackplayer/TrackPlayer.kt +0 -25
  385. package/android/src/main/java/com/guichaguri/trackplayer/kotlinaudio/event/NotificationEventHolder.kt +0 -20
  386. package/android/src/main/java/com/guichaguri/trackplayer/kotlinaudio/models/AAMediaSessionCallback.kt +0 -10
  387. package/android/src/main/java/com/guichaguri/trackplayer/kotlinaudio/models/AudioItem.kt +0 -66
  388. package/android/src/main/java/com/guichaguri/trackplayer/kotlinaudio/models/NotificationConfig.kt +0 -43
  389. package/android/src/main/java/com/guichaguri/trackplayer/kotlinaudio/models/NotificationMetadata.kt +0 -8
  390. package/android/src/main/java/com/guichaguri/trackplayer/kotlinaudio/models/NotificationState.kt +0 -8
  391. package/android/src/main/java/com/guichaguri/trackplayer/kotlinaudio/models/PlayerOptions.kt +0 -9
  392. package/android/src/main/java/com/guichaguri/trackplayer/kotlinaudio/models/QueuedPlayerOptions.kt +0 -49
  393. package/android/src/main/java/com/guichaguri/trackplayer/kotlinaudio/notification/NotificationManager.kt +0 -678
  394. package/android/src/main/java/com/guichaguri/trackplayer/kotlinaudio/players/AudioPlayer.kt +0 -10
  395. package/android/src/main/java/com/guichaguri/trackplayer/kotlinaudio/players/BaseAudioPlayer.kt +0 -864
  396. package/android/src/main/java/com/guichaguri/trackplayer/kotlinaudio/players/components/MediaSourceExt.kt +0 -35
  397. package/android/src/main/java/com/guichaguri/trackplayer/kotlinaudio/players/components/PlayerCache.kt +0 -26
  398. package/android/src/main/java/com/guichaguri/trackplayer/kotlinaudio/utils/Utils.kt +0 -12
  399. package/android/src/main/java/com/guichaguri/trackplayer/model/Track.kt +0 -120
  400. package/android/src/main/java/com/guichaguri/trackplayer/model/TrackAudioItem.kt +0 -19
  401. package/android/src/main/java/com/guichaguri/trackplayer/model/TrackType.kt +0 -11
  402. package/android/src/main/java/com/guichaguri/trackplayer/module/AutoConnectionDetector.kt +0 -151
  403. package/android/src/main/java/com/guichaguri/trackplayer/module/MusicModule.kt +0 -1177
  404. package/android/src/main/java/com/guichaguri/trackplayer/service/MusicBinder.kt +0 -31
  405. package/android/src/main/java/com/guichaguri/trackplayer/service/MusicManager.kt +0 -347
  406. package/android/src/main/java/com/guichaguri/trackplayer/service/MusicService.kt +0 -1254
  407. package/android/src/main/java/com/guichaguri/trackplayer/service/Utils.kt +0 -228
  408. package/android/src/main/java/com/guichaguri/trackplayer/service/metadata/ButtonEvents.kt +0 -141
  409. package/android/src/main/java/com/guichaguri/trackplayer/service/metadata/MetadataManager.kt +0 -396
  410. package/android/src/main/res/drawable-hdpi/ic_forward.png +0 -0
  411. package/android/src/main/res/drawable-hdpi/ic_home.png +0 -0
  412. package/android/src/main/res/drawable-hdpi/ic_next.png +0 -0
  413. package/android/src/main/res/drawable-hdpi/ic_pause.png +0 -0
  414. package/android/src/main/res/drawable-hdpi/ic_play.png +0 -0
  415. package/android/src/main/res/drawable-hdpi/ic_previous.png +0 -0
  416. package/android/src/main/res/drawable-hdpi/ic_rewind.png +0 -0
  417. package/android/src/main/res/drawable-hdpi/ic_stop.png +0 -0
  418. package/android/src/main/res/drawable-mdpi/ic_forward.png +0 -0
  419. package/android/src/main/res/drawable-mdpi/ic_home.png +0 -0
  420. package/android/src/main/res/drawable-mdpi/ic_next.png +0 -0
  421. package/android/src/main/res/drawable-mdpi/ic_pause.png +0 -0
  422. package/android/src/main/res/drawable-mdpi/ic_play.png +0 -0
  423. package/android/src/main/res/drawable-mdpi/ic_previous.png +0 -0
  424. package/android/src/main/res/drawable-mdpi/ic_rewind.png +0 -0
  425. package/android/src/main/res/drawable-mdpi/ic_stop.png +0 -0
  426. package/android/src/main/res/drawable-xhdpi/ic_forward.png +0 -0
  427. package/android/src/main/res/drawable-xhdpi/ic_home.png +0 -0
  428. package/android/src/main/res/drawable-xhdpi/ic_next.png +0 -0
  429. package/android/src/main/res/drawable-xhdpi/ic_pause.png +0 -0
  430. package/android/src/main/res/drawable-xhdpi/ic_play.png +0 -0
  431. package/android/src/main/res/drawable-xhdpi/ic_previous.png +0 -0
  432. package/android/src/main/res/drawable-xhdpi/ic_rewind.png +0 -0
  433. package/android/src/main/res/drawable-xhdpi/ic_stop.png +0 -0
  434. package/android/src/main/res/drawable-xxhdpi/ic_forward.png +0 -0
  435. package/android/src/main/res/drawable-xxhdpi/ic_home.png +0 -0
  436. package/android/src/main/res/drawable-xxhdpi/ic_next.png +0 -0
  437. package/android/src/main/res/drawable-xxhdpi/ic_pause.png +0 -0
  438. package/android/src/main/res/drawable-xxhdpi/ic_play.png +0 -0
  439. package/android/src/main/res/drawable-xxhdpi/ic_previous.png +0 -0
  440. package/android/src/main/res/drawable-xxhdpi/ic_rewind.png +0 -0
  441. package/android/src/main/res/drawable-xxhdpi/ic_stop.png +0 -0
  442. package/android/src/main/res/drawable-xxxhdpi/ic_forward.png +0 -0
  443. package/android/src/main/res/drawable-xxxhdpi/ic_home.png +0 -0
  444. package/android/src/main/res/drawable-xxxhdpi/ic_next.png +0 -0
  445. package/android/src/main/res/drawable-xxxhdpi/ic_pause.png +0 -0
  446. package/android/src/main/res/drawable-xxxhdpi/ic_play.png +0 -0
  447. package/android/src/main/res/drawable-xxxhdpi/ic_previous.png +0 -0
  448. package/android/src/main/res/drawable-xxxhdpi/ic_rewind.png +0 -0
  449. package/android/src/main/res/drawable-xxxhdpi/ic_stop.png +0 -0
  450. package/android/src/main/res/mipmap-hdpi/ic_arrow_down_circle_foreground.png +0 -0
  451. package/android/src/main/res/mipmap-hdpi/ic_clock_now_foreground.png +0 -0
  452. package/android/src/main/res/mipmap-hdpi/ic_close_foreground.png +0 -0
  453. package/android/src/main/res/mipmap-hdpi/ic_heart_foreground.png +0 -0
  454. package/android/src/main/res/mipmap-hdpi/ic_heart_outlined_foreground.png +0 -0
  455. package/android/src/main/res/mipmap-hdpi/ic_repeat_off_foreground.png +0 -0
  456. package/android/src/main/res/mipmap-hdpi/ic_repeat_on_foreground.png +0 -0
  457. package/android/src/main/res/mipmap-hdpi/ic_shuffle_off_foreground.png +0 -0
  458. package/android/src/main/res/mipmap-hdpi/ic_shuffle_on_foreground.png +0 -0
  459. package/android/src/main/res/mipmap-mdpi/ic_arrow_down_circle_foreground.png +0 -0
  460. package/android/src/main/res/mipmap-mdpi/ic_clock_now_foreground.png +0 -0
  461. package/android/src/main/res/mipmap-mdpi/ic_close_foreground.png +0 -0
  462. package/android/src/main/res/mipmap-mdpi/ic_heart_foreground.png +0 -0
  463. package/android/src/main/res/mipmap-mdpi/ic_heart_outlined_foreground.png +0 -0
  464. package/android/src/main/res/mipmap-mdpi/ic_repeat_off_foreground.png +0 -0
  465. package/android/src/main/res/mipmap-mdpi/ic_repeat_on_foreground.png +0 -0
  466. package/android/src/main/res/mipmap-mdpi/ic_shuffle_off_foreground.png +0 -0
  467. package/android/src/main/res/mipmap-mdpi/ic_shuffle_on_foreground.png +0 -0
  468. package/android/src/main/res/mipmap-xhdpi/ic_arrow_down_circle_foreground.png +0 -0
  469. package/android/src/main/res/mipmap-xhdpi/ic_clock_now_foreground.png +0 -0
  470. package/android/src/main/res/mipmap-xhdpi/ic_close_foreground.png +0 -0
  471. package/android/src/main/res/mipmap-xhdpi/ic_heart_foreground.png +0 -0
  472. package/android/src/main/res/mipmap-xhdpi/ic_heart_outlined_foreground.png +0 -0
  473. package/android/src/main/res/mipmap-xhdpi/ic_repeat_off_foreground.png +0 -0
  474. package/android/src/main/res/mipmap-xhdpi/ic_repeat_on_foreground.png +0 -0
  475. package/android/src/main/res/mipmap-xhdpi/ic_shuffle_off_foreground.png +0 -0
  476. package/android/src/main/res/mipmap-xhdpi/ic_shuffle_on_foreground.png +0 -0
  477. package/android/src/main/res/mipmap-xxhdpi/ic_arrow_down_circle_foreground.png +0 -0
  478. package/android/src/main/res/mipmap-xxhdpi/ic_clock_now_foreground.png +0 -0
  479. package/android/src/main/res/mipmap-xxhdpi/ic_close_foreground.png +0 -0
  480. package/android/src/main/res/mipmap-xxhdpi/ic_heart_foreground.png +0 -0
  481. package/android/src/main/res/mipmap-xxhdpi/ic_heart_outlined_foreground.png +0 -0
  482. package/android/src/main/res/mipmap-xxhdpi/ic_repeat_off_foreground.png +0 -0
  483. package/android/src/main/res/mipmap-xxhdpi/ic_repeat_on_foreground.png +0 -0
  484. package/android/src/main/res/mipmap-xxhdpi/ic_shuffle_off_foreground.png +0 -0
  485. package/android/src/main/res/mipmap-xxhdpi/ic_shuffle_on_foreground.png +0 -0
  486. package/android/src/main/res/mipmap-xxxhdpi/ic_arrow_down_circle_foreground.png +0 -0
  487. package/android/src/main/res/mipmap-xxxhdpi/ic_clock_now_foreground.png +0 -0
  488. package/android/src/main/res/mipmap-xxxhdpi/ic_close_foreground.png +0 -0
  489. package/android/src/main/res/mipmap-xxxhdpi/ic_heart_foreground.png +0 -0
  490. package/android/src/main/res/mipmap-xxxhdpi/ic_heart_outlined_foreground.png +0 -0
  491. package/android/src/main/res/mipmap-xxxhdpi/ic_repeat_off_foreground.png +0 -0
  492. package/android/src/main/res/mipmap-xxxhdpi/ic_repeat_on_foreground.png +0 -0
  493. package/android/src/main/res/mipmap-xxxhdpi/ic_shuffle_off_foreground.png +0 -0
  494. package/android/src/main/res/mipmap-xxxhdpi/ic_shuffle_on_foreground.png +0 -0
  495. package/android/src/main/res/raw/silent_5_seconds.mp3 +0 -0
  496. package/android/src/main/res/strings.xml +0 -6
  497. package/index.d.ts +0 -235
  498. package/index.js +0 -4
  499. package/ios/RNTrackPlayer/RNTrackPlayerBridge.h +0 -12
  500. package/ios/RNTrackPlayer/RNTrackPlayerBridge.m +0 -29
  501. package/ios/TrackPlayer.xcodeproj/project.pbxproj +0 -495
  502. package/ios/TrackPlayer.xcodeproj/project.xcworkspace/xcuserdata/marco.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  503. package/lib/ProgressComponent.js +0 -70
  504. package/lib/eventTypes.js +0 -28
  505. package/lib/hooks.js +0 -160
  506. package/lib/index.js +0 -178
  507. /package/ios/{TrackPlayer.xcodeproj → Example/SwiftAudio.xcodeproj}/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -0
@@ -0,0 +1,138 @@
1
+ import type {
2
+ AndroidAudioContentType,
3
+ IOSCategory,
4
+ IOSCategoryMode,
5
+ IOSCategoryOptions,
6
+ } from '../constants';
7
+
8
+ export interface PlayerOptions {
9
+ /**
10
+ * Minimum duration of media that the player will attempt to buffer in seconds.
11
+ *
12
+ * Supported on Android & iOS.
13
+ *
14
+ * @throws Will throw on Android if min buffer is higher than max buffer.
15
+ * @default 50
16
+ */
17
+ minBuffer?: number;
18
+ /**
19
+ * Maximum duration of media that the player will attempt to buffer in seconds.
20
+ * Max buffer may not be lower than min buffer.
21
+ *
22
+ * Supported on Android only.
23
+ *
24
+ * @throws Will throw if max buffer is lower than min buffer.
25
+ * @default 50
26
+ */
27
+ maxBuffer?: number;
28
+ /**
29
+ * Duration in seconds that should be kept in the buffer behind the current
30
+ * playhead time.
31
+ *
32
+ * Supported on Android only.
33
+ *
34
+ * @default 0
35
+ */
36
+ backBuffer?: number;
37
+ /**
38
+ * Duration of media in seconds that must be buffered for playback to start or
39
+ * resume following a user action such as a seek.
40
+ *
41
+ * Supported on Android only.
42
+ *
43
+ * @default 2.5
44
+ */
45
+ playBuffer?: number;
46
+ /**
47
+ * Maximum cache size in kilobytes.
48
+ *
49
+ * Supported on Android only.
50
+ *
51
+ * @default 0
52
+ */
53
+ maxCacheSize?: number;
54
+ /**
55
+ * [AVAudioSession.Category](https://developer.apple.com/documentation/avfoundation/avaudiosession/1616615-category)
56
+ * for iOS. Sets on `play()`.
57
+ */
58
+ iosCategory?: IOSCategory;
59
+ /**
60
+ * (iOS only) The audio session mode, together with the audio session category,
61
+ * indicates to the system how you intend to use audio in your app. You can use
62
+ * a mode to configure the audio system for specific use cases such as video
63
+ * recording, voice or video chat, or audio analysis.
64
+ * Sets on `play()`.
65
+ *
66
+ * See https://developer.apple.com/documentation/avfoundation/avaudiosession/1616508-mode
67
+ */
68
+ iosCategoryMode?: IOSCategoryMode;
69
+ /**
70
+ * [AVAudioSession.CategoryOptions](https://developer.apple.com/documentation/avfoundation/avaudiosession/1616503-categoryoptions) for iOS.
71
+ * Sets on `play()`.
72
+ */
73
+ iosCategoryOptions?: IOSCategoryOptions[];
74
+ /**
75
+ * (Android only) The audio content type indicates to the android system how
76
+ * you intend to use audio in your app.
77
+ *
78
+ * With `autoHandleInterruptions: true` and
79
+ * `androidAudioContentType: AndroidAudioContentType.Speech`, the audio will be
80
+ * paused during short interruptions, such as when a message arrives.
81
+ * Otherwise the playback volume is reduced while the notification is playing.
82
+ *
83
+ * @default AndroidAudioContentType.Music
84
+ */
85
+ androidAudioContentType?: AndroidAudioContentType;
86
+ /**
87
+ * auto pause playback when playback device changes from headset to speaker.
88
+ * @default true
89
+ */
90
+ androidHandleAudioBecomingNoisy?: boolean;
91
+ /**
92
+ * always show next and previous as android player command. this overrides
93
+ * exoplayer disabling the next button on playmode != all and at queue's end.
94
+ * @default true
95
+ */
96
+ androidAlwaysShowNext?: boolean;
97
+ /**
98
+ * enables exoplayer's skipSilence parser
99
+ * @default false
100
+ */
101
+ androidSkipSilence?: boolean;
102
+ /**
103
+ * set android exoplayer wake mode. 1 is WAKE_MODE_LOCAL, 2 is WAKE_MODE_NETWORK,
104
+ * and others is WAKE_MODE_NONE.
105
+ * @default 0
106
+ */
107
+ androidWakeMode?: number;
108
+ /**
109
+ * Indicates whether the player should automatically delay playback in order to minimize stalling.
110
+ * Defaults to `true`.
111
+ * @deprecated This option has been nominated for removal in a future version
112
+ * of RNTP. If you have this set to `true`, you can safely remove this from
113
+ * the options. If you are setting this to `false` and have a reason for that,
114
+ * please post a comment in the following discussion: https://github.com/doublesymmetry/react-native-track-player/pull/1695
115
+ * and describe why you are doing so.
116
+ */
117
+ waitForBuffer?: boolean;
118
+ /**
119
+ * Indicates whether the player should automatically update now playing metadata data in control center / notification.
120
+ * Defaults to `true`.
121
+ */
122
+ autoUpdateMetadata?: boolean;
123
+ /**
124
+ * Indicates whether the player should automatically handle audio interruptions.
125
+ * Defaults to `false`.
126
+ */
127
+ autoHandleInterruptions?: boolean;
128
+ /**
129
+ * enables crossfade. android only.
130
+ * Defaults to `false`.
131
+ */
132
+ crossfade?: boolean;
133
+ /**
134
+ * applies an FFT processor with the given sampling size. android only.
135
+ * Defaults to 0 (disables it).
136
+ */
137
+ useFFTProcessor?: number;
138
+ }
@@ -0,0 +1,15 @@
1
+ export interface Progress {
2
+ /**
3
+ * The playback position of the current track in seconds.
4
+ * See https://rntp.dev/docs/api/functions/player#getposition
5
+ **/
6
+ position: number;
7
+ /** The duration of the current track in seconds.
8
+ * See https://rntp.dev/docs/api/functions/player#getduration
9
+ **/
10
+ duration: number;
11
+ /**
12
+ * The buffered position of the current track in seconds.
13
+ **/
14
+ buffered: number;
15
+ }
@@ -0,0 +1 @@
1
+ export type ResourceObject = number;
@@ -0,0 +1 @@
1
+ export type ServiceHandler = () => Promise<void>;
@@ -0,0 +1,23 @@
1
+ import type { PitchAlgorithm, TrackType } from '../constants';
2
+ import { ResourceObject } from './ResourceObject';
3
+ import type { TrackMetadataBase } from './TrackMetadataBase';
4
+
5
+ export interface Track extends TrackMetadataBase {
6
+ url: string;
7
+ type?: TrackType;
8
+ /** The user agent HTTP header */
9
+ userAgent?: string;
10
+ /** Mime type of the media file */
11
+ contentType?: string;
12
+ /** (iOS only) The pitch algorithm to apply to the sound. */
13
+ pitchAlgorithm?: PitchAlgorithm;
14
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
15
+ headers?: { [key: string]: any };
16
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
17
+ [key: string]: any;
18
+ }
19
+
20
+ export type AddTrack = Track & {
21
+ url: string | ResourceObject;
22
+ artwork?: string | ResourceObject;
23
+ };
@@ -0,0 +1,29 @@
1
+ import type { RatingType } from '../constants';
2
+
3
+ export interface TrackMetadataBase {
4
+ /** The track title */
5
+ title?: string;
6
+ /** The track album */
7
+ album?: string;
8
+ /** The track artist */
9
+ artist?: string;
10
+ /** The track duration in seconds */
11
+ duration?: number;
12
+ /** The track artwork */
13
+ artwork?: string;
14
+ /** track description */
15
+ description?: string;
16
+ /** track mediaId */
17
+ mediaId?: string;
18
+ /** The track genre */
19
+ genre?: string;
20
+ /** The track release date in [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) */
21
+ date?: string;
22
+ /** The track rating */
23
+ rating?: RatingType;
24
+ /**
25
+ * (iOS only) Whether the track is presented in the control center as being
26
+ * live
27
+ **/
28
+ isLiveStream?: boolean;
29
+ }
@@ -0,0 +1,59 @@
1
+ import type { AndroidOptions } from './AndroidOptions';
2
+ import type { FeedbackOptions } from './FeedbackOptions';
3
+ import type { ResourceObject } from './ResourceObject';
4
+ import type { RatingType, Capability } from '../constants';
5
+ import { CustomButtons } from './CustomButtons';
6
+
7
+ export interface UpdateOptions {
8
+ android?: AndroidOptions;
9
+ ratingType?: RatingType;
10
+ forwardJumpInterval?: number;
11
+ backwardJumpInterval?: number;
12
+ progressUpdateEventInterval?: number; // in seconds
13
+
14
+ // ios
15
+ likeOptions?: FeedbackOptions;
16
+ dislikeOptions?: FeedbackOptions;
17
+ bookmarkOptions?: FeedbackOptions;
18
+
19
+ capabilities?: Capability[];
20
+
21
+ // android
22
+ /**
23
+ * @deprecated Use `android` options and `appKilledPlaybackMode` instead.
24
+ * @example
25
+ * ```
26
+ * await TrackPlayer.updateOptions({
27
+ * android: {
28
+ * appKilledPlaybackMode: AppKilledPlaybackMode.PausePlayback
29
+ * },
30
+ * });
31
+ * ```
32
+ */
33
+ stoppingAppPausesPlayback?: boolean;
34
+ /**
35
+ * @deprecated use `TrackPlayer.updateOptions({ android: { alwaysPauseOnInterruption: boolean }})` instead
36
+ */
37
+ alwaysPauseOnInterruption?: boolean;
38
+ notificationCapabilities?: Capability[];
39
+ compactCapabilities?: Capability[];
40
+
41
+ icon?: ResourceObject;
42
+ playIcon?: ResourceObject;
43
+ pauseIcon?: ResourceObject;
44
+ stopIcon?: ResourceObject;
45
+ previousIcon?: ResourceObject;
46
+ nextIcon?: ResourceObject;
47
+ rewindIcon?: ResourceObject;
48
+ forwardIcon?: ResourceObject;
49
+ color?: number;
50
+ /**
51
+ * Android Only. Specifies custom Actions using the key customActionsList as a list of strings,
52
+ * then specify the imported icons for the actions to keys for each action.
53
+ * This is useful for android auto, as any extra buttons (when total > 5, > 4 extra buttons) will show up in a menu.
54
+ * please note customActions will always show in the notification bar, because there is no other way
55
+ * they will be called.
56
+ * isCompat is always false unless there is a need to show them.
57
+ */
58
+ customActions?: CustomButtons;
59
+ }
@@ -0,0 +1,37 @@
1
+ export interface AudioMetadataReceivedEvent {
2
+ metadata: AudioMetadata[];
3
+ }
4
+
5
+ export interface AudioCommonMetadataReceivedEvent {
6
+ metadata: AudioCommonMetadata;
7
+ }
8
+
9
+ export interface AudioCommonMetadata {
10
+ title: string | undefined;
11
+ artist: string | undefined;
12
+ albumTitle: string | undefined;
13
+ subtitle: string | undefined;
14
+ description: string | undefined;
15
+ artworkUri: string | undefined;
16
+ trackNumber: string | undefined;
17
+ composer: string | undefined;
18
+ conductor: string | undefined;
19
+ genre: string | undefined;
20
+ compilation: string | undefined;
21
+ station: string | undefined;
22
+ mediaType: string | undefined;
23
+ creationDate: string | undefined;
24
+ creationYear: string | undefined;
25
+ }
26
+
27
+ export interface AudioMetadata extends AudioCommonMetadata {
28
+ raw: RawEntry[];
29
+ }
30
+
31
+ export interface RawEntry {
32
+ commonKey: string | undefined;
33
+ keySpace: string | undefined;
34
+ time: number | undefined;
35
+ value: unknown | null;
36
+ key: string;
37
+ }
@@ -0,0 +1,9 @@
1
+ export interface ControllerConnectedEvent extends ControllerDisconnectedEvent {
2
+ isMediaNotificationController: boolean;
3
+ isAutomotiveController: boolean;
4
+ isAutoCompanionController: boolean;
5
+ }
6
+
7
+ export interface ControllerDisconnectedEvent {
8
+ package: string;
9
+ }
@@ -0,0 +1,80 @@
1
+ import { Event } from '../../constants';
2
+
3
+ import type { PlaybackState } from '../PlaybackState';
4
+ import type { PlaybackActiveTrackChangedEvent } from './PlaybackActiveTrackChangedEvent';
5
+ import type { PlaybackErrorEvent } from './PlaybackErrorEvent';
6
+ import type { PlaybackMetadataReceivedEvent } from './PlaybackMetadataReceivedEvent';
7
+ import type { AudioMetadataReceivedEvent } from './AudioMetadataReceivedEvent';
8
+ import type { AudioCommonMetadataReceivedEvent } from './AudioMetadataReceivedEvent';
9
+ import type { PlaybackPlayWhenReadyChangedEvent } from './PlaybackPlayWhenReadyChangedEvent';
10
+ import type { PlaybackProgressUpdatedEvent } from './PlaybackProgressUpdatedEvent';
11
+ import type { PlaybackQueueEndedEvent } from './PlaybackQueueEndedEvent';
12
+ import type { PlaybackTrackChangedEvent } from './PlaybackTrackChangedEvent';
13
+ import { PlayerErrorEvent } from './PlayerErrorEvent';
14
+ import type { RemoteDuckEvent } from './RemoteDuckEvent';
15
+ import type { RemoteJumpBackwardEvent } from './RemoteJumpBackwardEvent';
16
+ import type { RemoteJumpForwardEvent } from './RemoteJumpForwardEvent';
17
+ import type { RemotePlayIdEvent } from './RemotePlayIdEvent';
18
+ import type { RemotePlaySearchEvent } from './RemotePlaySearchEvent';
19
+ import type { RemoteSearchEvent } from './RemoteSearchEvent';
20
+ import type { RemoteSeekEvent } from './RemoteSeekEvent';
21
+ import type { RemoteSetRatingEvent } from './RemoteSetRatingEvent';
22
+ import type { RemoteSkipEvent } from './RemoteSkipEvent';
23
+ import type { PlaybackAnimatedVolumeChangedEvent } from './PlaybackAnimatedVolumeChangedEvent';
24
+ import type { RemoteBrowseEvent } from './RemoteBrowseEvent';
25
+ import type { RemoteCustomActionEvent } from './RemoteCustomActionEvent';
26
+ import type { PlaybackResumeEvent } from './PlaybackResumeEvent';
27
+ import type {
28
+ ControllerConnectedEvent,
29
+ ControllerDisconnectedEvent,
30
+ } from './ControllerConnectedEvent';
31
+ import type { FFTUpdateEvent } from './FFTUpdateEvent';
32
+
33
+ export type EventPayloadByEvent = {
34
+ [Event.PlayerError]: PlayerErrorEvent;
35
+ [Event.PlaybackState]: PlaybackState;
36
+ [Event.PlaybackError]: PlaybackErrorEvent;
37
+ [Event.PlaybackQueueEnded]: PlaybackQueueEndedEvent;
38
+ [Event.PlaybackTrackChanged]: PlaybackTrackChangedEvent;
39
+ [Event.PlaybackActiveTrackChanged]: PlaybackActiveTrackChangedEvent;
40
+ [Event.PlaybackMetadataReceived]: PlaybackMetadataReceivedEvent;
41
+ [Event.PlaybackPlayWhenReadyChanged]: PlaybackPlayWhenReadyChangedEvent;
42
+ [Event.PlaybackProgressUpdated]: PlaybackProgressUpdatedEvent;
43
+ [Event.RemotePlay]: never;
44
+ [Event.RemotePlayPause]: never;
45
+ [Event.RemotePlayId]: RemotePlayIdEvent;
46
+ [Event.RemotePlaySearch]: RemotePlaySearchEvent;
47
+ [Event.RemoteSearch]: RemoteSearchEvent;
48
+ [Event.RemotePause]: never;
49
+ [Event.RemoteStop]: never;
50
+ [Event.RemoteSkip]: RemoteSkipEvent;
51
+ [Event.RemoteNext]: never;
52
+ [Event.RemotePrevious]: never;
53
+ [Event.RemoteJumpForward]: RemoteJumpForwardEvent;
54
+ [Event.RemoteJumpBackward]: RemoteJumpBackwardEvent;
55
+ [Event.RemoteSeek]: RemoteSeekEvent;
56
+ [Event.RemoteSetRating]: RemoteSetRatingEvent;
57
+ [Event.RemoteDuck]: RemoteDuckEvent;
58
+ [Event.RemoteLike]: never;
59
+ [Event.RemoteDislike]: never;
60
+ [Event.RemoteBookmark]: never;
61
+ [Event.PlaybackAnimatedVolumeChanged]: PlaybackAnimatedVolumeChangedEvent;
62
+ [Event.RemoteBrowse]: RemoteBrowseEvent;
63
+ [Event.PlaybackResume]: PlaybackResumeEvent;
64
+ [Event.RemoteCustomAction]: RemoteCustomActionEvent;
65
+ [Event.MetadataChapterReceived]: AudioMetadataReceivedEvent;
66
+ [Event.MetadataTimedReceived]: AudioMetadataReceivedEvent;
67
+ [Event.MetadataCommonReceived]: AudioCommonMetadataReceivedEvent;
68
+ [Event.connectorConnected]: ControllerConnectedEvent;
69
+ [Event.connectorDisconnected]: ControllerDisconnectedEvent;
70
+ [Event.fftUpdate]: FFTUpdateEvent;
71
+ };
72
+
73
+ // eslint-disable-next-line
74
+ type Simplify<T> = { [KeyType in keyof T]: T[KeyType] } & {};
75
+
76
+ export type EventPayloadByEventWithType = {
77
+ [K in keyof EventPayloadByEvent]: EventPayloadByEvent[K] extends never
78
+ ? { type: K }
79
+ : Simplify<EventPayloadByEvent[K] & { type: K }>;
80
+ };
@@ -0,0 +1,9 @@
1
+ /**
2
+ * android & ios only. returns a FFT doubleArray of the current playback, sample rate = 4096
3
+ **/
4
+ export interface FFTUpdateEvent {
5
+ // FFT doubleArray of the current playback buffer
6
+ data: number[];
7
+ // ios only.
8
+ amplitude?: number;
9
+ }
@@ -0,0 +1,29 @@
1
+ import type { Track } from '../Track';
2
+
3
+ export interface PlaybackActiveTrackChangedEvent {
4
+ /** The index of previously active track. */
5
+ lastIndex?: number;
6
+
7
+ /**
8
+ * The previously active track or `undefined` when there wasn't a previously
9
+ * active track.
10
+ */
11
+ lastTrack?: Track;
12
+
13
+ /**
14
+ * The position of the previously active track in seconds.
15
+ */
16
+ lastPosition: number;
17
+
18
+ /**
19
+ * The newly active track index or `undefined` if there is no longer an
20
+ * active track.
21
+ */
22
+ index?: number;
23
+
24
+ /**
25
+ * The newly active track or `undefined` if there is no longer an
26
+ * active track.
27
+ */
28
+ track?: Track;
29
+ }
@@ -0,0 +1,4 @@
1
+ export interface PlaybackAnimatedVolumeChangedEvent {
2
+ /** the event message */
3
+ data: string;
4
+ }
@@ -0,0 +1,6 @@
1
+ export interface PlaybackErrorEvent {
2
+ /** The error code */
3
+ code: string;
4
+ /** The error message */
5
+ message: string;
6
+ }
@@ -0,0 +1,16 @@
1
+ export interface PlaybackMetadataReceivedEvent {
2
+ /** The metadata source */
3
+ source: string;
4
+ /** The track title */
5
+ title: string | null;
6
+ /** The track url */
7
+ url: string | null;
8
+ /** The track artist */
9
+ artist: string | null;
10
+ /** The track album */
11
+ album: string | null;
12
+ /** The track date */
13
+ date: string | null;
14
+ /** The track genre */
15
+ genre: string | null;
16
+ }
@@ -0,0 +1,4 @@
1
+ export interface PlaybackPlayWhenReadyChangedEvent {
2
+ /** Whether the player will play when it is ready to do so. */
3
+ playWhenReady: boolean;
4
+ }
@@ -0,0 +1,5 @@
1
+ import type { Progress } from '../Progress';
2
+
3
+ export interface PlaybackProgressUpdatedEvent extends Progress {
4
+ track: number;
5
+ }
@@ -0,0 +1,9 @@
1
+ export interface PlaybackQueueEndedEvent {
2
+ /** The index of the active track when the playback queue ended. */
3
+ track: number;
4
+ /**
5
+ * The playback position in seconds of the active track when the playback
6
+ * queue ended.
7
+ **/
8
+ position: number;
9
+ }
@@ -0,0 +1,5 @@
1
+ import type { Progress } from '../Progress';
2
+
3
+ export interface PlaybackResumeEvent {
4
+ package: string;
5
+ }
@@ -0,0 +1,11 @@
1
+ /**
2
+ * @deprecated
3
+ */
4
+ export interface PlaybackTrackChangedEvent {
5
+ /** The index of previously active track. */
6
+ track: number | null;
7
+ /** The previous track position in seconds. */
8
+ position: number;
9
+ /** The next (active) track index. */
10
+ nextTrack: number;
11
+ }
@@ -0,0 +1,6 @@
1
+ export interface PlayerErrorEvent {
2
+ /** The error code */
3
+ code: 'android-foreground-service-start-not-allowed';
4
+ /** The error message */
5
+ message: string;
6
+ }
@@ -0,0 +1,4 @@
1
+ export interface RemoteBrowseEvent {
2
+ /** The browsable media id */
3
+ mediaId: string;
4
+ }
@@ -0,0 +1,7 @@
1
+ export interface RemoteCustomActionEvent {
2
+ /**
3
+ * The custom action button pressed event.
4
+ * remote-custom-action
5
+ **/
6
+ customAction: string;
7
+ }
@@ -0,0 +1,13 @@
1
+ export interface RemoteDuckEvent {
2
+ /**
3
+ * On Android when true the player should pause playback, when false the
4
+ * player may resume playback. On iOS when true the playback was paused and
5
+ * when false the player may resume playback.
6
+ **/
7
+ paused: boolean;
8
+ /**
9
+ * Whether the interruption is permanent. On Android the player should stop
10
+ * playback.
11
+ **/
12
+ permanent: boolean;
13
+ }
@@ -0,0 +1,7 @@
1
+ export interface RemoteJumpBackwardEvent {
2
+ /**
3
+ * The number of seconds to jump backward.
4
+ * See https://rntp.dev/docs/api/events#remotejumpbackward
5
+ **/
6
+ interval: number;
7
+ }
@@ -0,0 +1,7 @@
1
+ export interface RemoteJumpForwardEvent {
2
+ /**
3
+ * The number of seconds to jump forward.
4
+ * See https://rntp.dev/docs/api/events#remotejumpforward
5
+ **/
6
+ interval: number;
7
+ }
@@ -0,0 +1,4 @@
1
+ export interface RemotePlayIdEvent {
2
+ /** The track id */
3
+ id: string;
4
+ }
@@ -0,0 +1,21 @@
1
+ export interface RemotePlaySearchEvent {
2
+ /*
3
+ below is the Google Voice event log:
4
+ Event.RemotePlaySearchEvent {
5
+ "android.intent.extra.REFERRER_NAME": "android-app://com.google.android.googlequicksearchbox/https/www.google.com",
6
+ "android.intent.extra.START_PLAYBACK": true,
7
+ "android.intent.extra.focus": "vnd.android.cursor.item/*",
8
+ "android.intent.extra.user_query": "play seat",
9
+ "android.intent.extra.user_query_language": "en-US",
10
+ "com.google.android.projection.gearhead.ignore_original_pkg": false,
11
+ "opa_allow_launch_intent_on_lockscreen": true,
12
+ "query": "seat"}
13
+ */
14
+ query: string;
15
+ focus?: 'artist' | 'album' | 'playlist' | 'genre';
16
+ title?: string;
17
+ artist?: string;
18
+ album?: string;
19
+ date?: string;
20
+ playlist?: string;
21
+ }
@@ -0,0 +1,3 @@
1
+ export interface RemoteSearchEvent {
2
+ query: string
3
+ }
@@ -0,0 +1,4 @@
1
+ export interface RemoteSeekEvent {
2
+ /** The position to seek to in seconds. */
3
+ position: number;
4
+ }
@@ -0,0 +1,5 @@
1
+ import type { RatingType } from '../../constants';
2
+
3
+ export interface RemoteSetRatingEvent {
4
+ rating: RatingType;
5
+ }
@@ -0,0 +1,3 @@
1
+ export interface RemoteSkipEvent {
2
+ index: number;
3
+ }
@@ -0,0 +1,20 @@
1
+ export * from './EventPayloadByEvent';
2
+ export * from './PlaybackActiveTrackChangedEvent';
3
+ export * from './PlaybackErrorEvent';
4
+ export * from './PlaybackMetadataReceivedEvent';
5
+ export * from './PlaybackPlayWhenReadyChangedEvent';
6
+ export * from './PlaybackProgressUpdatedEvent';
7
+ export * from './PlaybackQueueEndedEvent';
8
+ export * from './PlaybackTrackChangedEvent';
9
+ export * from './RemoteDuckEvent';
10
+ export * from './RemoteJumpBackwardEvent';
11
+ export * from './RemoteJumpForwardEvent';
12
+ export * from './RemotePlayIdEvent';
13
+ export * from './RemotePlaySearchEvent';
14
+ export * from './RemoteSearchEvent';
15
+ export * from './RemoteSeekEvent';
16
+ export * from './RemoteSetRatingEvent';
17
+ export * from './RemoteSkipEvent';
18
+ export * from './RemoteBrowseEvent';
19
+ export * from './ControllerConnectedEvent';
20
+ export * from './FFTUpdateEvent';
@@ -0,0 +1,15 @@
1
+ export * from './AndroidOptions';
2
+ export * from './FeedbackOptions';
3
+ export * from './MetadataOptions';
4
+ export * from './NowPlayingMetadata';
5
+ export * from './PlaybackState';
6
+ export * from './PlayerOptions';
7
+ export * from './Progress';
8
+ export * from './ResourceObject';
9
+ export * from './ServiceHandler';
10
+ export * from './Track';
11
+ export * from './TrackMetadataBase';
12
+ export * from './UpdateOptions';
13
+ export * from './events';
14
+ export * from './MediaItem';
15
+ export * from './AndroidAutoBrowseTree';