react-native-nitro-player 1.4.3 → 1.5.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/NitroPlayer.podspec +6 -0
- package/README.md +113 -0
- package/android/build.gradle +8 -0
- package/android/src/main/AndroidManifest.xml +11 -0
- package/android/src/main/java/com/margelo/nitro/nitroplayer/HybridCast.kt +79 -0
- package/android/src/main/java/com/margelo/nitro/nitroplayer/core/ExoPlayerCore.kt +10 -7
- package/android/src/main/java/com/margelo/nitro/nitroplayer/core/TrackPlayerCast.kt +122 -0
- package/android/src/main/java/com/margelo/nitro/nitroplayer/core/TrackPlayerCore.kt +13 -0
- package/android/src/main/java/com/margelo/nitro/nitroplayer/core/TrackPlayerSetup.kt +7 -0
- package/android/src/main/java/com/margelo/nitro/nitroplayer/media/CastSessionController.kt +160 -0
- package/android/src/main/java/com/margelo/nitro/nitroplayer/media/NitroCastConfig.kt +23 -0
- package/android/src/main/java/com/margelo/nitro/nitroplayer/media/NitroCastOptionsProvider.kt +30 -0
- package/android/src/main/java/com/margelo/nitro/nitroplayer/media/NitroMediaItemConverter.kt +53 -0
- package/android/src/main/java/com/margelo/nitro/nitroplayer/media/PlaybackService.kt +33 -0
- package/ios/HybridCast.swift +63 -0
- package/ios/core/CastSessionManager.swift +367 -0
- package/ios/core/TrackPlayerCast.swift +109 -0
- package/ios/core/TrackPlayerCore.swift +28 -2
- package/ios/core/TrackPlayerPlayback.swift +32 -0
- package/ios/core/TrackPlayerQueue.swift +8 -1
- package/ios/core/TrackPlayerQueueBuild.swift +37 -2
- package/ios/core/TrackPlayerRedirectResolver.swift +150 -0
- package/lib/components/CastButton.d.ts +44 -0
- package/lib/components/CastButton.js +100 -0
- package/lib/hooks/castCallbackManager.d.ts +19 -0
- package/lib/hooks/castCallbackManager.js +43 -0
- package/lib/hooks/index.d.ts +3 -0
- package/lib/hooks/index.js +3 -0
- package/lib/hooks/useCastState.d.ts +27 -0
- package/lib/hooks/useCastState.js +49 -0
- package/lib/hooks/useIsCasting.d.ts +17 -0
- package/lib/hooks/useIsCasting.js +43 -0
- package/lib/index.d.ts +5 -0
- package/lib/index.js +4 -1
- package/lib/specs/Cast.nitro.d.ts +58 -0
- package/lib/specs/Cast.nitro.js +1 -0
- package/nitro.json +10 -0
- package/nitrogen/generated/android/NitroPlayer+autolinking.cmake +3 -1
- package/nitrogen/generated/android/NitroPlayerOnLoad.cpp +18 -0
- package/nitrogen/generated/android/c++/JCastState.hpp +64 -0
- package/nitrogen/generated/android/c++/JFunc_void_CastState_std__optional_std__variant_nitro__NullType__std__string__.hpp +83 -0
- package/nitrogen/generated/android/c++/JHybridCastSpec.cpp +115 -0
- package/nitrogen/generated/android/c++/JHybridCastSpec.hpp +69 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/CastState.kt +25 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Func_void_CastState_std__optional_std__variant_nitro__NullType__std__string__.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/HybridCastSpec.kt +85 -0
- package/nitrogen/generated/ios/NitroPlayer-Swift-Cxx-Bridge.cpp +38 -13
- package/nitrogen/generated/ios/NitroPlayer-Swift-Cxx-Bridge.hpp +176 -125
- package/nitrogen/generated/ios/NitroPlayer-Swift-Cxx-Umbrella.hpp +8 -0
- package/nitrogen/generated/ios/NitroPlayerAutolinking.mm +8 -0
- package/nitrogen/generated/ios/NitroPlayerAutolinking.swift +12 -0
- package/nitrogen/generated/ios/c++/HybridCastSpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridCastSpecSwift.hpp +133 -0
- package/nitrogen/generated/ios/swift/CastState.swift +48 -0
- package/nitrogen/generated/ios/swift/Func_void_CastState_std__optional_std__variant_nitro__NullType__std__string__.swift +65 -0
- package/nitrogen/generated/ios/swift/HybridCastSpec.swift +61 -0
- package/nitrogen/generated/ios/swift/HybridCastSpec_cxx.swift +254 -0
- package/nitrogen/generated/shared/c++/CastState.hpp +84 -0
- package/nitrogen/generated/shared/c++/HybridCastSpec.cpp +27 -0
- package/nitrogen/generated/shared/c++/HybridCastSpec.hpp +75 -0
- package/package.json +3 -3
- package/src/components/CastButton.tsx +196 -0
- package/src/hooks/castCallbackManager.ts +55 -0
- package/src/hooks/index.ts +5 -0
- package/src/hooks/useCastState.ts +67 -0
- package/src/hooks/useIsCasting.ts +47 -0
- package/src/index.ts +9 -0
- package/src/specs/Cast.nitro.ts +72 -0
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import type { HybridObject } from 'react-native-nitro-modules'
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* The current Google Cast connection state.
|
|
5
|
+
*
|
|
6
|
+
* - `no_devices_available`: No Cast devices are discoverable on the network.
|
|
7
|
+
* The Cast button is typically hidden in this state.
|
|
8
|
+
* - `not_connected`: Cast devices are available but none is connected.
|
|
9
|
+
* - `connecting`: A session is being established with a device.
|
|
10
|
+
* - `connected`: A session is active and playback is routed to the device.
|
|
11
|
+
*/
|
|
12
|
+
export type CastState =
|
|
13
|
+
| 'no_devices_available'
|
|
14
|
+
| 'not_connected'
|
|
15
|
+
| 'connecting'
|
|
16
|
+
| 'connected'
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Google Cast control surface.
|
|
20
|
+
*
|
|
21
|
+
* Casting is implemented as an internal playback backend swap inside the native
|
|
22
|
+
* player core: when a session is `connected`, every playback operation (play,
|
|
23
|
+
* pause, seek, skip, queue) is routed to the remote Cast device and local audio
|
|
24
|
+
* is suppressed automatically. The existing {@link TrackPlayer} API keeps
|
|
25
|
+
* working unchanged — this object only exposes the Cast-specific surface.
|
|
26
|
+
*/
|
|
27
|
+
export interface Cast extends HybridObject<{
|
|
28
|
+
android: 'kotlin'
|
|
29
|
+
ios: 'swift'
|
|
30
|
+
}> {
|
|
31
|
+
/**
|
|
32
|
+
* Initialize the Cast framework. Must be called once early in app startup
|
|
33
|
+
* (before the first Cast interaction). Safe to call multiple times.
|
|
34
|
+
*
|
|
35
|
+
* @param receiverApplicationId Optional Web Receiver application ID registered
|
|
36
|
+
* in the Google Cast Developer Console. When omitted, the platform Default
|
|
37
|
+
* Media Receiver (`CC1AD845`) is used, which supports audio playback,
|
|
38
|
+
* metadata and queues out of the box.
|
|
39
|
+
*/
|
|
40
|
+
configure(receiverApplicationId?: string): Promise<void>
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Whether playback is currently routed to a Cast device.
|
|
44
|
+
* Equivalent to `getCastState() === 'connected'`.
|
|
45
|
+
*/
|
|
46
|
+
isCasting(): boolean
|
|
47
|
+
|
|
48
|
+
/** The current Cast connection state. */
|
|
49
|
+
getCastState(): CastState
|
|
50
|
+
|
|
51
|
+
/** The friendly name of the connected device, or `null` when not connected. */
|
|
52
|
+
getCastDeviceName(): string | null
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Present the native Cast dialog. Shows the device chooser when not connected,
|
|
56
|
+
* or the cast controls / disconnect dialog when already connected. Mirrors the
|
|
57
|
+
* behaviour of the standard platform Cast button.
|
|
58
|
+
*/
|
|
59
|
+
showCastPicker(): void
|
|
60
|
+
|
|
61
|
+
/** End the current Cast session and resume local playback. No-op when not connected. */
|
|
62
|
+
endCastSession(): Promise<void>
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* Register a callback fired whenever the Cast connection state changes.
|
|
66
|
+
* The callback receives the new {@link CastState} and the connected device
|
|
67
|
+
* name (or `null`).
|
|
68
|
+
*/
|
|
69
|
+
onCastStateChange(
|
|
70
|
+
callback: (state: CastState, deviceName: string | null) => void
|
|
71
|
+
): void
|
|
72
|
+
}
|