react-native-nitro-player 1.5.1-alpha.0 → 1.6.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/android/src/main/java/com/margelo/nitro/nitroplayer/HybridTrackPlayer.kt +6 -0
- package/android/src/main/java/com/margelo/nitro/nitroplayer/core/TrackPlayerCore.kt +7 -0
- package/android/src/main/java/com/margelo/nitro/nitroplayer/core/TrackPlayerListener.kt +20 -0
- package/android/src/main/java/com/margelo/nitro/nitroplayer/core/TrackPlayerNotify.kt +5 -0
- package/ios/HybridTrackPlayer.swift +6 -0
- package/ios/core/TrackPlayerCore.swift +13 -0
- package/ios/core/TrackPlayerListener.swift +64 -0
- package/ios/core/TrackPlayerNotify.swift +4 -0
- package/lib/hooks/callbackManager.d.ts +10 -1
- package/lib/hooks/callbackManager.js +33 -0
- package/lib/hooks/index.d.ts +1 -0
- package/lib/hooks/index.js +1 -0
- package/lib/hooks/useTimedMetadata.d.ts +16 -0
- package/lib/hooks/useTimedMetadata.js +21 -0
- package/lib/specs/TrackPlayer.nitro.d.ts +6 -1
- package/lib/types/PlayerQueue.d.ts +7 -0
- package/nitrogen/generated/android/NitroPlayerOnLoad.cpp +2 -0
- package/nitrogen/generated/android/c++/JFunc_void_TimedMetadata.hpp +79 -0
- package/nitrogen/generated/android/c++/JHybridTrackPlayerSpec.cpp +9 -0
- package/nitrogen/generated/android/c++/JHybridTrackPlayerSpec.hpp +1 -0
- package/nitrogen/generated/android/c++/JTimedMetadata.hpp +70 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Func_void_TimedMetadata.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/HybridTrackPlayerSpec.kt +9 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/TimedMetadata.kt +47 -0
- package/nitrogen/generated/ios/NitroPlayer-Swift-Cxx-Bridge.cpp +8 -0
- package/nitrogen/generated/ios/NitroPlayer-Swift-Cxx-Bridge.hpp +25 -0
- package/nitrogen/generated/ios/NitroPlayer-Swift-Cxx-Umbrella.hpp +3 -0
- package/nitrogen/generated/ios/c++/HybridTrackPlayerSpecSwift.hpp +9 -0
- package/nitrogen/generated/ios/swift/Func_void_TimedMetadata.swift +46 -0
- package/nitrogen/generated/ios/swift/HybridTrackPlayerSpec.swift +1 -0
- package/nitrogen/generated/ios/swift/HybridTrackPlayerSpec_cxx.swift +16 -0
- package/nitrogen/generated/ios/swift/TimedMetadata.swift +96 -0
- package/nitrogen/generated/shared/c++/HybridTrackPlayerSpec.cpp +1 -0
- package/nitrogen/generated/shared/c++/HybridTrackPlayerSpec.hpp +4 -0
- package/nitrogen/generated/shared/c++/TimedMetadata.hpp +96 -0
- package/package.json +1 -1
- package/src/hooks/callbackManager.ts +47 -1
- package/src/hooks/index.ts +1 -0
- package/src/hooks/useTimedMetadata.ts +25 -0
- package/src/specs/TrackPlayer.nitro.ts +6 -0
- package/src/types/PlayerQueue.ts +8 -0
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { useEffect, useState } from 'react'
|
|
2
|
+
import { callbackManager } from './callbackManager'
|
|
3
|
+
import type { TimedMetadata } from '../types/PlayerQueue'
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Hook to subscribe to in-stream (timed) metadata — ICY/Shoutcast StreamTitle
|
|
7
|
+
* updates and ID3 frames emitted while a live stream plays.
|
|
8
|
+
*
|
|
9
|
+
* @returns The most recent metadata, or undefined until the first event arrives
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```tsx
|
|
13
|
+
* function NowPlayingFromStream() {
|
|
14
|
+
* const metadata = useTimedMetadata()
|
|
15
|
+
* return <Text>{metadata?.title ?? 'Live'}</Text>
|
|
16
|
+
* }
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
export function useTimedMetadata(): TimedMetadata | undefined {
|
|
20
|
+
const [metadata, setMetadata] = useState<TimedMetadata | undefined>(undefined)
|
|
21
|
+
|
|
22
|
+
useEffect(() => callbackManager.subscribeToTimedMetadata(setMetadata), [])
|
|
23
|
+
|
|
24
|
+
return metadata
|
|
25
|
+
}
|
|
@@ -7,6 +7,7 @@ import type {
|
|
|
7
7
|
PlayerState,
|
|
8
8
|
PlayerConfig,
|
|
9
9
|
Playlist,
|
|
10
|
+
TimedMetadata,
|
|
10
11
|
} from '../types/PlayerQueue'
|
|
11
12
|
|
|
12
13
|
export interface PlayerQueue extends HybridObject<{
|
|
@@ -96,6 +97,11 @@ export interface TrackPlayer extends HybridObject<{
|
|
|
96
97
|
isManuallySeeked?: boolean
|
|
97
98
|
) => void
|
|
98
99
|
): void
|
|
100
|
+
/**
|
|
101
|
+
* Register callback for in-stream (timed) metadata — ICY/Shoutcast StreamTitle
|
|
102
|
+
* updates and ID3 frames emitted while a live stream plays.
|
|
103
|
+
*/
|
|
104
|
+
onTimedMetadata(callback: (metadata: TimedMetadata) => void): void
|
|
99
105
|
onAndroidAutoConnectionChange(callback: (connected: boolean) => void): void
|
|
100
106
|
isAndroidAutoConnected(): boolean
|
|
101
107
|
setVolume(volume: number): Promise<void>
|
package/src/types/PlayerQueue.ts
CHANGED
|
@@ -40,6 +40,14 @@ export interface PlayerState {
|
|
|
40
40
|
currentPlayingType: CurrentPlayingType
|
|
41
41
|
}
|
|
42
42
|
|
|
43
|
+
/** In-stream metadata emitted while a stream plays (ICY/Shoutcast StreamTitle, ID3 frames) */
|
|
44
|
+
export interface TimedMetadata {
|
|
45
|
+
title?: string
|
|
46
|
+
artist?: string
|
|
47
|
+
album?: string
|
|
48
|
+
artworkUrl?: string
|
|
49
|
+
}
|
|
50
|
+
|
|
43
51
|
export interface PlayerConfig {
|
|
44
52
|
androidAutoEnabled?: boolean
|
|
45
53
|
carPlayEnabled?: boolean
|