bitmovin-player-react-native 1.9.0 → 1.10.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/.eslintrc.js +11 -0
- package/CHANGELOG.md +25 -0
- package/android/build.gradle +2 -2
- package/android/src/main/java/com/bitmovin/player/reactnative/RNPlayerViewManager.kt +35 -1
- package/android/src/main/java/com/bitmovin/player/reactnative/converter/JsonConverter.kt +47 -28
- package/build/advertising.d.ts +3 -3
- package/build/advertising.js.map +1 -1
- package/build/components/PlayerView/events.d.ts +7 -1
- package/build/components/PlayerView/events.d.ts.map +1 -1
- package/build/components/PlayerView/events.js.map +1 -1
- package/build/components/PlayerView/index.d.ts.map +1 -1
- package/build/components/PlayerView/index.js +3 -3
- package/build/components/PlayerView/index.js.map +1 -1
- package/build/components/PlayerView/nativeEvents.d.ts +9 -1
- package/build/components/PlayerView/nativeEvents.d.ts.map +1 -1
- package/build/components/PlayerView/nativeEvents.js.map +1 -1
- package/build/drm/fairplayDrmApi.d.ts +21 -0
- package/build/drm/fairplayDrmApi.d.ts.map +1 -0
- package/build/drm/fairplayDrmApi.js +30 -0
- package/build/drm/fairplayDrmApi.js.map +1 -0
- package/build/drm/index.d.ts +9 -1
- package/build/drm/index.d.ts.map +1 -1
- package/build/drm/index.js +13 -0
- package/build/drm/index.js.map +1 -1
- package/build/events.d.ts +37 -3
- package/build/events.d.ts.map +1 -1
- package/build/events.js.map +1 -1
- package/build/metadata.d.ts.map +1 -1
- package/build/metadata.js.map +1 -1
- package/build/modules/SourceModule.d.ts +6 -0
- package/build/modules/SourceModule.d.ts.map +1 -1
- package/build/modules/SourceModule.js.map +1 -1
- package/build/network/index.js +4 -12
- package/build/network/index.js.map +1 -1
- package/build/offline/offlineContentManager.js +1 -1
- package/build/offline/offlineContentManager.js.map +1 -1
- package/build/offline/offlineContentManagerListener.d.ts.map +1 -1
- package/build/offline/offlineContentManagerListener.js.map +1 -1
- package/build/player.js +24 -24
- package/build/player.js.map +1 -1
- package/build/source.d.ts +6 -3
- package/build/source.d.ts.map +1 -1
- package/build/source.js +8 -5
- package/build/source.js.map +1 -1
- package/build/tweaksConfig.d.ts +8 -0
- package/build/tweaksConfig.d.ts.map +1 -1
- package/build/tweaksConfig.js.map +1 -1
- package/build/ui/custommessagehandlerbridge.d.ts.map +1 -1
- package/build/ui/custommessagehandlerbridge.js +4 -4
- package/build/ui/custommessagehandlerbridge.js.map +1 -1
- package/build/ui/fullscreenhandlerbridge.js +5 -5
- package/build/ui/fullscreenhandlerbridge.js.map +1 -1
- package/ios/Event+JSON.swift +20 -1
- package/ios/FairplayContentKeyRequestRegistry.swift +39 -0
- package/ios/NetworkModule.swift +1 -0
- package/ios/PlayerModule.swift +3 -3
- package/ios/RCTConvert+BitmovinPlayer.swift +1 -0
- package/ios/RNBitmovinPlayer.podspec +1 -1
- package/ios/RNPlayerView.swift +5 -0
- package/ios/RNPlayerViewManager.swift +2 -1
- package/ios/SourceModule.swift +24 -0
- package/package.json +2 -2
- package/src/advertising.ts +3 -3
- package/src/components/PlayerView/events.ts +7 -0
- package/src/components/PlayerView/index.tsx +3 -2
- package/src/components/PlayerView/nativeEvents.ts +9 -0
- package/src/drm/fairplayDrmApi.ts +36 -0
- package/src/drm/index.ts +14 -2
- package/src/events.ts +40 -3
- package/src/metadata.ts +2 -4
- package/src/modules/SourceModule.ts +10 -0
- package/src/network/index.ts +12 -12
- package/src/offline/offlineContentManager.ts +1 -1
- package/src/offline/offlineContentManagerListener.ts +3 -6
- package/src/player.ts +24 -24
- package/src/source.ts +9 -6
- package/src/tweaksConfig.ts +8 -0
- package/src/ui/custommessagehandlerbridge.ts +7 -4
- package/src/ui/fullscreenhandlerbridge.ts +5 -5
package/src/source.ts
CHANGED
|
@@ -154,9 +154,12 @@ export interface SourceRemoteControlConfig {
|
|
|
154
154
|
*/
|
|
155
155
|
export class Source extends NativeInstance<SourceConfig> {
|
|
156
156
|
/**
|
|
157
|
-
*
|
|
157
|
+
* Provides access to DRM runtime APIs for this source.
|
|
158
|
+
* Use `drm.fairplay` to access {@link FairplayDrmApi} for FairPlay-specific APIs such as {@link FairplayDrmApi.renewExpiringLicense}.
|
|
159
|
+
*
|
|
160
|
+
* `undefined` if the source was created without a {@link DrmConfig}.
|
|
158
161
|
*/
|
|
159
|
-
|
|
162
|
+
drm?: Drm;
|
|
160
163
|
/**
|
|
161
164
|
* The remote control config for this source.
|
|
162
165
|
* This is only supported on iOS.
|
|
@@ -180,7 +183,7 @@ export class Source extends NativeInstance<SourceConfig> {
|
|
|
180
183
|
if (!this.isInitialized) {
|
|
181
184
|
const sourceMetadata = this.config?.analyticsSourceMetadata;
|
|
182
185
|
if (this.config?.drmConfig) {
|
|
183
|
-
this.drm = new Drm(this.config.drmConfig);
|
|
186
|
+
this.drm = new Drm(this.config.drmConfig, this.nativeId);
|
|
184
187
|
await this.drm.initialize();
|
|
185
188
|
}
|
|
186
189
|
if (sourceMetadata) {
|
|
@@ -209,8 +212,8 @@ export class Source extends NativeInstance<SourceConfig> {
|
|
|
209
212
|
*/
|
|
210
213
|
destroy = () => {
|
|
211
214
|
if (!this.isDestroyed) {
|
|
212
|
-
SourceModule.destroy(this.nativeId);
|
|
213
|
-
this.drm?.destroy();
|
|
215
|
+
void SourceModule.destroy(this.nativeId);
|
|
216
|
+
void this.drm?.destroy();
|
|
214
217
|
this.isDestroyed = true;
|
|
215
218
|
}
|
|
216
219
|
};
|
|
@@ -252,7 +255,7 @@ export class Source extends NativeInstance<SourceConfig> {
|
|
|
252
255
|
* @param metadata metadata to be set.
|
|
253
256
|
*/
|
|
254
257
|
setMetadata = (metadata: Record<string, any> | null): void => {
|
|
255
|
-
SourceModule.setMetadata(this.nativeId, metadata);
|
|
258
|
+
void SourceModule.setMetadata(this.nativeId, metadata);
|
|
256
259
|
};
|
|
257
260
|
|
|
258
261
|
/**
|
package/src/tweaksConfig.ts
CHANGED
|
@@ -166,6 +166,14 @@ export interface TweaksConfig {
|
|
|
166
166
|
* @platform Android
|
|
167
167
|
*/
|
|
168
168
|
useFiletypeExtractorFallbackForHls?: boolean;
|
|
169
|
+
/**
|
|
170
|
+
* If enabled, the player will retry renewing a DRM license in case the first renewal attempt fails.
|
|
171
|
+
* This can help maintain playback for long-running sessions where the license might expire.
|
|
172
|
+
*
|
|
173
|
+
* @defaultValue `false`
|
|
174
|
+
* @platform Android
|
|
175
|
+
*/
|
|
176
|
+
enableDrmLicenseRenewRetry?: boolean;
|
|
169
177
|
/**
|
|
170
178
|
* Determines whether `AVKit` should update Now Playing information automatically when using System UI.
|
|
171
179
|
*
|
|
@@ -42,7 +42,7 @@ export class CustomMessageHandlerBridge implements CustomMessageSender {
|
|
|
42
42
|
}
|
|
43
43
|
);
|
|
44
44
|
|
|
45
|
-
CustomMessageHandlerModule.registerHandler(this.nativeId);
|
|
45
|
+
void CustomMessageHandlerModule.registerHandler(this.nativeId);
|
|
46
46
|
}
|
|
47
47
|
|
|
48
48
|
setCustomMessageHandler(customMessageHandler: CustomMessageHandler) {
|
|
@@ -55,7 +55,7 @@ export class CustomMessageHandlerBridge implements CustomMessageSender {
|
|
|
55
55
|
*/
|
|
56
56
|
destroy() {
|
|
57
57
|
if (!this.isDestroyed) {
|
|
58
|
-
CustomMessageHandlerModule.destroy(this.nativeId);
|
|
58
|
+
void CustomMessageHandlerModule.destroy(this.nativeId);
|
|
59
59
|
this.onReceivedSynchronousMessageSubscription?.remove();
|
|
60
60
|
this.onReceivedAsynchronousMessageSubscription?.remove();
|
|
61
61
|
this.onReceivedSynchronousMessageSubscription = undefined;
|
|
@@ -77,7 +77,10 @@ export class CustomMessageHandlerBridge implements CustomMessageSender {
|
|
|
77
77
|
message,
|
|
78
78
|
data
|
|
79
79
|
);
|
|
80
|
-
CustomMessageHandlerModule.onReceivedSynchronousMessageResult(
|
|
80
|
+
void CustomMessageHandlerModule.onReceivedSynchronousMessageResult(
|
|
81
|
+
id,
|
|
82
|
+
result
|
|
83
|
+
);
|
|
81
84
|
}
|
|
82
85
|
|
|
83
86
|
/**
|
|
@@ -96,6 +99,6 @@ export class CustomMessageHandlerBridge implements CustomMessageSender {
|
|
|
96
99
|
* Called by CustomMessageHandler, when sending a message to the UI.
|
|
97
100
|
*/
|
|
98
101
|
sendMessage(message: string, data: string | undefined): void {
|
|
99
|
-
CustomMessageHandlerModule.sendMessage(this.nativeId, message, data);
|
|
102
|
+
void CustomMessageHandlerModule.sendMessage(this.nativeId, message, data);
|
|
100
103
|
}
|
|
101
104
|
}
|
|
@@ -36,7 +36,7 @@ export class FullscreenHandlerBridge {
|
|
|
36
36
|
this.exitFullscreen(id);
|
|
37
37
|
}
|
|
38
38
|
);
|
|
39
|
-
FullscreenHandlerModule.registerHandler(this.nativeId);
|
|
39
|
+
void FullscreenHandlerModule.registerHandler(this.nativeId);
|
|
40
40
|
}
|
|
41
41
|
|
|
42
42
|
setFullscreenHandler(fullscreenHandler: FullscreenHandler | undefined) {
|
|
@@ -47,7 +47,7 @@ export class FullscreenHandlerBridge {
|
|
|
47
47
|
this.fullscreenHandler = fullscreenHandler;
|
|
48
48
|
|
|
49
49
|
// synchronize current state from fullscreenHandler to native
|
|
50
|
-
FullscreenHandlerModule.setIsFullscreenActive(
|
|
50
|
+
void FullscreenHandlerModule.setIsFullscreenActive(
|
|
51
51
|
this.nativeId,
|
|
52
52
|
fullscreenHandler?.isFullscreenActive ?? false
|
|
53
53
|
);
|
|
@@ -58,7 +58,7 @@ export class FullscreenHandlerBridge {
|
|
|
58
58
|
*/
|
|
59
59
|
destroy() {
|
|
60
60
|
if (!this.isDestroyed) {
|
|
61
|
-
FullscreenHandlerModule.destroy(this.nativeId);
|
|
61
|
+
void FullscreenHandlerModule.destroy(this.nativeId);
|
|
62
62
|
this.onEnterFullScreenSubscription?.remove();
|
|
63
63
|
this.onExitFullScreenSubscription?.remove();
|
|
64
64
|
this.onEnterFullScreenSubscription = undefined;
|
|
@@ -73,7 +73,7 @@ export class FullscreenHandlerBridge {
|
|
|
73
73
|
*/
|
|
74
74
|
private enterFullscreen(id: number): void {
|
|
75
75
|
this.fullscreenHandler?.enterFullscreen();
|
|
76
|
-
FullscreenHandlerModule.notifyFullscreenChanged(
|
|
76
|
+
void FullscreenHandlerModule.notifyFullscreenChanged(
|
|
77
77
|
id,
|
|
78
78
|
this.fullscreenHandler?.isFullscreenActive ?? false
|
|
79
79
|
);
|
|
@@ -85,7 +85,7 @@ export class FullscreenHandlerBridge {
|
|
|
85
85
|
*/
|
|
86
86
|
private exitFullscreen(id: number): void {
|
|
87
87
|
this.fullscreenHandler?.exitFullscreen();
|
|
88
|
-
FullscreenHandlerModule.notifyFullscreenChanged(
|
|
88
|
+
void FullscreenHandlerModule.notifyFullscreenChanged(
|
|
89
89
|
id,
|
|
90
90
|
this.fullscreenHandler?.isFullscreenActive ?? false
|
|
91
91
|
);
|