react-native-nitro-player 0.5.5 → 0.5.7

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 (36) hide show
  1. package/README.md +2 -0
  2. package/android/src/main/java/com/margelo/nitro/nitroplayer/HybridTrackPlayer.kt +43 -0
  3. package/android/src/main/java/com/margelo/nitro/nitroplayer/core/NitroPlayerLogger.kt +8 -2
  4. package/android/src/main/java/com/margelo/nitro/nitroplayer/core/TrackPlayerCore.kt +345 -4
  5. package/android/src/main/java/com/margelo/nitro/nitroplayer/download/DownloadDatabase.kt +43 -10
  6. package/android/src/main/java/com/margelo/nitro/nitroplayer/playlist/PlaylistManager.kt +76 -7
  7. package/android/src/main/java/com/margelo/nitro/nitroplayer/storage/NitroPlayerStorage.kt +9 -2
  8. package/ios/HybridTrackPlayer.swift +54 -1
  9. package/ios/core/TrackPlayerCore.swift +254 -2
  10. package/ios/download/DownloadDatabase.swift +79 -2
  11. package/ios/download/DownloadManagerCore.swift +81 -2
  12. package/ios/playlist/PlaylistManager.swift +68 -0
  13. package/lib/specs/TrackPlayer.nitro.d.ts +47 -0
  14. package/lib/types/PlayerQueue.d.ts +5 -0
  15. package/nitrogen/generated/android/NitroPlayerOnLoad.cpp +2 -0
  16. package/nitrogen/generated/android/c++/JFunc_void_std__vector_TrackItem__double.hpp +104 -0
  17. package/nitrogen/generated/android/c++/JHybridTrackPlayerSpec.cpp +160 -0
  18. package/nitrogen/generated/android/c++/JHybridTrackPlayerSpec.hpp +8 -0
  19. package/nitrogen/generated/android/c++/JPlayerConfig.hpp +7 -3
  20. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Func_void_std__vector_TrackItem__double.kt +80 -0
  21. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/HybridTrackPlayerSpec.kt +37 -0
  22. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/PlayerConfig.kt +6 -3
  23. package/nitrogen/generated/ios/NitroPlayer-Swift-Cxx-Bridge.cpp +16 -0
  24. package/nitrogen/generated/ios/NitroPlayer-Swift-Cxx-Bridge.hpp +65 -0
  25. package/nitrogen/generated/ios/c++/HybridTrackPlayerSpecSwift.hpp +62 -0
  26. package/nitrogen/generated/ios/swift/Func_void_double.swift +47 -0
  27. package/nitrogen/generated/ios/swift/Func_void_std__vector_TrackItem__double.swift +47 -0
  28. package/nitrogen/generated/ios/swift/HybridTrackPlayerSpec.swift +8 -0
  29. package/nitrogen/generated/ios/swift/HybridTrackPlayerSpec_cxx.swift +173 -0
  30. package/nitrogen/generated/ios/swift/PlayerConfig.swift +24 -1
  31. package/nitrogen/generated/shared/c++/HybridTrackPlayerSpec.cpp +8 -0
  32. package/nitrogen/generated/shared/c++/HybridTrackPlayerSpec.hpp +8 -0
  33. package/nitrogen/generated/shared/c++/PlayerConfig.hpp +6 -2
  34. package/package.json +1 -1
  35. package/src/specs/TrackPlayer.nitro.ts +57 -0
  36. package/src/types/PlayerQueue.ts +5 -0
@@ -87,4 +87,61 @@ export interface TrackPlayer
87
87
  onAndroidAutoConnectionChange(callback: (connected: boolean) => void): void
88
88
  isAndroidAutoConnected(): boolean
89
89
  setVolume(volume: number): boolean
90
+
91
+ /**
92
+ * Update entire track objects across all playlists
93
+ * Matches by track.id and updates all properties (url, artwork, title, etc.)
94
+ * Note: Empty string "" is valid for TrackItem.url to support lazy loading
95
+ * @param tracks Array of full TrackItem objects to update
96
+ * @returns Promise that resolves when updates complete
97
+ */
98
+ updateTracks(tracks: TrackItem[]): Promise<void>
99
+
100
+ /**
101
+ * Get tracks by IDs from all playlists
102
+ * @param trackIds Array of track IDs to fetch
103
+ * @returns Promise resolving to array of matching tracks
104
+ */
105
+ getTracksById(trackIds: string[]): Promise<TrackItem[]>
106
+
107
+ /**
108
+ * Get tracks with missing/empty URLs from current playlist
109
+ * @returns Promise resolving to array of tracks needing URLs
110
+ */
111
+ getTracksNeedingUrls(): Promise<TrackItem[]>
112
+
113
+ /**
114
+ * Get next N tracks from current position in playlist
115
+ * Useful for preloading URLs before they're needed
116
+ * @param count Number of upcoming tracks to return
117
+ * @returns Promise resolving to array of next tracks
118
+ */
119
+ getNextTracks(count: number): Promise<TrackItem[]>
120
+
121
+ /**
122
+ * Get current track index in the active playlist
123
+ * @returns Promise resolving to 0-based index, or -1 if no track playing
124
+ */
125
+ getCurrentTrackIndex(): Promise<number>
126
+
127
+ /**
128
+ * Register callback that fires when tracks will be needed soon
129
+ * Useful for proactive URL resolution in Android Auto/CarPlay
130
+ * @param callback Function called with tracks needing URLs and lookahead count
131
+ */
132
+ onTracksNeedUpdate(
133
+ callback: (tracks: TrackItem[], lookahead: number) => void
134
+ ): void
135
+
136
+ /**
137
+ * Get the current track index in the active playlist
138
+ * @returns Promise resolving to 0-based index, or -1 if no track playing
139
+ */
140
+ setPlaybackSpeed(speed: number): Promise<void>
141
+
142
+ /**
143
+ * Get the current playback speed
144
+ * @returns Promise resolving to playback speed
145
+ */
146
+ getPlaybackSpeed(): Promise<number>
90
147
  }
@@ -44,4 +44,9 @@ export interface PlayerConfig {
44
44
  androidAutoEnabled?: boolean
45
45
  carPlayEnabled?: boolean
46
46
  showInNotification?: boolean
47
+ /**
48
+ * Number of upcoming tracks to preload URLs for (default: 5)
49
+ * Higher values = more proactive loading, but more network requests
50
+ */
51
+ lookaheadCount?: number
47
52
  }