react-native-theoplayer 3.7.1 → 3.9.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/CHANGELOG.md +24 -1
- package/android/build.gradle +2 -1
- package/android/local/com/theoplayer/theoplayer-sdk-android/ads-wrapper/6.10.0/ads-wrapper-6.10.0.aar +0 -0
- package/android/local/com/theoplayer/theoplayer-sdk-android/ads-wrapper/{4.8.0/ads-wrapper-4.8.0.pom → 6.10.0/ads-wrapper-6.10.0.pom} +1 -1
- package/android/local/com/theoplayer/theoplayer-sdk-android/ads-wrapper/maven-metadata-local.xml +4 -4
- package/android/src/main/java/com/theoplayer/PlayerConfigAdapter.kt +4 -0
- package/android/src/main/java/com/theoplayer/ReactTHEOplayerContext.kt +7 -0
- package/android/src/main/java/com/theoplayer/ads/AdEventAdapter.kt +9 -4
- package/android/src/main/java/com/theoplayer/ads/AdsModule.kt +1 -1
- package/android/src/main/java/com/theoplayer/audio/AudioFocusManager.kt +57 -26
- package/android/src/main/java/com/theoplayer/broadcast/EventBroadcastModule.kt +1 -1
- package/android/src/main/java/com/theoplayer/cache/CacheModule.kt +1 -1
- package/android/src/main/java/com/theoplayer/cast/CastModule.kt +1 -1
- package/android/src/main/java/com/theoplayer/drm/ContentProtectionModule.kt +1 -1
- package/android/src/main/java/com/theoplayer/media/MediaPlaybackService.kt +8 -17
- package/android/src/main/java/com/theoplayer/player/PlayerModule.kt +1 -1
- package/ios/THEOplayerRCTBridge.m +6 -6
- package/ios/THEOplayerRCTPlayerAPI.swift +25 -25
- package/ios/ads/THEOplayerRCTAdsAPI.swift +17 -17
- package/ios/backgroundAudio/THEOplayerRCTNowPlayingManager.swift +4 -0
- package/ios/cache/THEOplayerRCTCacheAPI.swift +29 -29
- package/ios/casting/THEOplayerRCTCastAPI.swift +9 -9
- package/ios/contentprotection/THEOplayerRCTContentProtectionAPI.swift +22 -22
- package/ios/eventBroadcasting/THEOplayerRCTEventBroadcastAPI.swift +5 -5
- package/lib/commonjs/api/config/PlayerConfiguration.js.map +1 -1
- package/lib/commonjs/internal/adapter/THEOplayerAdapter.js +19 -18
- package/lib/commonjs/internal/adapter/THEOplayerAdapter.js.map +1 -1
- package/lib/commonjs/internal/adapter/abr/AbrAdapter.js +2 -1
- package/lib/commonjs/internal/adapter/abr/AbrAdapter.js.map +1 -1
- package/lib/commonjs/internal/adapter/ads/THEOplayerNativeAdsAdapter.js +7 -6
- package/lib/commonjs/internal/adapter/ads/THEOplayerNativeAdsAdapter.js.map +1 -1
- package/lib/commonjs/internal/adapter/ads/THEOplayerNativeGoogleDAI.js +5 -4
- package/lib/commonjs/internal/adapter/ads/THEOplayerNativeGoogleDAI.js.map +1 -1
- package/lib/commonjs/internal/adapter/broadcast/EventBroadcastAdapter.js +2 -1
- package/lib/commonjs/internal/adapter/broadcast/EventBroadcastAdapter.js.map +1 -1
- package/lib/commonjs/internal/adapter/cast/THEOplayerNativeAirplay.js +5 -4
- package/lib/commonjs/internal/adapter/cast/THEOplayerNativeAirplay.js.map +1 -1
- package/lib/commonjs/internal/adapter/cast/THEOplayerNativeChromecast.js +7 -6
- package/lib/commonjs/internal/adapter/cast/THEOplayerNativeChromecast.js.map +1 -1
- package/lib/commonjs/internal/adapter/track/TextTrackStyleAdapter.js +11 -10
- package/lib/commonjs/internal/adapter/track/TextTrackStyleAdapter.js.map +1 -1
- package/lib/commonjs/internal/cache/MediaCache.js +4 -3
- package/lib/commonjs/internal/cache/MediaCache.js.map +1 -1
- package/lib/commonjs/internal/cache/NativeCachingTaskAdapter.js +5 -4
- package/lib/commonjs/internal/cache/NativeCachingTaskAdapter.js.map +1 -1
- package/lib/commonjs/internal/drm/ContentProtectionRegistry.js +23 -22
- package/lib/commonjs/internal/drm/ContentProtectionRegistry.js.map +1 -1
- package/lib/module/api/config/PlayerConfiguration.js.map +1 -1
- package/lib/module/internal/adapter/THEOplayerAdapter.js +19 -18
- package/lib/module/internal/adapter/THEOplayerAdapter.js.map +1 -1
- package/lib/module/internal/adapter/abr/AbrAdapter.js +2 -1
- package/lib/module/internal/adapter/abr/AbrAdapter.js.map +1 -1
- package/lib/module/internal/adapter/ads/THEOplayerNativeAdsAdapter.js +7 -6
- package/lib/module/internal/adapter/ads/THEOplayerNativeAdsAdapter.js.map +1 -1
- package/lib/module/internal/adapter/ads/THEOplayerNativeGoogleDAI.js +5 -4
- package/lib/module/internal/adapter/ads/THEOplayerNativeGoogleDAI.js.map +1 -1
- package/lib/module/internal/adapter/broadcast/EventBroadcastAdapter.js +2 -1
- package/lib/module/internal/adapter/broadcast/EventBroadcastAdapter.js.map +1 -1
- package/lib/module/internal/adapter/cast/THEOplayerNativeAirplay.js +5 -4
- package/lib/module/internal/adapter/cast/THEOplayerNativeAirplay.js.map +1 -1
- package/lib/module/internal/adapter/cast/THEOplayerNativeChromecast.js +7 -6
- package/lib/module/internal/adapter/cast/THEOplayerNativeChromecast.js.map +1 -1
- package/lib/module/internal/adapter/track/TextTrackStyleAdapter.js +11 -10
- package/lib/module/internal/adapter/track/TextTrackStyleAdapter.js.map +1 -1
- package/lib/module/internal/cache/MediaCache.js +4 -3
- package/lib/module/internal/cache/MediaCache.js.map +1 -1
- package/lib/module/internal/cache/NativeCachingTaskAdapter.js +5 -4
- package/lib/module/internal/cache/NativeCachingTaskAdapter.js.map +1 -1
- package/lib/module/internal/drm/ContentProtectionRegistry.js +23 -22
- package/lib/module/internal/drm/ContentProtectionRegistry.js.map +1 -1
- package/lib/typescript/api/config/PlayerConfiguration.d.ts +10 -0
- package/package.json +1 -1
- package/react-native-theoplayer.podspec +11 -6
- package/src/api/config/PlayerConfiguration.ts +11 -0
- package/src/internal/adapter/THEOplayerAdapter.ts +20 -18
- package/src/internal/adapter/abr/AbrAdapter.ts +3 -1
- package/src/internal/adapter/ads/THEOplayerNativeAdsAdapter.ts +8 -6
- package/src/internal/adapter/ads/THEOplayerNativeGoogleDAI.ts +6 -4
- package/src/internal/adapter/broadcast/EventBroadcastAdapter.ts +3 -1
- package/src/internal/adapter/cast/THEOplayerNativeAirplay.ts +6 -4
- package/src/internal/adapter/cast/THEOplayerNativeChromecast.ts +8 -6
- package/src/internal/adapter/track/TextTrackStyleAdapter.ts +11 -10
- package/src/internal/cache/MediaCache.ts +5 -3
- package/src/internal/cache/NativeCachingTaskAdapter.ts +6 -4
- package/src/internal/drm/ContentProtectionRegistry.ts +24 -22
- package/android/local/com/theoplayer/theoplayer-sdk-android/ads-wrapper/4.8.0/ads-wrapper-4.8.0.aar +0 -0
|
@@ -13,6 +13,7 @@ var _TypeUtils = require("../utils/TypeUtils");
|
|
|
13
13
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
14
14
|
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
15
15
|
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
16
|
+
const NativeContentProtectionModule = _reactNative.NativeModules.THEORCTContentProtectionModule;
|
|
16
17
|
class NativeContentProtectionRegistry {
|
|
17
18
|
constructor() {
|
|
18
19
|
_defineProperty(this, "emitter", void 0);
|
|
@@ -25,7 +26,7 @@ class NativeContentProtectionRegistry {
|
|
|
25
26
|
keySystemId,
|
|
26
27
|
drmConfig
|
|
27
28
|
} = event;
|
|
28
|
-
console.log('
|
|
29
|
+
console.log('NativeContentProtectionModule', `onBuildIntegrationRequest ${integrationId} ${keySystemId}`);
|
|
29
30
|
const factory = this.getFactory(integrationId, keySystemId);
|
|
30
31
|
if (factory) {
|
|
31
32
|
this.currentIntegration = {
|
|
@@ -33,12 +34,12 @@ class NativeContentProtectionRegistry {
|
|
|
33
34
|
keySystemId,
|
|
34
35
|
integration: factory.build(drmConfig)
|
|
35
36
|
};
|
|
36
|
-
|
|
37
|
+
NativeContentProtectionModule.onBuildProcessed({
|
|
37
38
|
requestId,
|
|
38
39
|
resultString: 'success'
|
|
39
40
|
});
|
|
40
41
|
} else {
|
|
41
|
-
|
|
42
|
+
NativeContentProtectionModule.onBuildProcessed({
|
|
42
43
|
requestId,
|
|
43
44
|
resultString: 'failed'
|
|
44
45
|
});
|
|
@@ -50,20 +51,20 @@ class NativeContentProtectionRegistry {
|
|
|
50
51
|
integrationId,
|
|
51
52
|
keySystemId
|
|
52
53
|
} = request;
|
|
53
|
-
console.log('
|
|
54
|
+
console.log('NativeContentProtectionModule', `onCertificateRequest ${integrationId} ${keySystemId}`);
|
|
54
55
|
const integration = this.getIntegration(integrationId, keySystemId);
|
|
55
56
|
if (integration !== null && integration !== void 0 && integration.onCertificateRequest) {
|
|
56
57
|
const result = await integration.onCertificateRequest((0, _NativeCertificateRequest.fromNativeCertificateRequest)(request));
|
|
57
58
|
// TODO: we also want to support ArrayBufferView results
|
|
58
59
|
if ((0, _TypeUtils.isBufferSource)(result)) {
|
|
59
60
|
const nativeResponse = (0, _NativeCertificateResponse.toNativeCertificateResponseResult)(requestId, integrationId, keySystemId, result);
|
|
60
|
-
|
|
61
|
+
NativeContentProtectionModule.onCertificateRequestProcessedAsCertificate(nativeResponse);
|
|
61
62
|
} else if (result) {
|
|
62
63
|
const modifiedNativeRequest = (0, _NativeCertificateRequest.toNativeCertificateRequest)(requestId, integrationId, keySystemId, result);
|
|
63
|
-
|
|
64
|
+
NativeContentProtectionModule.onCertificateRequestProcessedAsRequest(modifiedNativeRequest);
|
|
64
65
|
}
|
|
65
66
|
} else {
|
|
66
|
-
|
|
67
|
+
NativeContentProtectionModule.onCertificateRequestProcessedAsRequest(request);
|
|
67
68
|
}
|
|
68
69
|
});
|
|
69
70
|
_defineProperty(this, "onCertificateResponse", async response => {
|
|
@@ -72,15 +73,15 @@ class NativeContentProtectionRegistry {
|
|
|
72
73
|
integrationId,
|
|
73
74
|
keySystemId
|
|
74
75
|
} = response;
|
|
75
|
-
console.log('
|
|
76
|
+
console.log('NativeContentProtectionModule', `onCertificateResponse ${integrationId} ${keySystemId}`);
|
|
76
77
|
const integration = this.getIntegration(integrationId, keySystemId);
|
|
77
78
|
if (integration !== null && integration !== void 0 && integration.onCertificateResponse) {
|
|
78
79
|
const responseResult = await integration.onCertificateResponse((0, _NativeCertificateResponse.fromNativeCertificateResponse)(response));
|
|
79
80
|
// TODO: we also want to support ArrayBufferView results
|
|
80
81
|
const modifiedNativeResponse = (0, _NativeCertificateResponse.toNativeCertificateResponseResult)(requestId, integrationId, keySystemId, responseResult);
|
|
81
|
-
|
|
82
|
+
NativeContentProtectionModule.onCertificateResponseProcessed(modifiedNativeResponse);
|
|
82
83
|
} else {
|
|
83
|
-
|
|
84
|
+
NativeContentProtectionModule.onCertificateResponseProcessed(response);
|
|
84
85
|
}
|
|
85
86
|
});
|
|
86
87
|
_defineProperty(this, "onLicenseRequest", async request => {
|
|
@@ -89,7 +90,7 @@ class NativeContentProtectionRegistry {
|
|
|
89
90
|
integrationId,
|
|
90
91
|
keySystemId
|
|
91
92
|
} = request;
|
|
92
|
-
console.log('
|
|
93
|
+
console.log('NativeContentProtectionModule', `onLicenseRequest ${integrationId} ${keySystemId}`);
|
|
93
94
|
const integration = this.getIntegration(integrationId, keySystemId);
|
|
94
95
|
// Optionally let the custom integration modify the request.
|
|
95
96
|
if (integration !== null && integration !== void 0 && integration.onLicenseRequest) {
|
|
@@ -97,13 +98,13 @@ class NativeContentProtectionRegistry {
|
|
|
97
98
|
// TODO: we also want to support ArrayBufferView results
|
|
98
99
|
if ((0, _TypeUtils.isBufferSource)(result)) {
|
|
99
100
|
const nativeResponse = (0, _NativeLicenseResponse.toNativeLicenseResponseResult)(requestId, integrationId, keySystemId, result);
|
|
100
|
-
|
|
101
|
+
NativeContentProtectionModule.onLicenseRequestProcessedAsLicense(nativeResponse);
|
|
101
102
|
} else if (result) {
|
|
102
103
|
const modifiedNativeRequest = (0, _NativeLicenseRequest.toNativeLicenseRequest)(requestId, integrationId, keySystemId, result);
|
|
103
|
-
|
|
104
|
+
NativeContentProtectionModule.onLicenseRequestProcessedAsRequest(modifiedNativeRequest);
|
|
104
105
|
}
|
|
105
106
|
} else {
|
|
106
|
-
|
|
107
|
+
NativeContentProtectionModule.onLicenseRequestProcessedAsRequest(request);
|
|
107
108
|
}
|
|
108
109
|
});
|
|
109
110
|
_defineProperty(this, "onLicenseResponse", async response => {
|
|
@@ -112,15 +113,15 @@ class NativeContentProtectionRegistry {
|
|
|
112
113
|
integrationId,
|
|
113
114
|
keySystemId
|
|
114
115
|
} = response;
|
|
115
|
-
console.log('
|
|
116
|
+
console.log('NativeContentProtectionModule', `onLicenseResponse ${integrationId} ${keySystemId}`);
|
|
116
117
|
const integration = this.getIntegration(integrationId, keySystemId);
|
|
117
118
|
if (integration !== null && integration !== void 0 && integration.onLicenseResponse) {
|
|
118
119
|
const responseResult = await integration.onLicenseResponse((0, _NativeLicenseResponse.fromNativeLicenseResponse)(response));
|
|
119
120
|
// TODO: we also want to support ArrayBufferView results
|
|
120
121
|
const modifiedNativeResponse = (0, _NativeLicenseResponse.toNativeLicenseResponseResult)(requestId, integrationId, keySystemId, responseResult);
|
|
121
|
-
|
|
122
|
+
NativeContentProtectionModule.onLicenseResponseProcessed(modifiedNativeResponse);
|
|
122
123
|
} else {
|
|
123
|
-
|
|
124
|
+
NativeContentProtectionModule.onLicenseResponseProcessed(response);
|
|
124
125
|
}
|
|
125
126
|
});
|
|
126
127
|
_defineProperty(this, "onExtractFairplayContentId", async event => {
|
|
@@ -130,23 +131,23 @@ class NativeContentProtectionRegistry {
|
|
|
130
131
|
fairplaySkdUrl,
|
|
131
132
|
requestId
|
|
132
133
|
} = event;
|
|
133
|
-
console.log('
|
|
134
|
+
console.log('NativeContentProtectionModule', `onExtractFairplayContentId ${integrationId} ${keySystemId}`);
|
|
134
135
|
const integration = this.getIntegration(integrationId, keySystemId);
|
|
135
136
|
if (integration !== null && integration !== void 0 && integration.extractFairplayContentId) {
|
|
136
137
|
const contentId = await integration.extractFairplayContentId(fairplaySkdUrl);
|
|
137
|
-
|
|
138
|
+
NativeContentProtectionModule.onExtractFairplayContentIdProcessed({
|
|
138
139
|
requestId,
|
|
139
140
|
contentId
|
|
140
141
|
});
|
|
141
142
|
} else {
|
|
142
143
|
const contentId = fairplaySkdUrl;
|
|
143
|
-
|
|
144
|
+
NativeContentProtectionModule.onExtractFairplayContentIdProcessed({
|
|
144
145
|
requestId,
|
|
145
146
|
contentId
|
|
146
147
|
});
|
|
147
148
|
}
|
|
148
149
|
});
|
|
149
|
-
this.emitter = new _reactNative.NativeEventEmitter(
|
|
150
|
+
this.emitter = new _reactNative.NativeEventEmitter(NativeContentProtectionModule);
|
|
150
151
|
this.emitter.addListener('onBuildIntegration', this.onBuildIntegrationRequest);
|
|
151
152
|
this.emitter.addListener('onCertificateRequest', this.onCertificateRequest);
|
|
152
153
|
this.emitter.addListener('onCertificateResponse', this.onCertificateResponse);
|
|
@@ -160,7 +161,7 @@ class NativeContentProtectionRegistry {
|
|
|
160
161
|
keySystemId,
|
|
161
162
|
integrationFactory
|
|
162
163
|
});
|
|
163
|
-
|
|
164
|
+
NativeContentProtectionModule.registerContentProtectionIntegration(integrationId, keySystemId);
|
|
164
165
|
}
|
|
165
166
|
getFactory(integrationId, keySystemId) {
|
|
166
167
|
var _this$registeredFacto;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_NativeLicenseRequest","_NativeLicenseResponse","_NativeCertificateRequest","_NativeCertificateResponse","_TypeUtils","_defineProperty","obj","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","NativeContentProtectionRegistry","constructor","event","requestId","integrationId","keySystemId","drmConfig","console","log","factory","getFactory","currentIntegration","integration","build","NativeModules","ContentProtectionModule","onBuildProcessed","resultString","request","getIntegration","onCertificateRequest","result","fromNativeCertificateRequest","isBufferSource","nativeResponse","toNativeCertificateResponseResult","onCertificateRequestProcessedAsCertificate","modifiedNativeRequest","toNativeCertificateRequest","onCertificateRequestProcessedAsRequest","response","onCertificateResponse","responseResult","fromNativeCertificateResponse","modifiedNativeResponse","onCertificateResponseProcessed","onLicenseRequest","fromNativeLicenseRequest","toNativeLicenseResponseResult","onLicenseRequestProcessedAsLicense","toNativeLicenseRequest","onLicenseRequestProcessedAsRequest","onLicenseResponse","fromNativeLicenseResponse","onLicenseResponseProcessed","fairplaySkdUrl","extractFairplayContentId","contentId","onExtractFairplayContentIdProcessed","emitter","NativeEventEmitter","addListener","onBuildIntegrationRequest","onExtractFairplayContentId","registerContentProtectionIntegration","integrationFactory","registeredFactories","push","_this$registeredFacto","find","init","_this$currentIntegrat","_this$currentIntegrat2","_this$currentIntegrat3","exports","ContentProtectionRegistry"],"sources":["ContentProtectionRegistry.ts"],"sourcesContent":["import type { CertificateRequest, ContentProtectionAPI, DRMConfiguration, LicenseRequest } from 'react-native-theoplayer';\nimport type { KeySystemId } from 'react-native-theoplayer';\nimport type { ContentProtectionIntegrationFactory } from 'react-native-theoplayer';\nimport { NativeEventEmitter, NativeModules } from 'react-native';\nimport type { ContentProtectionIntegration } from 'react-native-theoplayer';\nimport type { NativeContentProtectionEvent } from './NativeContentProtectionEvent';\nimport { fromNativeLicenseRequest, NativeLicenseRequest, toNativeLicenseRequest } from './NativeLicenseRequest';\nimport { fromNativeLicenseResponse, NativeLicenseResponse, toNativeLicenseResponseResult } from './NativeLicenseResponse';\nimport { fromNativeCertificateRequest, NativeCertificateRequest, toNativeCertificateRequest } from './NativeCertificateRequest';\nimport { fromNativeCertificateResponse, NativeCertificateResponse, toNativeCertificateResponseResult } from './NativeCertificateResponse';\nimport { isBufferSource } from '../utils/TypeUtils';\n\ninterface WrappedContentProtectionIntegrationFactory {\n integrationId: string;\n keySystemId: string;\n integrationFactory: ContentProtectionIntegrationFactory;\n}\n\ninterface WrappedContentProtectionIntegration {\n integrationId: string;\n keySystemId: string;\n integration: ContentProtectionIntegration;\n}\n\ninterface BuildEvent extends NativeContentProtectionEvent {\n drmConfig: DRMConfiguration;\n}\n\ninterface ExtractFaiplayContentIdEvent extends NativeContentProtectionEvent {\n fairplaySkdUrl: string;\n}\n\nexport class NativeContentProtectionRegistry implements ContentProtectionAPI {\n private emitter: NativeEventEmitter;\n private registeredFactories: WrappedContentProtectionIntegrationFactory[] = [];\n private currentIntegration: WrappedContentProtectionIntegration | undefined = undefined;\n\n constructor() {\n this.emitter = new NativeEventEmitter(NativeModules.ContentProtectionModule);\n this.emitter.addListener('onBuildIntegration', this.onBuildIntegrationRequest);\n this.emitter.addListener('onCertificateRequest', this.onCertificateRequest);\n this.emitter.addListener('onCertificateResponse', this.onCertificateResponse);\n this.emitter.addListener('onLicenseRequest', this.onLicenseRequest);\n this.emitter.addListener('onLicenseResponse', this.onLicenseResponse);\n this.emitter.addListener('onExtractFairplayContentId', this.onExtractFairplayContentId);\n }\n\n registerContentProtectionIntegration(integrationId: string, keySystemId: KeySystemId, integrationFactory: ContentProtectionIntegrationFactory) {\n this.registeredFactories.push({\n integrationId,\n keySystemId,\n integrationFactory,\n });\n NativeModules.ContentProtectionModule.registerContentProtectionIntegration(integrationId, keySystemId);\n }\n\n private getFactory(integrationId: string, keySystemId: string): ContentProtectionIntegrationFactory | undefined {\n return this.registeredFactories.find((init) => init.integrationId === integrationId && init.keySystemId === keySystemId)?.integrationFactory;\n }\n\n private getIntegration(integrationId: string, keySystemId: string): ContentProtectionIntegration | undefined {\n return this.currentIntegration?.integrationId === integrationId && this.currentIntegration?.keySystemId === keySystemId\n ? this.currentIntegration?.integration\n : undefined;\n }\n\n private onBuildIntegrationRequest = (event: BuildEvent) => {\n const { requestId, integrationId, keySystemId, drmConfig } = event;\n console.log('ContentProtectionModule', `onBuildIntegrationRequest ${integrationId} ${keySystemId}`);\n const factory = this.getFactory(integrationId, keySystemId);\n if (factory) {\n this.currentIntegration = {\n integrationId,\n keySystemId,\n integration: factory.build(drmConfig),\n };\n NativeModules.ContentProtectionModule.onBuildProcessed({ requestId, resultString: 'success' });\n } else {\n NativeModules.ContentProtectionModule.onBuildProcessed({\n requestId,\n resultString: 'failed',\n });\n }\n };\n\n private onCertificateRequest = async (request: NativeCertificateRequest) => {\n const { requestId, integrationId, keySystemId } = request;\n console.log('ContentProtectionModule', `onCertificateRequest ${integrationId} ${keySystemId}`);\n const integration = this.getIntegration(integrationId, keySystemId);\n if (integration?.onCertificateRequest) {\n const result = await integration.onCertificateRequest(fromNativeCertificateRequest(request));\n // TODO: we also want to support ArrayBufferView results\n if (isBufferSource(result)) {\n const nativeResponse = toNativeCertificateResponseResult(requestId, integrationId, keySystemId, result as ArrayBuffer);\n NativeModules.ContentProtectionModule.onCertificateRequestProcessedAsCertificate(nativeResponse);\n } else if (result as CertificateRequest) {\n const modifiedNativeRequest = toNativeCertificateRequest(requestId, integrationId, keySystemId, result as CertificateRequest);\n NativeModules.ContentProtectionModule.onCertificateRequestProcessedAsRequest(modifiedNativeRequest);\n }\n } else {\n NativeModules.ContentProtectionModule.onCertificateRequestProcessedAsRequest(request);\n }\n };\n\n private onCertificateResponse = async (response: NativeCertificateResponse) => {\n const { requestId, integrationId, keySystemId } = response;\n console.log('ContentProtectionModule', `onCertificateResponse ${integrationId} ${keySystemId}`);\n const integration = this.getIntegration(integrationId, keySystemId);\n if (integration?.onCertificateResponse) {\n const responseResult = await integration.onCertificateResponse(fromNativeCertificateResponse(response));\n // TODO: we also want to support ArrayBufferView results\n const modifiedNativeResponse = toNativeCertificateResponseResult(requestId, integrationId, keySystemId, responseResult as ArrayBuffer);\n NativeModules.ContentProtectionModule.onCertificateResponseProcessed(modifiedNativeResponse);\n } else {\n NativeModules.ContentProtectionModule.onCertificateResponseProcessed(response);\n }\n };\n\n private onLicenseRequest = async (request: NativeLicenseRequest) => {\n const { requestId, integrationId, keySystemId } = request;\n console.log('ContentProtectionModule', `onLicenseRequest ${integrationId} ${keySystemId}`);\n const integration = this.getIntegration(integrationId, keySystemId);\n // Optionally let the custom integration modify the request.\n if (integration?.onLicenseRequest) {\n const result = await integration.onLicenseRequest(fromNativeLicenseRequest(request));\n // TODO: we also want to support ArrayBufferView results\n if (isBufferSource(result)) {\n const nativeResponse = toNativeLicenseResponseResult(requestId, integrationId, keySystemId, result as ArrayBuffer);\n NativeModules.ContentProtectionModule.onLicenseRequestProcessedAsLicense(nativeResponse);\n } else if (result as LicenseRequest) {\n const modifiedNativeRequest = toNativeLicenseRequest(requestId, integrationId, keySystemId, result as LicenseRequest);\n NativeModules.ContentProtectionModule.onLicenseRequestProcessedAsRequest(modifiedNativeRequest);\n }\n } else {\n NativeModules.ContentProtectionModule.onLicenseRequestProcessedAsRequest(request);\n }\n };\n\n private onLicenseResponse = async (response: NativeLicenseResponse) => {\n const { requestId, integrationId, keySystemId } = response;\n console.log('ContentProtectionModule', `onLicenseResponse ${integrationId} ${keySystemId}`);\n const integration = this.getIntegration(integrationId, keySystemId);\n if (integration?.onLicenseResponse) {\n const responseResult = await integration.onLicenseResponse(fromNativeLicenseResponse(response));\n // TODO: we also want to support ArrayBufferView results\n const modifiedNativeResponse = toNativeLicenseResponseResult(requestId, integrationId, keySystemId, responseResult as ArrayBuffer);\n NativeModules.ContentProtectionModule.onLicenseResponseProcessed(modifiedNativeResponse);\n } else {\n NativeModules.ContentProtectionModule.onLicenseResponseProcessed(response);\n }\n };\n\n private onExtractFairplayContentId = async (event: ExtractFaiplayContentIdEvent) => {\n const { integrationId, keySystemId, fairplaySkdUrl, requestId } = event;\n console.log('ContentProtectionModule', `onExtractFairplayContentId ${integrationId} ${keySystemId}`);\n const integration = this.getIntegration(integrationId, keySystemId);\n if (integration?.extractFairplayContentId) {\n const contentId = await integration.extractFairplayContentId(fairplaySkdUrl);\n NativeModules.ContentProtectionModule.onExtractFairplayContentIdProcessed({\n requestId,\n contentId,\n });\n } else {\n const contentId = fairplaySkdUrl;\n NativeModules.ContentProtectionModule.onExtractFairplayContentIdProcessed({\n requestId,\n contentId,\n });\n }\n };\n}\n\nexport const ContentProtectionRegistry = new NativeContentProtectionRegistry();\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_NativeLicenseRequest","_NativeLicenseResponse","_NativeCertificateRequest","_NativeCertificateResponse","_TypeUtils","_defineProperty","obj","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","NativeContentProtectionModule","NativeModules","THEORCTContentProtectionModule","NativeContentProtectionRegistry","constructor","event","requestId","integrationId","keySystemId","drmConfig","console","log","factory","getFactory","currentIntegration","integration","build","onBuildProcessed","resultString","request","getIntegration","onCertificateRequest","result","fromNativeCertificateRequest","isBufferSource","nativeResponse","toNativeCertificateResponseResult","onCertificateRequestProcessedAsCertificate","modifiedNativeRequest","toNativeCertificateRequest","onCertificateRequestProcessedAsRequest","response","onCertificateResponse","responseResult","fromNativeCertificateResponse","modifiedNativeResponse","onCertificateResponseProcessed","onLicenseRequest","fromNativeLicenseRequest","toNativeLicenseResponseResult","onLicenseRequestProcessedAsLicense","toNativeLicenseRequest","onLicenseRequestProcessedAsRequest","onLicenseResponse","fromNativeLicenseResponse","onLicenseResponseProcessed","fairplaySkdUrl","extractFairplayContentId","contentId","onExtractFairplayContentIdProcessed","emitter","NativeEventEmitter","addListener","onBuildIntegrationRequest","onExtractFairplayContentId","registerContentProtectionIntegration","integrationFactory","registeredFactories","push","_this$registeredFacto","find","init","_this$currentIntegrat","_this$currentIntegrat2","_this$currentIntegrat3","exports","ContentProtectionRegistry"],"sources":["ContentProtectionRegistry.ts"],"sourcesContent":["import type { CertificateRequest, ContentProtectionAPI, DRMConfiguration, LicenseRequest } from 'react-native-theoplayer';\nimport type { KeySystemId } from 'react-native-theoplayer';\nimport type { ContentProtectionIntegrationFactory } from 'react-native-theoplayer';\nimport { NativeEventEmitter, NativeModules } from 'react-native';\nimport type { ContentProtectionIntegration } from 'react-native-theoplayer';\nimport type { NativeContentProtectionEvent } from './NativeContentProtectionEvent';\nimport { fromNativeLicenseRequest, NativeLicenseRequest, toNativeLicenseRequest } from './NativeLicenseRequest';\nimport { fromNativeLicenseResponse, NativeLicenseResponse, toNativeLicenseResponseResult } from './NativeLicenseResponse';\nimport { fromNativeCertificateRequest, NativeCertificateRequest, toNativeCertificateRequest } from './NativeCertificateRequest';\nimport { fromNativeCertificateResponse, NativeCertificateResponse, toNativeCertificateResponseResult } from './NativeCertificateResponse';\nimport { isBufferSource } from '../utils/TypeUtils';\n\nconst NativeContentProtectionModule = NativeModules.THEORCTContentProtectionModule;\n\ninterface WrappedContentProtectionIntegrationFactory {\n integrationId: string;\n keySystemId: string;\n integrationFactory: ContentProtectionIntegrationFactory;\n}\n\ninterface WrappedContentProtectionIntegration {\n integrationId: string;\n keySystemId: string;\n integration: ContentProtectionIntegration;\n}\n\ninterface BuildEvent extends NativeContentProtectionEvent {\n drmConfig: DRMConfiguration;\n}\n\ninterface ExtractFaiplayContentIdEvent extends NativeContentProtectionEvent {\n fairplaySkdUrl: string;\n}\n\nexport class NativeContentProtectionRegistry implements ContentProtectionAPI {\n private emitter: NativeEventEmitter;\n private registeredFactories: WrappedContentProtectionIntegrationFactory[] = [];\n private currentIntegration: WrappedContentProtectionIntegration | undefined = undefined;\n\n constructor() {\n this.emitter = new NativeEventEmitter(NativeContentProtectionModule);\n this.emitter.addListener('onBuildIntegration', this.onBuildIntegrationRequest);\n this.emitter.addListener('onCertificateRequest', this.onCertificateRequest);\n this.emitter.addListener('onCertificateResponse', this.onCertificateResponse);\n this.emitter.addListener('onLicenseRequest', this.onLicenseRequest);\n this.emitter.addListener('onLicenseResponse', this.onLicenseResponse);\n this.emitter.addListener('onExtractFairplayContentId', this.onExtractFairplayContentId);\n }\n\n registerContentProtectionIntegration(integrationId: string, keySystemId: KeySystemId, integrationFactory: ContentProtectionIntegrationFactory) {\n this.registeredFactories.push({\n integrationId,\n keySystemId,\n integrationFactory,\n });\n NativeContentProtectionModule.registerContentProtectionIntegration(integrationId, keySystemId);\n }\n\n private getFactory(integrationId: string, keySystemId: string): ContentProtectionIntegrationFactory | undefined {\n return this.registeredFactories.find((init) => init.integrationId === integrationId && init.keySystemId === keySystemId)?.integrationFactory;\n }\n\n private getIntegration(integrationId: string, keySystemId: string): ContentProtectionIntegration | undefined {\n return this.currentIntegration?.integrationId === integrationId && this.currentIntegration?.keySystemId === keySystemId\n ? this.currentIntegration?.integration\n : undefined;\n }\n\n private onBuildIntegrationRequest = (event: BuildEvent) => {\n const { requestId, integrationId, keySystemId, drmConfig } = event;\n console.log('NativeContentProtectionModule', `onBuildIntegrationRequest ${integrationId} ${keySystemId}`);\n const factory = this.getFactory(integrationId, keySystemId);\n if (factory) {\n this.currentIntegration = {\n integrationId,\n keySystemId,\n integration: factory.build(drmConfig),\n };\n NativeContentProtectionModule.onBuildProcessed({ requestId, resultString: 'success' });\n } else {\n NativeContentProtectionModule.onBuildProcessed({\n requestId,\n resultString: 'failed',\n });\n }\n };\n\n private onCertificateRequest = async (request: NativeCertificateRequest) => {\n const { requestId, integrationId, keySystemId } = request;\n console.log('NativeContentProtectionModule', `onCertificateRequest ${integrationId} ${keySystemId}`);\n const integration = this.getIntegration(integrationId, keySystemId);\n if (integration?.onCertificateRequest) {\n const result = await integration.onCertificateRequest(fromNativeCertificateRequest(request));\n // TODO: we also want to support ArrayBufferView results\n if (isBufferSource(result)) {\n const nativeResponse = toNativeCertificateResponseResult(requestId, integrationId, keySystemId, result as ArrayBuffer);\n NativeContentProtectionModule.onCertificateRequestProcessedAsCertificate(nativeResponse);\n } else if (result as CertificateRequest) {\n const modifiedNativeRequest = toNativeCertificateRequest(requestId, integrationId, keySystemId, result as CertificateRequest);\n NativeContentProtectionModule.onCertificateRequestProcessedAsRequest(modifiedNativeRequest);\n }\n } else {\n NativeContentProtectionModule.onCertificateRequestProcessedAsRequest(request);\n }\n };\n\n private onCertificateResponse = async (response: NativeCertificateResponse) => {\n const { requestId, integrationId, keySystemId } = response;\n console.log('NativeContentProtectionModule', `onCertificateResponse ${integrationId} ${keySystemId}`);\n const integration = this.getIntegration(integrationId, keySystemId);\n if (integration?.onCertificateResponse) {\n const responseResult = await integration.onCertificateResponse(fromNativeCertificateResponse(response));\n // TODO: we also want to support ArrayBufferView results\n const modifiedNativeResponse = toNativeCertificateResponseResult(requestId, integrationId, keySystemId, responseResult as ArrayBuffer);\n NativeContentProtectionModule.onCertificateResponseProcessed(modifiedNativeResponse);\n } else {\n NativeContentProtectionModule.onCertificateResponseProcessed(response);\n }\n };\n\n private onLicenseRequest = async (request: NativeLicenseRequest) => {\n const { requestId, integrationId, keySystemId } = request;\n console.log('NativeContentProtectionModule', `onLicenseRequest ${integrationId} ${keySystemId}`);\n const integration = this.getIntegration(integrationId, keySystemId);\n // Optionally let the custom integration modify the request.\n if (integration?.onLicenseRequest) {\n const result = await integration.onLicenseRequest(fromNativeLicenseRequest(request));\n // TODO: we also want to support ArrayBufferView results\n if (isBufferSource(result)) {\n const nativeResponse = toNativeLicenseResponseResult(requestId, integrationId, keySystemId, result as ArrayBuffer);\n NativeContentProtectionModule.onLicenseRequestProcessedAsLicense(nativeResponse);\n } else if (result as LicenseRequest) {\n const modifiedNativeRequest = toNativeLicenseRequest(requestId, integrationId, keySystemId, result as LicenseRequest);\n NativeContentProtectionModule.onLicenseRequestProcessedAsRequest(modifiedNativeRequest);\n }\n } else {\n NativeContentProtectionModule.onLicenseRequestProcessedAsRequest(request);\n }\n };\n\n private onLicenseResponse = async (response: NativeLicenseResponse) => {\n const { requestId, integrationId, keySystemId } = response;\n console.log('NativeContentProtectionModule', `onLicenseResponse ${integrationId} ${keySystemId}`);\n const integration = this.getIntegration(integrationId, keySystemId);\n if (integration?.onLicenseResponse) {\n const responseResult = await integration.onLicenseResponse(fromNativeLicenseResponse(response));\n // TODO: we also want to support ArrayBufferView results\n const modifiedNativeResponse = toNativeLicenseResponseResult(requestId, integrationId, keySystemId, responseResult as ArrayBuffer);\n NativeContentProtectionModule.onLicenseResponseProcessed(modifiedNativeResponse);\n } else {\n NativeContentProtectionModule.onLicenseResponseProcessed(response);\n }\n };\n\n private onExtractFairplayContentId = async (event: ExtractFaiplayContentIdEvent) => {\n const { integrationId, keySystemId, fairplaySkdUrl, requestId } = event;\n console.log('NativeContentProtectionModule', `onExtractFairplayContentId ${integrationId} ${keySystemId}`);\n const integration = this.getIntegration(integrationId, keySystemId);\n if (integration?.extractFairplayContentId) {\n const contentId = await integration.extractFairplayContentId(fairplaySkdUrl);\n NativeContentProtectionModule.onExtractFairplayContentIdProcessed({\n requestId,\n contentId,\n });\n } else {\n const contentId = fairplaySkdUrl;\n NativeContentProtectionModule.onExtractFairplayContentIdProcessed({\n requestId,\n contentId,\n });\n }\n };\n}\n\nexport const ContentProtectionRegistry = new NativeContentProtectionRegistry();\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["PlayerConfiguration.ts"],"sourcesContent":["import type { AdsConfiguration } from '../ads/AdsConfiguration';\nimport type { CastConfiguration } from '../cast/CastConfiguration';\nimport type { MediaControlConfiguration } from '../media/MediaControlConfiguration';\nimport type { RetryConfiguration } from '../utils/RetryConfiguration';\nimport type { UIConfiguration } from '../ui/UIConfiguration';\n\nexport interface PlayerConfiguration {\n /**\n * The directory in which the THEOplayer library worker files are located.\n * These worker files are THEOplayer.transmux.*\n *\n * @remarks\n * <br/> - This parameter is required when using a HLS source and has no default.\n *\n * @example\n * `'/lib/theoplayer/'`\n */\n libraryLocation?: string;\n\n /**\n * The muted autoplay policy for web.\n *\n * @remarks\n * <br/> - The muted autoplay policy is impacted by this property and {@link SourceConfiguration.mutedAutoplay}.\n *\n * @defaultValue `'none'`.\n */\n mutedAutoplay?: MutedAutoplayConfiguration;\n\n /**\n * The ads configuration for the player.\n */\n ads?: AdsConfiguration;\n\n /**\n * The cast configuration for the player.\n */\n cast?: CastConfiguration;\n\n /**\n * The ui configuration for the underlying native player. Applies to Ad UI.\n */\n ui?: UIConfiguration;\n\n /**\n * The configuration of media controls and media sessions across platforms.\n */\n mediaControl?: MediaControlConfiguration;\n\n /**\n * The license for the player\n */\n readonly license?: string;\n\n /**\n * The url to fetch the license for the player\n */\n readonly licenseUrl?: string;\n\n /**\n * Sets whether the native player is chromeless (without UI).\n *\n * @remarks\n * <br/> - This parameter only applies to Web platforms.\n */\n readonly chromeless?: boolean;\n\n /**\n * Sets whether DateRange tags from the playlists should be imported as a textTrack.\n */\n readonly hlsDateRange?: boolean;\n\n /**\n * The retry configuration for the player.\n *\n * @remarks\n * <br/> - This parameter only applies to Web and Android platforms.\n */\n readonly retryConfiguration?: RetryConfiguration;\n}\n\n/**\n * The muted autoplay policy of a player for web.\n * <br/> - `'none'`: Disallow muted autoplay. If the player is requested to autoplay while unmuted, and the platform does not support unmuted autoplay, the player will not start playback.\n * <br/> - `'all'`: Allow muted autoplay. If the player is requested to autoplay while unmuted, and the platform supports muted autoplay, the player will start muted playback.\n * <br/> - `'content'`: Allow muted autoplay only for the main content. Disallow muted autoplay for e.g. advertisements. (Not yet supported.)\n *\n * @public\n */\nexport type MutedAutoplayConfiguration = 'none' | 'all' | 'content';\n"],"mappings":""}
|
|
1
|
+
{"version":3,"names":[],"sources":["PlayerConfiguration.ts"],"sourcesContent":["import type { AdsConfiguration } from '../ads/AdsConfiguration';\nimport type { CastConfiguration } from '../cast/CastConfiguration';\nimport type { MediaControlConfiguration } from '../media/MediaControlConfiguration';\nimport type { RetryConfiguration } from '../utils/RetryConfiguration';\nimport type { UIConfiguration } from '../ui/UIConfiguration';\n\nexport interface PlayerConfiguration {\n /**\n * The directory in which the THEOplayer library worker files are located.\n * These worker files are THEOplayer.transmux.*\n *\n * @remarks\n * <br/> - This parameter is required when using a HLS source and has no default.\n *\n * @example\n * `'/lib/theoplayer/'`\n */\n libraryLocation?: string;\n\n /**\n * The muted autoplay policy for web.\n *\n * @remarks\n * <br/> - The muted autoplay policy is impacted by this property and {@link SourceConfiguration.mutedAutoplay}.\n *\n * @defaultValue `'none'`.\n */\n mutedAutoplay?: MutedAutoplayConfiguration;\n\n /**\n * The ads configuration for the player.\n */\n ads?: AdsConfiguration;\n\n /**\n * The cast configuration for the player.\n */\n cast?: CastConfiguration;\n\n /**\n * The ui configuration for the underlying native player. Applies to Ad UI.\n */\n ui?: UIConfiguration;\n\n /**\n * The configuration of media controls and media sessions across platforms.\n */\n mediaControl?: MediaControlConfiguration;\n\n /**\n * The license for the player\n */\n readonly license?: string;\n\n /**\n * The url to fetch the license for the player\n */\n readonly licenseUrl?: string;\n\n /**\n * Sets whether the native player is chromeless (without UI).\n *\n * @remarks\n * <br/> - This parameter only applies to Web platforms.\n */\n readonly chromeless?: boolean;\n\n /**\n * Sets whether DateRange tags from the playlists should be imported as a textTrack.\n */\n readonly hlsDateRange?: boolean;\n\n /**\n * The retry configuration for the player.\n *\n * @remarks\n * <br/> - This parameter only applies to Web and Android platforms.\n */\n readonly retryConfiguration?: RetryConfiguration;\n\n /**\n * The offset in seconds used to determine the live point.\n * This live point is the end of the manifest minus the provided offset.\n *\n * @defaultValue Three times the target duration of a segment, as specified by the manifest.\n *\n * @remarks\n * <br/> - This parameter only applies to Web and Android platforms.\n */\n liveOffset?: number;\n}\n\n/**\n * The muted autoplay policy of a player for web.\n * <br/> - `'none'`: Disallow muted autoplay. If the player is requested to autoplay while unmuted, and the platform does not support unmuted autoplay, the player will not start playback.\n * <br/> - `'all'`: Allow muted autoplay. If the player is requested to autoplay while unmuted, and the platform supports muted autoplay, the player will start muted playback.\n * <br/> - `'content'`: Allow muted autoplay only for the main content. Disallow muted autoplay for e.g. advertisements. (Not yet supported.)\n *\n * @public\n */\nexport type MutedAutoplayConfiguration = 'none' | 'all' | 'content';\n"],"mappings":""}
|
|
@@ -9,6 +9,7 @@ import { AbrAdapter } from './abr/AbrAdapter';
|
|
|
9
9
|
import { NativeModules, Platform, StatusBar } from 'react-native';
|
|
10
10
|
import { TextTrackStyleAdapter } from './track/TextTrackStyleAdapter';
|
|
11
11
|
import { EventBroadcastAdapter } from './broadcast/EventBroadcastAdapter';
|
|
12
|
+
const NativePlayerModule = NativeModules.THEORCTPlayerModule;
|
|
12
13
|
const defaultPlayerState = {
|
|
13
14
|
source: undefined,
|
|
14
15
|
autoplay: false,
|
|
@@ -243,7 +244,7 @@ export class THEOplayerAdapter extends DefaultEventDispatcher {
|
|
|
243
244
|
}
|
|
244
245
|
set preload(type) {
|
|
245
246
|
this._state.preload = type;
|
|
246
|
-
|
|
247
|
+
NativePlayerModule.setPreload(this._view.nativeHandle, type);
|
|
247
248
|
}
|
|
248
249
|
get preload() {
|
|
249
250
|
return this._state.preload;
|
|
@@ -278,7 +279,7 @@ export class THEOplayerAdapter extends DefaultEventDispatcher {
|
|
|
278
279
|
seekTime = this.seekableEnd();
|
|
279
280
|
}
|
|
280
281
|
this._state.currentTime = seekTime;
|
|
281
|
-
|
|
282
|
+
NativePlayerModule.setCurrentTime(this._view.nativeHandle, seekTime);
|
|
282
283
|
}
|
|
283
284
|
get duration() {
|
|
284
285
|
return this._state.duration;
|
|
@@ -288,28 +289,28 @@ export class THEOplayerAdapter extends DefaultEventDispatcher {
|
|
|
288
289
|
}
|
|
289
290
|
set pipConfiguration(pipConfiguration) {
|
|
290
291
|
this._state.pipConfig = pipConfiguration;
|
|
291
|
-
|
|
292
|
+
NativePlayerModule.setPipConfig(this._view.nativeHandle, pipConfiguration);
|
|
292
293
|
}
|
|
293
294
|
get backgroundAudioConfiguration() {
|
|
294
295
|
return this._state.backgroundAudioConfig;
|
|
295
296
|
}
|
|
296
297
|
set backgroundAudioConfiguration(backgroundAudioConfiguration) {
|
|
297
298
|
this._state.backgroundAudioConfig = backgroundAudioConfiguration;
|
|
298
|
-
|
|
299
|
+
NativePlayerModule.setBackgroundAudioConfig(this._view.nativeHandle, backgroundAudioConfiguration);
|
|
299
300
|
}
|
|
300
301
|
get presentationMode() {
|
|
301
302
|
return this._state.presentationMode;
|
|
302
303
|
}
|
|
303
304
|
set presentationMode(presentationMode) {
|
|
304
305
|
this._state.presentationMode = presentationMode;
|
|
305
|
-
|
|
306
|
+
NativePlayerModule.setPresentationMode(this._view.nativeHandle, presentationMode);
|
|
306
307
|
}
|
|
307
308
|
get muted() {
|
|
308
309
|
return this._state.muted;
|
|
309
310
|
}
|
|
310
311
|
set muted(muted) {
|
|
311
312
|
this._state.muted = muted;
|
|
312
|
-
|
|
313
|
+
NativePlayerModule.setMuted(this._view.nativeHandle, muted);
|
|
313
314
|
}
|
|
314
315
|
get seeking() {
|
|
315
316
|
return this._state.seeking;
|
|
@@ -322,7 +323,7 @@ export class THEOplayerAdapter extends DefaultEventDispatcher {
|
|
|
322
323
|
}
|
|
323
324
|
set playbackRate(playbackRate) {
|
|
324
325
|
this._state.playbackRate = playbackRate;
|
|
325
|
-
|
|
326
|
+
NativePlayerModule.setPlaybackRate(this._view.nativeHandle, playbackRate);
|
|
326
327
|
}
|
|
327
328
|
get audioTracks() {
|
|
328
329
|
return this._state.audioTracks;
|
|
@@ -335,7 +336,7 @@ export class THEOplayerAdapter extends DefaultEventDispatcher {
|
|
|
335
336
|
return;
|
|
336
337
|
}
|
|
337
338
|
this._state.selectedAudioTrack = trackUid;
|
|
338
|
-
|
|
339
|
+
NativePlayerModule.setSelectedAudioTrack(this._view.nativeHandle, trackUid !== undefined ? trackUid : -1);
|
|
339
340
|
}
|
|
340
341
|
get videoTracks() {
|
|
341
342
|
return this._state.videoTracks;
|
|
@@ -349,7 +350,7 @@ export class THEOplayerAdapter extends DefaultEventDispatcher {
|
|
|
349
350
|
}
|
|
350
351
|
this._state.selectedVideoTrack = trackUid;
|
|
351
352
|
this._state.targetVideoQuality = undefined;
|
|
352
|
-
|
|
353
|
+
NativePlayerModule.setSelectedVideoTrack(this._view.nativeHandle, trackUid !== undefined ? trackUid : -1);
|
|
353
354
|
}
|
|
354
355
|
get textTracks() {
|
|
355
356
|
return this._state.textTracks;
|
|
@@ -369,7 +370,7 @@ export class THEOplayerAdapter extends DefaultEventDispatcher {
|
|
|
369
370
|
track.mode = TextTrackMode.disabled;
|
|
370
371
|
}
|
|
371
372
|
});
|
|
372
|
-
|
|
373
|
+
NativePlayerModule.setSelectedTextTrack(this._view.nativeHandle, trackUid !== undefined ? trackUid : -1);
|
|
373
374
|
}
|
|
374
375
|
get textTrackStyle() {
|
|
375
376
|
return this._textTrackStyleAdapter;
|
|
@@ -381,7 +382,7 @@ export class THEOplayerAdapter extends DefaultEventDispatcher {
|
|
|
381
382
|
// This is to correctly reset autoplay during a source change.
|
|
382
383
|
this.pause();
|
|
383
384
|
this._state.source = source;
|
|
384
|
-
|
|
385
|
+
NativePlayerModule.setSource(this._view.nativeHandle, source);
|
|
385
386
|
// Reset state for play-out of new source
|
|
386
387
|
Object.assign(this._state, {
|
|
387
388
|
playbackRate: 1,
|
|
@@ -415,21 +416,21 @@ export class THEOplayerAdapter extends DefaultEventDispatcher {
|
|
|
415
416
|
targetQuality: this._state.targetVideoQuality
|
|
416
417
|
});
|
|
417
418
|
}
|
|
418
|
-
|
|
419
|
+
NativePlayerModule.setTargetVideoQuality(this._view.nativeHandle, this._state.targetVideoQuality);
|
|
419
420
|
}
|
|
420
421
|
get volume() {
|
|
421
422
|
return this._state.volume;
|
|
422
423
|
}
|
|
423
424
|
set volume(volume) {
|
|
424
425
|
this._state.volume = volume;
|
|
425
|
-
|
|
426
|
+
NativePlayerModule.setVolume(this._view.nativeHandle, volume);
|
|
426
427
|
}
|
|
427
428
|
get aspectRatio() {
|
|
428
429
|
return this._state.aspectRatio;
|
|
429
430
|
}
|
|
430
431
|
set aspectRatio(ratio) {
|
|
431
432
|
this._state.aspectRatio = ratio;
|
|
432
|
-
|
|
433
|
+
NativePlayerModule.setAspectRatio(this._view.nativeHandle, ratio);
|
|
433
434
|
}
|
|
434
435
|
get keepScreenOn() {
|
|
435
436
|
return this._state.keepScreenOn;
|
|
@@ -437,19 +438,19 @@ export class THEOplayerAdapter extends DefaultEventDispatcher {
|
|
|
437
438
|
set keepScreenOn(value) {
|
|
438
439
|
this._state.keepScreenOn = value;
|
|
439
440
|
if (Platform.OS === 'android') {
|
|
440
|
-
|
|
441
|
+
NativePlayerModule.setKeepScreenOn(this._view.nativeHandle, value);
|
|
441
442
|
}
|
|
442
443
|
}
|
|
443
444
|
pause() {
|
|
444
445
|
if (this.hasValidSource()) {
|
|
445
446
|
this._state.paused = true;
|
|
446
|
-
|
|
447
|
+
NativePlayerModule.setPaused(this._view.nativeHandle, true);
|
|
447
448
|
}
|
|
448
449
|
}
|
|
449
450
|
play() {
|
|
450
451
|
if (this.hasValidSource()) {
|
|
451
452
|
this._state.paused = false;
|
|
452
|
-
|
|
453
|
+
NativePlayerModule.setPaused(this._view.nativeHandle, false);
|
|
453
454
|
}
|
|
454
455
|
}
|
|
455
456
|
get version() {
|
|
@@ -469,8 +470,8 @@ export class THEOplayerAdapter extends DefaultEventDispatcher {
|
|
|
469
470
|
this._playerVersion = version;
|
|
470
471
|
if (state) {
|
|
471
472
|
Object.assign(this._state, state);
|
|
472
|
-
this._castAdapter.init_();
|
|
473
473
|
}
|
|
474
|
+
this._castAdapter.init_();
|
|
474
475
|
}
|
|
475
476
|
}
|
|
476
477
|
//# sourceMappingURL=THEOplayerAdapter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["DefaultEventDispatcher","addTextTrackCue","addTrack","AspectRatio","findMediaTrackByUid","findTextTrackByUid","MediaTrackEventType","MediaTrackType","PlayerEventType","PresentationMode","removeTextTrackCue","removeTrack","TextTrackEventType","TextTrackMode","TrackListEventType","THEOplayerNativeAdsAdapter","THEOplayerNativeCastAdapter","AbrAdapter","NativeModules","Platform","StatusBar","TextTrackStyleAdapter","EventBroadcastAdapter","defaultPlayerState","source","undefined","autoplay","paused","seekable","buffered","pipConfig","startsAutomatically","backgroundAudioConfig","enabled","presentationMode","inline","muted","seeking","volume","currentTime","duration","NaN","playbackRate","preload","aspectRatio","FIT","keepScreenOn","audioTracks","videoTracks","textTracks","targetVideoQuality","selectedVideoTrack","selectedAudioTrack","selectedTextTrack","THEOplayerAdapter","constructor","view","initialState","arguments","length","_defineProperty","applyAutoplay","_state","event","OS","setHidden","fullscreen","isFinite","start","end","_event$seekable","_event$buffered","sort","a","b","subType","cue","trackUid","track","ADD_CUE","REMOVE_CUE","ADD_TRACK","REMOVE_TRACK","CHANGE_TRACK","trackType","tracks","VIDEO","ACTIVE_QUALITY_CHANGED","Object","assign","activeQuality","qualities","isAudio","AUDIO","_view","_adsAdapter","_castAdapter","_abrAdapter","_textTrackStyleAdapter","addEventListener","SOURCE_CHANGE","onSourceChange","LOADED_METADATA","onLoadedMetadata","PAUSE","onPause","PLAYING","onPlaying","TIME_UPDATE","onTimeupdate","DURATION_CHANGE","onDurationChange","RATE_CHANGE","onRateChange","SEEKING","onSeeking","SEEKED","onSeeked","PROGRESS","onProgress","TEXT_TRACK_LIST","onTextTrackList","TEXT_TRACK","onTextTrack","MEDIA_TRACK","onMediaTrack","MEDIA_TRACK_LIST","onMediaTrackList","PRESENTATIONMODE_CHANGE","onPresentationModeChange","hasValidSource","abr","ads","play","pause","type","PlayerModule","setPreload","nativeHandle","seekableEnd","ranges","cast","isNaN","seekTime","Infinity","setCurrentTime","pipConfiguration","setPipConfig","backgroundAudioConfiguration","setBackgroundAudioConfig","setPresentationMode","setMuted","setPlaybackRate","setSelectedAudioTrack","setSelectedVideoTrack","forEach","uid","mode","showing","disabled","setSelectedTextTrack","textTrackStyle","setSource","target","Array","isArray","targetQuality","setTargetVideoQuality","setVolume","ratio","setAspectRatio","value","setKeepScreenOn","setPaused","version","_playerVersion","broadcast","_externalEventRouter","initializeFromNativePlayer_","state","init_"],"sources":["THEOplayerAdapter.ts"],"sourcesContent":["import { DefaultEventDispatcher } from './event/DefaultEventDispatcher';\nimport type {\n ABRConfiguration,\n AdsAPI,\n CastAPI,\n DurationChangeEvent,\n EventBroadcastAPI,\n LoadedMetadataEvent,\n MediaTrack,\n MediaTrackEvent,\n MediaTrackListEvent,\n NativeHandleType,\n PiPConfiguration,\n PlayerEventMap,\n PresentationModeChangeEvent,\n ProgressEvent,\n RateChangeEvent,\n SourceDescription,\n TextTrack,\n TextTrackEvent,\n TextTrackListEvent,\n THEOplayer,\n THEOplayerView,\n TimeUpdateEvent,\n} from 'react-native-theoplayer';\nimport {\n addTextTrackCue,\n addTrack,\n AspectRatio,\n BackgroundAudioConfiguration,\n findMediaTrackByUid,\n findTextTrackByUid,\n MediaTrackEventType,\n MediaTrackType,\n PlayerEventType,\n PlayerVersion,\n PreloadType,\n PresentationMode,\n removeTextTrackCue,\n removeTrack,\n TextTrackEventType,\n TextTrackMode,\n TextTrackStyle,\n TrackListEventType,\n} from 'react-native-theoplayer';\nimport { THEOplayerNativeAdsAdapter } from './ads/THEOplayerNativeAdsAdapter';\nimport { THEOplayerNativeCastAdapter } from './cast/THEOplayerNativeCastAdapter';\nimport { AbrAdapter } from './abr/AbrAdapter';\nimport { NativeModules, Platform, StatusBar } from 'react-native';\nimport { TextTrackStyleAdapter } from './track/TextTrackStyleAdapter';\nimport type { NativePlayerState } from './NativePlayerState';\nimport { EventBroadcastAdapter } from './broadcast/EventBroadcastAdapter';\n\nconst defaultPlayerState: NativePlayerState = {\n source: undefined,\n autoplay: false,\n paused: false,\n seekable: [],\n buffered: [],\n pipConfig: { startsAutomatically: false },\n backgroundAudioConfig: { enabled: false },\n presentationMode: PresentationMode.inline,\n muted: false,\n seeking: false,\n volume: 1,\n currentTime: 0,\n duration: NaN,\n playbackRate: 1,\n preload: 'none',\n aspectRatio: AspectRatio.FIT,\n keepScreenOn: true,\n audioTracks: [],\n videoTracks: [],\n textTracks: [],\n targetVideoQuality: undefined,\n selectedVideoTrack: undefined,\n selectedAudioTrack: undefined,\n selectedTextTrack: undefined,\n};\n\nexport class THEOplayerAdapter extends DefaultEventDispatcher<PlayerEventMap> implements THEOplayer {\n private readonly _view: THEOplayerView;\n private readonly _state: NativePlayerState;\n private readonly _adsAdapter: THEOplayerNativeAdsAdapter;\n private readonly _castAdapter: THEOplayerNativeCastAdapter;\n private readonly _abrAdapter: AbrAdapter;\n private readonly _textTrackStyleAdapter: TextTrackStyleAdapter;\n private _externalEventRouter: EventBroadcastAPI | undefined = undefined;\n private _playerVersion!: PlayerVersion;\n\n constructor(view: THEOplayerView, initialState: NativePlayerState = defaultPlayerState) {\n super();\n this._view = view;\n this._state = { ...initialState };\n this._adsAdapter = new THEOplayerNativeAdsAdapter(this._view);\n this._castAdapter = new THEOplayerNativeCastAdapter(this, this._view);\n this._abrAdapter = new AbrAdapter(this._view);\n this._textTrackStyleAdapter = new TextTrackStyleAdapter(this._view);\n\n this.addEventListener(PlayerEventType.SOURCE_CHANGE, this.onSourceChange);\n this.addEventListener(PlayerEventType.LOADED_METADATA, this.onLoadedMetadata);\n this.addEventListener(PlayerEventType.PAUSE, this.onPause);\n this.addEventListener(PlayerEventType.PLAYING, this.onPlaying);\n this.addEventListener(PlayerEventType.TIME_UPDATE, this.onTimeupdate);\n this.addEventListener(PlayerEventType.DURATION_CHANGE, this.onDurationChange);\n this.addEventListener(PlayerEventType.RATE_CHANGE, this.onRateChange);\n this.addEventListener(PlayerEventType.SEEKING, this.onSeeking);\n this.addEventListener(PlayerEventType.SEEKED, this.onSeeked);\n this.addEventListener(PlayerEventType.PROGRESS, this.onProgress);\n this.addEventListener(PlayerEventType.TEXT_TRACK_LIST, this.onTextTrackList);\n this.addEventListener(PlayerEventType.TEXT_TRACK, this.onTextTrack);\n this.addEventListener(PlayerEventType.MEDIA_TRACK, this.onMediaTrack);\n this.addEventListener(PlayerEventType.MEDIA_TRACK_LIST, this.onMediaTrackList);\n this.addEventListener(PlayerEventType.PRESENTATIONMODE_CHANGE, this.onPresentationModeChange);\n }\n\n private onSourceChange = () => {\n this.applyAutoplay();\n };\n\n private hasValidSource(): boolean {\n return this._state.source !== undefined;\n }\n\n private onPause = () => {\n this._state.paused = true;\n };\n\n private onPlaying = () => {\n this._state.paused = false;\n };\n\n private onPresentationModeChange = (event: PresentationModeChangeEvent) => {\n this._state.presentationMode = event.presentationMode;\n if (Platform.OS === 'ios') {\n StatusBar.setHidden(event.presentationMode === PresentationMode.fullscreen, 'slide');\n }\n };\n\n private onTimeupdate = (event: TimeUpdateEvent) => {\n this._state.currentTime = event.currentTime;\n };\n\n private onLoadedMetadata = (event: LoadedMetadataEvent) => {\n this._state.duration = event.duration;\n this._state.audioTracks = event.audioTracks;\n this._state.videoTracks = event.videoTracks;\n this._state.textTracks = event.textTracks;\n this._state.selectedAudioTrack = event.selectedAudioTrack;\n this._state.selectedVideoTrack = event.selectedVideoTrack;\n this._state.selectedTextTrack = event.selectedTextTrack;\n if (isFinite(this._state.duration)) {\n this._state.seekable = [{ start: 0, end: this._state.duration }];\n }\n };\n\n private onDurationChange = (event: DurationChangeEvent) => {\n this._state.duration = event.duration;\n };\n\n private onRateChange = (event: RateChangeEvent) => {\n this._state.playbackRate = event.playbackRate;\n };\n\n private onSeeking = () => {\n this._state.seeking = true;\n };\n\n private onSeeked = () => {\n this._state.seeking = false;\n };\n\n private onProgress = (event: ProgressEvent) => {\n this._state.seekable = event.seekable?.sort((a, b) => a.end - b.end);\n this._state.buffered = event.buffered?.sort((a, b) => a.end - b.end);\n };\n\n private onTextTrack = (event: TextTrackEvent) => {\n const { subType, cue, trackUid } = event;\n const track = findTextTrackByUid(this._state.textTracks, trackUid);\n switch (subType) {\n case TextTrackEventType.ADD_CUE:\n addTextTrackCue(track, cue);\n break;\n case TextTrackEventType.REMOVE_CUE:\n removeTextTrackCue(track, cue);\n break;\n }\n };\n\n private onTextTrackList = (event: TextTrackListEvent) => {\n const { subType, track } = event;\n switch (subType) {\n case TrackListEventType.ADD_TRACK:\n this._state.textTracks = addTrack(this._state.textTracks, track);\n break;\n case TrackListEventType.REMOVE_TRACK:\n this._state.textTracks = removeTrack(this._state.textTracks, track);\n break;\n case TrackListEventType.CHANGE_TRACK:\n this._state.textTracks = removeTrack(this._state.textTracks, track);\n this._state.textTracks = addTrack(this._state.textTracks, track);\n break;\n }\n };\n\n private onMediaTrack = (event: MediaTrackEvent) => {\n const { subType, trackType, trackUid } = event;\n const tracks = trackType === MediaTrackType.VIDEO ? this._state.videoTracks : this._state.audioTracks;\n const track = findMediaTrackByUid(tracks, trackUid);\n switch (subType) {\n case MediaTrackEventType.ACTIVE_QUALITY_CHANGED:\n // Update local state\n if (track) {\n Object.assign(track, { ...track, activeQuality: event.qualities });\n }\n break;\n }\n };\n\n private onMediaTrackList = (event: MediaTrackListEvent) => {\n const { subType, trackType, track } = event;\n const isAudio = trackType === MediaTrackType.AUDIO;\n switch (subType) {\n case TrackListEventType.ADD_TRACK:\n if (isAudio) {\n this._state.audioTracks = addTrack(this._state.audioTracks, track);\n } else {\n this._state.videoTracks = addTrack(this._state.videoTracks, track);\n }\n break;\n case TrackListEventType.REMOVE_TRACK:\n if (isAudio) {\n this._state.audioTracks = removeTrack(this._state.audioTracks, track);\n } else {\n this._state.videoTracks = removeTrack(this._state.videoTracks, track);\n }\n break;\n case TrackListEventType.CHANGE_TRACK:\n if (isAudio) {\n this._state.audioTracks = removeTrack(this._state.audioTracks, track);\n this._state.audioTracks = addTrack(this._state.audioTracks, track);\n } else {\n this._state.videoTracks = removeTrack(this._state.videoTracks, track);\n this._state.videoTracks = addTrack(this._state.videoTracks, track);\n }\n break;\n }\n };\n\n get abr(): ABRConfiguration | undefined {\n return Platform.OS === 'android' ? this._abrAdapter : undefined;\n }\n\n get ads(): AdsAPI {\n return this._adsAdapter;\n }\n\n private applyAutoplay() {\n if (!this.hasValidSource()) {\n return;\n }\n if (this._state.autoplay) {\n this.play();\n } else {\n this.pause();\n }\n }\n\n set autoplay(autoplay: boolean) {\n this._state.autoplay = autoplay;\n\n // Apply autoplay in case a source was already set.\n // If autoplay is changed before setting a source, `onSourceChange` applies autoplay.\n this.applyAutoplay();\n }\n\n get autoplay(): boolean {\n return this._state.autoplay;\n }\n\n set preload(type: PreloadType) {\n this._state.preload = type;\n NativeModules.PlayerModule.setPreload(this._view.nativeHandle, type);\n }\n\n get preload(): PreloadType {\n return this._state.preload;\n }\n\n get seekable() {\n return this._state.seekable;\n }\n\n private seekableEnd(): number {\n const ranges = this.seekable;\n return ranges.length === 0 ? 0 : ranges[ranges.length - 1].end;\n }\n\n get buffered() {\n return this._state.buffered;\n }\n\n get cast(): CastAPI {\n return this._castAdapter;\n }\n\n get currentTime(): number {\n return this._state.currentTime;\n }\n\n set currentTime(currentTime: number) {\n if (!this.hasValidSource()) {\n return;\n }\n\n if (isNaN(currentTime)) {\n return;\n }\n\n // Sanitise currentTime\n let seekTime = currentTime;\n if (currentTime === Infinity) {\n seekTime = this.seekableEnd();\n }\n\n this._state.currentTime = seekTime;\n NativeModules.PlayerModule.setCurrentTime(this._view.nativeHandle, seekTime);\n }\n\n get duration(): number {\n return this._state.duration;\n }\n\n get pipConfiguration(): PiPConfiguration {\n return this._state.pipConfig;\n }\n\n set pipConfiguration(pipConfiguration: PiPConfiguration) {\n this._state.pipConfig = pipConfiguration;\n NativeModules.PlayerModule.setPipConfig(this._view.nativeHandle, pipConfiguration);\n }\n\n get backgroundAudioConfiguration(): BackgroundAudioConfiguration {\n return this._state.backgroundAudioConfig;\n }\n\n set backgroundAudioConfiguration(backgroundAudioConfiguration: BackgroundAudioConfiguration) {\n this._state.backgroundAudioConfig = backgroundAudioConfiguration;\n NativeModules.PlayerModule.setBackgroundAudioConfig(this._view.nativeHandle, backgroundAudioConfiguration);\n }\n\n get presentationMode(): PresentationMode {\n return this._state.presentationMode;\n }\n\n set presentationMode(presentationMode: PresentationMode) {\n this._state.presentationMode = presentationMode;\n NativeModules.PlayerModule.setPresentationMode(this._view.nativeHandle, presentationMode);\n }\n\n get muted(): boolean {\n return this._state.muted;\n }\n\n set muted(muted: boolean) {\n this._state.muted = muted;\n NativeModules.PlayerModule.setMuted(this._view.nativeHandle, muted);\n }\n\n get seeking(): boolean {\n return this._state.seeking;\n }\n\n get paused(): boolean {\n return this._state.paused;\n }\n\n get playbackRate(): number {\n return this._state.playbackRate;\n }\n\n set playbackRate(playbackRate: number) {\n this._state.playbackRate = playbackRate;\n NativeModules.PlayerModule.setPlaybackRate(this._view.nativeHandle, playbackRate);\n }\n\n get audioTracks(): MediaTrack[] {\n return this._state.audioTracks;\n }\n\n get selectedAudioTrack(): number | undefined {\n return this._state.selectedAudioTrack;\n }\n\n set selectedAudioTrack(trackUid: number | undefined) {\n if (!this.hasValidSource()) {\n return;\n }\n this._state.selectedAudioTrack = trackUid;\n NativeModules.PlayerModule.setSelectedAudioTrack(this._view.nativeHandle, trackUid !== undefined ? trackUid : -1);\n }\n\n get videoTracks(): MediaTrack[] {\n return this._state.videoTracks;\n }\n\n get selectedVideoTrack(): number | undefined {\n return this._state.selectedVideoTrack;\n }\n\n set selectedVideoTrack(trackUid: number | undefined) {\n if (!this.hasValidSource()) {\n return;\n }\n this._state.selectedVideoTrack = trackUid;\n this._state.targetVideoQuality = undefined;\n NativeModules.PlayerModule.setSelectedVideoTrack(this._view.nativeHandle, trackUid !== undefined ? trackUid : -1);\n }\n\n get textTracks(): TextTrack[] {\n return this._state.textTracks;\n }\n\n get selectedTextTrack(): number | undefined {\n return this._state.selectedTextTrack;\n }\n\n set selectedTextTrack(trackUid: number | undefined) {\n if (!this.hasValidSource()) {\n return;\n }\n this._state.selectedTextTrack = trackUid;\n this.textTracks.forEach((track) => {\n if (track.uid === trackUid) {\n track.mode = TextTrackMode.showing;\n } else if (track.mode === TextTrackMode.showing) {\n track.mode = TextTrackMode.disabled;\n }\n });\n NativeModules.PlayerModule.setSelectedTextTrack(this._view.nativeHandle, trackUid !== undefined ? trackUid : -1);\n }\n\n get textTrackStyle(): TextTrackStyle {\n return this._textTrackStyleAdapter;\n }\n\n get source(): SourceDescription | undefined {\n return this._state.source;\n }\n\n set source(source: SourceDescription | undefined) {\n // This is to correctly reset autoplay during a source change.\n this.pause();\n this._state.source = source;\n NativeModules.PlayerModule.setSource(this._view.nativeHandle, source);\n // Reset state for play-out of new source\n Object.assign(this._state, {\n playbackRate: 1,\n seeking: false,\n audioTracks: [],\n videoTracks: [],\n textTracks: [],\n seekable: [],\n buffered: [],\n selectedTextTrack: undefined,\n selectedVideoTrack: undefined,\n selectedAudioTrack: undefined,\n targetVideoQuality: undefined,\n });\n }\n\n get targetVideoQuality(): number | number[] | undefined {\n return this._state.targetVideoQuality;\n }\n\n set targetVideoQuality(target: number | number[] | undefined) {\n if (!this.hasValidSource()) {\n return;\n }\n // Always pass an array for targetVideoQuality.\n this._state.targetVideoQuality = !target ? [] : Array.isArray(target) ? target : [target];\n\n // Update local state\n const track = findMediaTrackByUid(this._state.videoTracks, this.selectedVideoTrack);\n if (track) {\n Object.assign(track, { ...track, targetQuality: this._state.targetVideoQuality });\n }\n NativeModules.PlayerModule.setTargetVideoQuality(this._view.nativeHandle, this._state.targetVideoQuality);\n }\n\n get volume(): number {\n return this._state.volume;\n }\n\n set volume(volume: number) {\n this._state.volume = volume;\n NativeModules.PlayerModule.setVolume(this._view.nativeHandle, volume);\n }\n\n get aspectRatio(): AspectRatio {\n return this._state.aspectRatio;\n }\n\n set aspectRatio(ratio: AspectRatio) {\n this._state.aspectRatio = ratio;\n NativeModules.PlayerModule.setAspectRatio(this._view.nativeHandle, ratio);\n }\n\n get keepScreenOn(): boolean {\n return this._state.keepScreenOn;\n }\n\n set keepScreenOn(value: boolean) {\n this._state.keepScreenOn = value;\n if (Platform.OS === 'android') {\n NativeModules.PlayerModule.setKeepScreenOn(this._view.nativeHandle, value);\n }\n }\n\n pause(): void {\n if (this.hasValidSource()) {\n this._state.paused = true;\n NativeModules.PlayerModule.setPaused(this._view.nativeHandle, true);\n }\n }\n\n play(): void {\n if (this.hasValidSource()) {\n this._state.paused = false;\n NativeModules.PlayerModule.setPaused(this._view.nativeHandle, false);\n }\n }\n\n public get version(): PlayerVersion {\n return this._playerVersion;\n }\n\n // @internal\n get nativeHandle(): NativeHandleType {\n return this._view.nativeHandle;\n }\n\n // @internal\n get broadcast(): EventBroadcastAPI {\n return this._externalEventRouter ?? (this._externalEventRouter = new EventBroadcastAdapter(this));\n }\n\n initializeFromNativePlayer_(version: PlayerVersion, state: NativePlayerState | undefined) {\n this._playerVersion = version;\n if (state) {\n Object.assign(this._state, state);\n this._castAdapter.init_();\n }\n }\n}\n"],"mappings":";;;AAAA,SAASA,sBAAsB,QAAQ,gCAAgC;AAyBvE,SACEC,eAAe,EACfC,QAAQ,EACRC,WAAW,EAEXC,mBAAmB,EACnBC,kBAAkB,EAClBC,mBAAmB,EACnBC,cAAc,EACdC,eAAe,EAGfC,gBAAgB,EAChBC,kBAAkB,EAClBC,WAAW,EACXC,kBAAkB,EAClBC,aAAa,EAEbC,kBAAkB,QACb,yBAAyB;AAChC,SAASC,0BAA0B,QAAQ,kCAAkC;AAC7E,SAASC,2BAA2B,QAAQ,oCAAoC;AAChF,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,aAAa,EAAEC,QAAQ,EAAEC,SAAS,QAAQ,cAAc;AACjE,SAASC,qBAAqB,QAAQ,+BAA+B;AAErE,SAASC,qBAAqB,QAAQ,mCAAmC;AAEzE,MAAMC,kBAAqC,GAAG;EAC5CC,MAAM,EAAEC,SAAS;EACjBC,QAAQ,EAAE,KAAK;EACfC,MAAM,EAAE,KAAK;EACbC,QAAQ,EAAE,EAAE;EACZC,QAAQ,EAAE,EAAE;EACZC,SAAS,EAAE;IAAEC,mBAAmB,EAAE;EAAM,CAAC;EACzCC,qBAAqB,EAAE;IAAEC,OAAO,EAAE;EAAM,CAAC;EACzCC,gBAAgB,EAAEzB,gBAAgB,CAAC0B,MAAM;EACzCC,KAAK,EAAE,KAAK;EACZC,OAAO,EAAE,KAAK;EACdC,MAAM,EAAE,CAAC;EACTC,WAAW,EAAE,CAAC;EACdC,QAAQ,EAAEC,GAAG;EACbC,YAAY,EAAE,CAAC;EACfC,OAAO,EAAE,MAAM;EACfC,WAAW,EAAEzC,WAAW,CAAC0C,GAAG;EAC5BC,YAAY,EAAE,IAAI;EAClBC,WAAW,EAAE,EAAE;EACfC,WAAW,EAAE,EAAE;EACfC,UAAU,EAAE,EAAE;EACdC,kBAAkB,EAAEzB,SAAS;EAC7B0B,kBAAkB,EAAE1B,SAAS;EAC7B2B,kBAAkB,EAAE3B,SAAS;EAC7B4B,iBAAiB,EAAE5B;AACrB,CAAC;AAED,OAAO,MAAM6B,iBAAiB,SAAStD,sBAAsB,CAAuC;EAUlGuD,WAAWA,CAACC,IAAoB,EAAwD;IAAA,IAAtDC,YAA+B,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAjC,SAAA,GAAAiC,SAAA,MAAGnC,kBAAkB;IACpF,KAAK,CAAC,CAAC;IAACqC,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA,+BAJoDnC,SAAS;IAAAmC,eAAA;IAAAA,eAAA,yBA6B9C,MAAM;MAC7B,IAAI,CAACC,aAAa,CAAC,CAAC;IACtB,CAAC;IAAAD,eAAA,kBAMiB,MAAM;MACtB,IAAI,CAACE,MAAM,CAACnC,MAAM,GAAG,IAAI;IAC3B,CAAC;IAAAiC,eAAA,oBAEmB,MAAM;MACxB,IAAI,CAACE,MAAM,CAACnC,MAAM,GAAG,KAAK;IAC5B,CAAC;IAAAiC,eAAA,mCAEmCG,KAAkC,IAAK;MACzE,IAAI,CAACD,MAAM,CAAC5B,gBAAgB,GAAG6B,KAAK,CAAC7B,gBAAgB;MACrD,IAAIf,QAAQ,CAAC6C,EAAE,KAAK,KAAK,EAAE;QACzB5C,SAAS,CAAC6C,SAAS,CAACF,KAAK,CAAC7B,gBAAgB,KAAKzB,gBAAgB,CAACyD,UAAU,EAAE,OAAO,CAAC;MACtF;IACF,CAAC;IAAAN,eAAA,uBAEuBG,KAAsB,IAAK;MACjD,IAAI,CAACD,MAAM,CAACvB,WAAW,GAAGwB,KAAK,CAACxB,WAAW;IAC7C,CAAC;IAAAqB,eAAA,2BAE2BG,KAA0B,IAAK;MACzD,IAAI,CAACD,MAAM,CAACtB,QAAQ,GAAGuB,KAAK,CAACvB,QAAQ;MACrC,IAAI,CAACsB,MAAM,CAACf,WAAW,GAAGgB,KAAK,CAAChB,WAAW;MAC3C,IAAI,CAACe,MAAM,CAACd,WAAW,GAAGe,KAAK,CAACf,WAAW;MAC3C,IAAI,CAACc,MAAM,CAACb,UAAU,GAAGc,KAAK,CAACd,UAAU;MACzC,IAAI,CAACa,MAAM,CAACV,kBAAkB,GAAGW,KAAK,CAACX,kBAAkB;MACzD,IAAI,CAACU,MAAM,CAACX,kBAAkB,GAAGY,KAAK,CAACZ,kBAAkB;MACzD,IAAI,CAACW,MAAM,CAACT,iBAAiB,GAAGU,KAAK,CAACV,iBAAiB;MACvD,IAAIc,QAAQ,CAAC,IAAI,CAACL,MAAM,CAACtB,QAAQ,CAAC,EAAE;QAClC,IAAI,CAACsB,MAAM,CAAClC,QAAQ,GAAG,CAAC;UAAEwC,KAAK,EAAE,CAAC;UAAEC,GAAG,EAAE,IAAI,CAACP,MAAM,CAACtB;QAAS,CAAC,CAAC;MAClE;IACF,CAAC;IAAAoB,eAAA,2BAE2BG,KAA0B,IAAK;MACzD,IAAI,CAACD,MAAM,CAACtB,QAAQ,GAAGuB,KAAK,CAACvB,QAAQ;IACvC,CAAC;IAAAoB,eAAA,uBAEuBG,KAAsB,IAAK;MACjD,IAAI,CAACD,MAAM,CAACpB,YAAY,GAAGqB,KAAK,CAACrB,YAAY;IAC/C,CAAC;IAAAkB,eAAA,oBAEmB,MAAM;MACxB,IAAI,CAACE,MAAM,CAACzB,OAAO,GAAG,IAAI;IAC5B,CAAC;IAAAuB,eAAA,mBAEkB,MAAM;MACvB,IAAI,CAACE,MAAM,CAACzB,OAAO,GAAG,KAAK;IAC7B,CAAC;IAAAuB,eAAA,qBAEqBG,KAAoB,IAAK;MAAA,IAAAO,eAAA,EAAAC,eAAA;MAC7C,IAAI,CAACT,MAAM,CAAClC,QAAQ,IAAA0C,eAAA,GAAGP,KAAK,CAACnC,QAAQ,cAAA0C,eAAA,uBAAdA,eAAA,CAAgBE,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKD,CAAC,CAACJ,GAAG,GAAGK,CAAC,CAACL,GAAG,CAAC;MACpE,IAAI,CAACP,MAAM,CAACjC,QAAQ,IAAA0C,eAAA,GAAGR,KAAK,CAAClC,QAAQ,cAAA0C,eAAA,uBAAdA,eAAA,CAAgBC,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKD,CAAC,CAACJ,GAAG,GAAGK,CAAC,CAACL,GAAG,CAAC;IACtE,CAAC;IAAAT,eAAA,sBAEsBG,KAAqB,IAAK;MAC/C,MAAM;QAAEY,OAAO;QAAEC,GAAG;QAAEC;MAAS,CAAC,GAAGd,KAAK;MACxC,MAAMe,KAAK,GAAGzE,kBAAkB,CAAC,IAAI,CAACyD,MAAM,CAACb,UAAU,EAAE4B,QAAQ,CAAC;MAClE,QAAQF,OAAO;QACb,KAAK/D,kBAAkB,CAACmE,OAAO;UAC7B9E,eAAe,CAAC6E,KAAK,EAAEF,GAAG,CAAC;UAC3B;QACF,KAAKhE,kBAAkB,CAACoE,UAAU;UAChCtE,kBAAkB,CAACoE,KAAK,EAAEF,GAAG,CAAC;UAC9B;MACJ;IACF,CAAC;IAAAhB,eAAA,0BAE0BG,KAAyB,IAAK;MACvD,MAAM;QAAEY,OAAO;QAAEG;MAAM,CAAC,GAAGf,KAAK;MAChC,QAAQY,OAAO;QACb,KAAK7D,kBAAkB,CAACmE,SAAS;UAC/B,IAAI,CAACnB,MAAM,CAACb,UAAU,GAAG/C,QAAQ,CAAC,IAAI,CAAC4D,MAAM,CAACb,UAAU,EAAE6B,KAAK,CAAC;UAChE;QACF,KAAKhE,kBAAkB,CAACoE,YAAY;UAClC,IAAI,CAACpB,MAAM,CAACb,UAAU,GAAGtC,WAAW,CAAC,IAAI,CAACmD,MAAM,CAACb,UAAU,EAAE6B,KAAK,CAAC;UACnE;QACF,KAAKhE,kBAAkB,CAACqE,YAAY;UAClC,IAAI,CAACrB,MAAM,CAACb,UAAU,GAAGtC,WAAW,CAAC,IAAI,CAACmD,MAAM,CAACb,UAAU,EAAE6B,KAAK,CAAC;UACnE,IAAI,CAAChB,MAAM,CAACb,UAAU,GAAG/C,QAAQ,CAAC,IAAI,CAAC4D,MAAM,CAACb,UAAU,EAAE6B,KAAK,CAAC;UAChE;MACJ;IACF,CAAC;IAAAlB,eAAA,uBAEuBG,KAAsB,IAAK;MACjD,MAAM;QAAEY,OAAO;QAAES,SAAS;QAAEP;MAAS,CAAC,GAAGd,KAAK;MAC9C,MAAMsB,MAAM,GAAGD,SAAS,KAAK7E,cAAc,CAAC+E,KAAK,GAAG,IAAI,CAACxB,MAAM,CAACd,WAAW,GAAG,IAAI,CAACc,MAAM,CAACf,WAAW;MACrG,MAAM+B,KAAK,GAAG1E,mBAAmB,CAACiF,MAAM,EAAER,QAAQ,CAAC;MACnD,QAAQF,OAAO;QACb,KAAKrE,mBAAmB,CAACiF,sBAAsB;UAC7C;UACA,IAAIT,KAAK,EAAE;YACTU,MAAM,CAACC,MAAM,CAACX,KAAK,EAAE;cAAE,GAAGA,KAAK;cAAEY,aAAa,EAAE3B,KAAK,CAAC4B;YAAU,CAAC,CAAC;UACpE;UACA;MACJ;IACF,CAAC;IAAA/B,eAAA,2BAE2BG,KAA0B,IAAK;MACzD,MAAM;QAAEY,OAAO;QAAES,SAAS;QAAEN;MAAM,CAAC,GAAGf,KAAK;MAC3C,MAAM6B,OAAO,GAAGR,SAAS,KAAK7E,cAAc,CAACsF,KAAK;MAClD,QAAQlB,OAAO;QACb,KAAK7D,kBAAkB,CAACmE,SAAS;UAC/B,IAAIW,OAAO,EAAE;YACX,IAAI,CAAC9B,MAAM,CAACf,WAAW,GAAG7C,QAAQ,CAAC,IAAI,CAAC4D,MAAM,CAACf,WAAW,EAAE+B,KAAK,CAAC;UACpE,CAAC,MAAM;YACL,IAAI,CAAChB,MAAM,CAACd,WAAW,GAAG9C,QAAQ,CAAC,IAAI,CAAC4D,MAAM,CAACd,WAAW,EAAE8B,KAAK,CAAC;UACpE;UACA;QACF,KAAKhE,kBAAkB,CAACoE,YAAY;UAClC,IAAIU,OAAO,EAAE;YACX,IAAI,CAAC9B,MAAM,CAACf,WAAW,GAAGpC,WAAW,CAAC,IAAI,CAACmD,MAAM,CAACf,WAAW,EAAE+B,KAAK,CAAC;UACvE,CAAC,MAAM;YACL,IAAI,CAAChB,MAAM,CAACd,WAAW,GAAGrC,WAAW,CAAC,IAAI,CAACmD,MAAM,CAACd,WAAW,EAAE8B,KAAK,CAAC;UACvE;UACA;QACF,KAAKhE,kBAAkB,CAACqE,YAAY;UAClC,IAAIS,OAAO,EAAE;YACX,IAAI,CAAC9B,MAAM,CAACf,WAAW,GAAGpC,WAAW,CAAC,IAAI,CAACmD,MAAM,CAACf,WAAW,EAAE+B,KAAK,CAAC;YACrE,IAAI,CAAChB,MAAM,CAACf,WAAW,GAAG7C,QAAQ,CAAC,IAAI,CAAC4D,MAAM,CAACf,WAAW,EAAE+B,KAAK,CAAC;UACpE,CAAC,MAAM;YACL,IAAI,CAAChB,MAAM,CAACd,WAAW,GAAGrC,WAAW,CAAC,IAAI,CAACmD,MAAM,CAACd,WAAW,EAAE8B,KAAK,CAAC;YACrE,IAAI,CAAChB,MAAM,CAACd,WAAW,GAAG9C,QAAQ,CAAC,IAAI,CAAC4D,MAAM,CAACd,WAAW,EAAE8B,KAAK,CAAC;UACpE;UACA;MACJ;IACF,CAAC;IA5JC,IAAI,CAACgB,KAAK,GAAGtC,IAAI;IACjB,IAAI,CAACM,MAAM,GAAG;MAAE,GAAGL;IAAa,CAAC;IACjC,IAAI,CAACsC,WAAW,GAAG,IAAIhF,0BAA0B,CAAC,IAAI,CAAC+E,KAAK,CAAC;IAC7D,IAAI,CAACE,YAAY,GAAG,IAAIhF,2BAA2B,CAAC,IAAI,EAAE,IAAI,CAAC8E,KAAK,CAAC;IACrE,IAAI,CAACG,WAAW,GAAG,IAAIhF,UAAU,CAAC,IAAI,CAAC6E,KAAK,CAAC;IAC7C,IAAI,CAACI,sBAAsB,GAAG,IAAI7E,qBAAqB,CAAC,IAAI,CAACyE,KAAK,CAAC;IAEnE,IAAI,CAACK,gBAAgB,CAAC3F,eAAe,CAAC4F,aAAa,EAAE,IAAI,CAACC,cAAc,CAAC;IACzE,IAAI,CAACF,gBAAgB,CAAC3F,eAAe,CAAC8F,eAAe,EAAE,IAAI,CAACC,gBAAgB,CAAC;IAC7E,IAAI,CAACJ,gBAAgB,CAAC3F,eAAe,CAACgG,KAAK,EAAE,IAAI,CAACC,OAAO,CAAC;IAC1D,IAAI,CAACN,gBAAgB,CAAC3F,eAAe,CAACkG,OAAO,EAAE,IAAI,CAACC,SAAS,CAAC;IAC9D,IAAI,CAACR,gBAAgB,CAAC3F,eAAe,CAACoG,WAAW,EAAE,IAAI,CAACC,YAAY,CAAC;IACrE,IAAI,CAACV,gBAAgB,CAAC3F,eAAe,CAACsG,eAAe,EAAE,IAAI,CAACC,gBAAgB,CAAC;IAC7E,IAAI,CAACZ,gBAAgB,CAAC3F,eAAe,CAACwG,WAAW,EAAE,IAAI,CAACC,YAAY,CAAC;IACrE,IAAI,CAACd,gBAAgB,CAAC3F,eAAe,CAAC0G,OAAO,EAAE,IAAI,CAACC,SAAS,CAAC;IAC9D,IAAI,CAAChB,gBAAgB,CAAC3F,eAAe,CAAC4G,MAAM,EAAE,IAAI,CAACC,QAAQ,CAAC;IAC5D,IAAI,CAAClB,gBAAgB,CAAC3F,eAAe,CAAC8G,QAAQ,EAAE,IAAI,CAACC,UAAU,CAAC;IAChE,IAAI,CAACpB,gBAAgB,CAAC3F,eAAe,CAACgH,eAAe,EAAE,IAAI,CAACC,eAAe,CAAC;IAC5E,IAAI,CAACtB,gBAAgB,CAAC3F,eAAe,CAACkH,UAAU,EAAE,IAAI,CAACC,WAAW,CAAC;IACnE,IAAI,CAACxB,gBAAgB,CAAC3F,eAAe,CAACoH,WAAW,EAAE,IAAI,CAACC,YAAY,CAAC;IACrE,IAAI,CAAC1B,gBAAgB,CAAC3F,eAAe,CAACsH,gBAAgB,EAAE,IAAI,CAACC,gBAAgB,CAAC;IAC9E,IAAI,CAAC5B,gBAAgB,CAAC3F,eAAe,CAACwH,uBAAuB,EAAE,IAAI,CAACC,wBAAwB,CAAC;EAC/F;EAMQC,cAAcA,CAAA,EAAY;IAChC,OAAO,IAAI,CAACpE,MAAM,CAACtC,MAAM,KAAKC,SAAS;EACzC;EAgIA,IAAI0G,GAAGA,CAAA,EAAiC;IACtC,OAAOhH,QAAQ,CAAC6C,EAAE,KAAK,SAAS,GAAG,IAAI,CAACiC,WAAW,GAAGxE,SAAS;EACjE;EAEA,IAAI2G,GAAGA,CAAA,EAAW;IAChB,OAAO,IAAI,CAACrC,WAAW;EACzB;EAEQlC,aAAaA,CAAA,EAAG;IACtB,IAAI,CAAC,IAAI,CAACqE,cAAc,CAAC,CAAC,EAAE;MAC1B;IACF;IACA,IAAI,IAAI,CAACpE,MAAM,CAACpC,QAAQ,EAAE;MACxB,IAAI,CAAC2G,IAAI,CAAC,CAAC;IACb,CAAC,MAAM;MACL,IAAI,CAACC,KAAK,CAAC,CAAC;IACd;EACF;EAEA,IAAI5G,QAAQA,CAACA,QAAiB,EAAE;IAC9B,IAAI,CAACoC,MAAM,CAACpC,QAAQ,GAAGA,QAAQ;;IAE/B;IACA;IACA,IAAI,CAACmC,aAAa,CAAC,CAAC;EACtB;EAEA,IAAInC,QAAQA,CAAA,EAAY;IACtB,OAAO,IAAI,CAACoC,MAAM,CAACpC,QAAQ;EAC7B;EAEA,IAAIiB,OAAOA,CAAC4F,IAAiB,EAAE;IAC7B,IAAI,CAACzE,MAAM,CAACnB,OAAO,GAAG4F,IAAI;IAC1BrH,aAAa,CAACsH,YAAY,CAACC,UAAU,CAAC,IAAI,CAAC3C,KAAK,CAAC4C,YAAY,EAAEH,IAAI,CAAC;EACtE;EAEA,IAAI5F,OAAOA,CAAA,EAAgB;IACzB,OAAO,IAAI,CAACmB,MAAM,CAACnB,OAAO;EAC5B;EAEA,IAAIf,QAAQA,CAAA,EAAG;IACb,OAAO,IAAI,CAACkC,MAAM,CAAClC,QAAQ;EAC7B;EAEQ+G,WAAWA,CAAA,EAAW;IAC5B,MAAMC,MAAM,GAAG,IAAI,CAAChH,QAAQ;IAC5B,OAAOgH,MAAM,CAACjF,MAAM,KAAK,CAAC,GAAG,CAAC,GAAGiF,MAAM,CAACA,MAAM,CAACjF,MAAM,GAAG,CAAC,CAAC,CAACU,GAAG;EAChE;EAEA,IAAIxC,QAAQA,CAAA,EAAG;IACb,OAAO,IAAI,CAACiC,MAAM,CAACjC,QAAQ;EAC7B;EAEA,IAAIgH,IAAIA,CAAA,EAAY;IAClB,OAAO,IAAI,CAAC7C,YAAY;EAC1B;EAEA,IAAIzD,WAAWA,CAAA,EAAW;IACxB,OAAO,IAAI,CAACuB,MAAM,CAACvB,WAAW;EAChC;EAEA,IAAIA,WAAWA,CAACA,WAAmB,EAAE;IACnC,IAAI,CAAC,IAAI,CAAC2F,cAAc,CAAC,CAAC,EAAE;MAC1B;IACF;IAEA,IAAIY,KAAK,CAACvG,WAAW,CAAC,EAAE;MACtB;IACF;;IAEA;IACA,IAAIwG,QAAQ,GAAGxG,WAAW;IAC1B,IAAIA,WAAW,KAAKyG,QAAQ,EAAE;MAC5BD,QAAQ,GAAG,IAAI,CAACJ,WAAW,CAAC,CAAC;IAC/B;IAEA,IAAI,CAAC7E,MAAM,CAACvB,WAAW,GAAGwG,QAAQ;IAClC7H,aAAa,CAACsH,YAAY,CAACS,cAAc,CAAC,IAAI,CAACnD,KAAK,CAAC4C,YAAY,EAAEK,QAAQ,CAAC;EAC9E;EAEA,IAAIvG,QAAQA,CAAA,EAAW;IACrB,OAAO,IAAI,CAACsB,MAAM,CAACtB,QAAQ;EAC7B;EAEA,IAAI0G,gBAAgBA,CAAA,EAAqB;IACvC,OAAO,IAAI,CAACpF,MAAM,CAAChC,SAAS;EAC9B;EAEA,IAAIoH,gBAAgBA,CAACA,gBAAkC,EAAE;IACvD,IAAI,CAACpF,MAAM,CAAChC,SAAS,GAAGoH,gBAAgB;IACxChI,aAAa,CAACsH,YAAY,CAACW,YAAY,CAAC,IAAI,CAACrD,KAAK,CAAC4C,YAAY,EAAEQ,gBAAgB,CAAC;EACpF;EAEA,IAAIE,4BAA4BA,CAAA,EAAiC;IAC/D,OAAO,IAAI,CAACtF,MAAM,CAAC9B,qBAAqB;EAC1C;EAEA,IAAIoH,4BAA4BA,CAACA,4BAA0D,EAAE;IAC3F,IAAI,CAACtF,MAAM,CAAC9B,qBAAqB,GAAGoH,4BAA4B;IAChElI,aAAa,CAACsH,YAAY,CAACa,wBAAwB,CAAC,IAAI,CAACvD,KAAK,CAAC4C,YAAY,EAAEU,4BAA4B,CAAC;EAC5G;EAEA,IAAIlH,gBAAgBA,CAAA,EAAqB;IACvC,OAAO,IAAI,CAAC4B,MAAM,CAAC5B,gBAAgB;EACrC;EAEA,IAAIA,gBAAgBA,CAACA,gBAAkC,EAAE;IACvD,IAAI,CAAC4B,MAAM,CAAC5B,gBAAgB,GAAGA,gBAAgB;IAC/ChB,aAAa,CAACsH,YAAY,CAACc,mBAAmB,CAAC,IAAI,CAACxD,KAAK,CAAC4C,YAAY,EAAExG,gBAAgB,CAAC;EAC3F;EAEA,IAAIE,KAAKA,CAAA,EAAY;IACnB,OAAO,IAAI,CAAC0B,MAAM,CAAC1B,KAAK;EAC1B;EAEA,IAAIA,KAAKA,CAACA,KAAc,EAAE;IACxB,IAAI,CAAC0B,MAAM,CAAC1B,KAAK,GAAGA,KAAK;IACzBlB,aAAa,CAACsH,YAAY,CAACe,QAAQ,CAAC,IAAI,CAACzD,KAAK,CAAC4C,YAAY,EAAEtG,KAAK,CAAC;EACrE;EAEA,IAAIC,OAAOA,CAAA,EAAY;IACrB,OAAO,IAAI,CAACyB,MAAM,CAACzB,OAAO;EAC5B;EAEA,IAAIV,MAAMA,CAAA,EAAY;IACpB,OAAO,IAAI,CAACmC,MAAM,CAACnC,MAAM;EAC3B;EAEA,IAAIe,YAAYA,CAAA,EAAW;IACzB,OAAO,IAAI,CAACoB,MAAM,CAACpB,YAAY;EACjC;EAEA,IAAIA,YAAYA,CAACA,YAAoB,EAAE;IACrC,IAAI,CAACoB,MAAM,CAACpB,YAAY,GAAGA,YAAY;IACvCxB,aAAa,CAACsH,YAAY,CAACgB,eAAe,CAAC,IAAI,CAAC1D,KAAK,CAAC4C,YAAY,EAAEhG,YAAY,CAAC;EACnF;EAEA,IAAIK,WAAWA,CAAA,EAAiB;IAC9B,OAAO,IAAI,CAACe,MAAM,CAACf,WAAW;EAChC;EAEA,IAAIK,kBAAkBA,CAAA,EAAuB;IAC3C,OAAO,IAAI,CAACU,MAAM,CAACV,kBAAkB;EACvC;EAEA,IAAIA,kBAAkBA,CAACyB,QAA4B,EAAE;IACnD,IAAI,CAAC,IAAI,CAACqD,cAAc,CAAC,CAAC,EAAE;MAC1B;IACF;IACA,IAAI,CAACpE,MAAM,CAACV,kBAAkB,GAAGyB,QAAQ;IACzC3D,aAAa,CAACsH,YAAY,CAACiB,qBAAqB,CAAC,IAAI,CAAC3D,KAAK,CAAC4C,YAAY,EAAE7D,QAAQ,KAAKpD,SAAS,GAAGoD,QAAQ,GAAG,CAAC,CAAC,CAAC;EACnH;EAEA,IAAI7B,WAAWA,CAAA,EAAiB;IAC9B,OAAO,IAAI,CAACc,MAAM,CAACd,WAAW;EAChC;EAEA,IAAIG,kBAAkBA,CAAA,EAAuB;IAC3C,OAAO,IAAI,CAACW,MAAM,CAACX,kBAAkB;EACvC;EAEA,IAAIA,kBAAkBA,CAAC0B,QAA4B,EAAE;IACnD,IAAI,CAAC,IAAI,CAACqD,cAAc,CAAC,CAAC,EAAE;MAC1B;IACF;IACA,IAAI,CAACpE,MAAM,CAACX,kBAAkB,GAAG0B,QAAQ;IACzC,IAAI,CAACf,MAAM,CAACZ,kBAAkB,GAAGzB,SAAS;IAC1CP,aAAa,CAACsH,YAAY,CAACkB,qBAAqB,CAAC,IAAI,CAAC5D,KAAK,CAAC4C,YAAY,EAAE7D,QAAQ,KAAKpD,SAAS,GAAGoD,QAAQ,GAAG,CAAC,CAAC,CAAC;EACnH;EAEA,IAAI5B,UAAUA,CAAA,EAAgB;IAC5B,OAAO,IAAI,CAACa,MAAM,CAACb,UAAU;EAC/B;EAEA,IAAII,iBAAiBA,CAAA,EAAuB;IAC1C,OAAO,IAAI,CAACS,MAAM,CAACT,iBAAiB;EACtC;EAEA,IAAIA,iBAAiBA,CAACwB,QAA4B,EAAE;IAClD,IAAI,CAAC,IAAI,CAACqD,cAAc,CAAC,CAAC,EAAE;MAC1B;IACF;IACA,IAAI,CAACpE,MAAM,CAACT,iBAAiB,GAAGwB,QAAQ;IACxC,IAAI,CAAC5B,UAAU,CAAC0G,OAAO,CAAE7E,KAAK,IAAK;MACjC,IAAIA,KAAK,CAAC8E,GAAG,KAAK/E,QAAQ,EAAE;QAC1BC,KAAK,CAAC+E,IAAI,GAAGhJ,aAAa,CAACiJ,OAAO;MACpC,CAAC,MAAM,IAAIhF,KAAK,CAAC+E,IAAI,KAAKhJ,aAAa,CAACiJ,OAAO,EAAE;QAC/ChF,KAAK,CAAC+E,IAAI,GAAGhJ,aAAa,CAACkJ,QAAQ;MACrC;IACF,CAAC,CAAC;IACF7I,aAAa,CAACsH,YAAY,CAACwB,oBAAoB,CAAC,IAAI,CAAClE,KAAK,CAAC4C,YAAY,EAAE7D,QAAQ,KAAKpD,SAAS,GAAGoD,QAAQ,GAAG,CAAC,CAAC,CAAC;EAClH;EAEA,IAAIoF,cAAcA,CAAA,EAAmB;IACnC,OAAO,IAAI,CAAC/D,sBAAsB;EACpC;EAEA,IAAI1E,MAAMA,CAAA,EAAkC;IAC1C,OAAO,IAAI,CAACsC,MAAM,CAACtC,MAAM;EAC3B;EAEA,IAAIA,MAAMA,CAACA,MAAqC,EAAE;IAChD;IACA,IAAI,CAAC8G,KAAK,CAAC,CAAC;IACZ,IAAI,CAACxE,MAAM,CAACtC,MAAM,GAAGA,MAAM;IAC3BN,aAAa,CAACsH,YAAY,CAAC0B,SAAS,CAAC,IAAI,CAACpE,KAAK,CAAC4C,YAAY,EAAElH,MAAM,CAAC;IACrE;IACAgE,MAAM,CAACC,MAAM,CAAC,IAAI,CAAC3B,MAAM,EAAE;MACzBpB,YAAY,EAAE,CAAC;MACfL,OAAO,EAAE,KAAK;MACdU,WAAW,EAAE,EAAE;MACfC,WAAW,EAAE,EAAE;MACfC,UAAU,EAAE,EAAE;MACdrB,QAAQ,EAAE,EAAE;MACZC,QAAQ,EAAE,EAAE;MACZwB,iBAAiB,EAAE5B,SAAS;MAC5B0B,kBAAkB,EAAE1B,SAAS;MAC7B2B,kBAAkB,EAAE3B,SAAS;MAC7ByB,kBAAkB,EAAEzB;IACtB,CAAC,CAAC;EACJ;EAEA,IAAIyB,kBAAkBA,CAAA,EAAkC;IACtD,OAAO,IAAI,CAACY,MAAM,CAACZ,kBAAkB;EACvC;EAEA,IAAIA,kBAAkBA,CAACiH,MAAqC,EAAE;IAC5D,IAAI,CAAC,IAAI,CAACjC,cAAc,CAAC,CAAC,EAAE;MAC1B;IACF;IACA;IACA,IAAI,CAACpE,MAAM,CAACZ,kBAAkB,GAAG,CAACiH,MAAM,GAAG,EAAE,GAAGC,KAAK,CAACC,OAAO,CAACF,MAAM,CAAC,GAAGA,MAAM,GAAG,CAACA,MAAM,CAAC;;IAEzF;IACA,MAAMrF,KAAK,GAAG1E,mBAAmB,CAAC,IAAI,CAAC0D,MAAM,CAACd,WAAW,EAAE,IAAI,CAACG,kBAAkB,CAAC;IACnF,IAAI2B,KAAK,EAAE;MACTU,MAAM,CAACC,MAAM,CAACX,KAAK,EAAE;QAAE,GAAGA,KAAK;QAAEwF,aAAa,EAAE,IAAI,CAACxG,MAAM,CAACZ;MAAmB,CAAC,CAAC;IACnF;IACAhC,aAAa,CAACsH,YAAY,CAAC+B,qBAAqB,CAAC,IAAI,CAACzE,KAAK,CAAC4C,YAAY,EAAE,IAAI,CAAC5E,MAAM,CAACZ,kBAAkB,CAAC;EAC3G;EAEA,IAAIZ,MAAMA,CAAA,EAAW;IACnB,OAAO,IAAI,CAACwB,MAAM,CAACxB,MAAM;EAC3B;EAEA,IAAIA,MAAMA,CAACA,MAAc,EAAE;IACzB,IAAI,CAACwB,MAAM,CAACxB,MAAM,GAAGA,MAAM;IAC3BpB,aAAa,CAACsH,YAAY,CAACgC,SAAS,CAAC,IAAI,CAAC1E,KAAK,CAAC4C,YAAY,EAAEpG,MAAM,CAAC;EACvE;EAEA,IAAIM,WAAWA,CAAA,EAAgB;IAC7B,OAAO,IAAI,CAACkB,MAAM,CAAClB,WAAW;EAChC;EAEA,IAAIA,WAAWA,CAAC6H,KAAkB,EAAE;IAClC,IAAI,CAAC3G,MAAM,CAAClB,WAAW,GAAG6H,KAAK;IAC/BvJ,aAAa,CAACsH,YAAY,CAACkC,cAAc,CAAC,IAAI,CAAC5E,KAAK,CAAC4C,YAAY,EAAE+B,KAAK,CAAC;EAC3E;EAEA,IAAI3H,YAAYA,CAAA,EAAY;IAC1B,OAAO,IAAI,CAACgB,MAAM,CAAChB,YAAY;EACjC;EAEA,IAAIA,YAAYA,CAAC6H,KAAc,EAAE;IAC/B,IAAI,CAAC7G,MAAM,CAAChB,YAAY,GAAG6H,KAAK;IAChC,IAAIxJ,QAAQ,CAAC6C,EAAE,KAAK,SAAS,EAAE;MAC7B9C,aAAa,CAACsH,YAAY,CAACoC,eAAe,CAAC,IAAI,CAAC9E,KAAK,CAAC4C,YAAY,EAAEiC,KAAK,CAAC;IAC5E;EACF;EAEArC,KAAKA,CAAA,EAAS;IACZ,IAAI,IAAI,CAACJ,cAAc,CAAC,CAAC,EAAE;MACzB,IAAI,CAACpE,MAAM,CAACnC,MAAM,GAAG,IAAI;MACzBT,aAAa,CAACsH,YAAY,CAACqC,SAAS,CAAC,IAAI,CAAC/E,KAAK,CAAC4C,YAAY,EAAE,IAAI,CAAC;IACrE;EACF;EAEAL,IAAIA,CAAA,EAAS;IACX,IAAI,IAAI,CAACH,cAAc,CAAC,CAAC,EAAE;MACzB,IAAI,CAACpE,MAAM,CAACnC,MAAM,GAAG,KAAK;MAC1BT,aAAa,CAACsH,YAAY,CAACqC,SAAS,CAAC,IAAI,CAAC/E,KAAK,CAAC4C,YAAY,EAAE,KAAK,CAAC;IACtE;EACF;EAEA,IAAWoC,OAAOA,CAAA,EAAkB;IAClC,OAAO,IAAI,CAACC,cAAc;EAC5B;;EAEA;EACA,IAAIrC,YAAYA,CAAA,EAAqB;IACnC,OAAO,IAAI,CAAC5C,KAAK,CAAC4C,YAAY;EAChC;;EAEA;EACA,IAAIsC,SAASA,CAAA,EAAsB;IACjC,OAAO,IAAI,CAACC,oBAAoB,KAAK,IAAI,CAACA,oBAAoB,GAAG,IAAI3J,qBAAqB,CAAC,IAAI,CAAC,CAAC;EACnG;EAEA4J,2BAA2BA,CAACJ,OAAsB,EAAEK,KAAoC,EAAE;IACxF,IAAI,CAACJ,cAAc,GAAGD,OAAO;IAC7B,IAAIK,KAAK,EAAE;MACT3F,MAAM,CAACC,MAAM,CAAC,IAAI,CAAC3B,MAAM,EAAEqH,KAAK,CAAC;MACjC,IAAI,CAACnF,YAAY,CAACoF,KAAK,CAAC,CAAC;IAC3B;EACF;AACF"}
|
|
1
|
+
{"version":3,"names":["DefaultEventDispatcher","addTextTrackCue","addTrack","AspectRatio","findMediaTrackByUid","findTextTrackByUid","MediaTrackEventType","MediaTrackType","PlayerEventType","PresentationMode","removeTextTrackCue","removeTrack","TextTrackEventType","TextTrackMode","TrackListEventType","THEOplayerNativeAdsAdapter","THEOplayerNativeCastAdapter","AbrAdapter","NativeModules","Platform","StatusBar","TextTrackStyleAdapter","EventBroadcastAdapter","NativePlayerModule","THEORCTPlayerModule","defaultPlayerState","source","undefined","autoplay","paused","seekable","buffered","pipConfig","startsAutomatically","backgroundAudioConfig","enabled","presentationMode","inline","muted","seeking","volume","currentTime","duration","NaN","playbackRate","preload","aspectRatio","FIT","keepScreenOn","audioTracks","videoTracks","textTracks","targetVideoQuality","selectedVideoTrack","selectedAudioTrack","selectedTextTrack","THEOplayerAdapter","constructor","view","initialState","arguments","length","_defineProperty","applyAutoplay","_state","event","OS","setHidden","fullscreen","isFinite","start","end","_event$seekable","_event$buffered","sort","a","b","subType","cue","trackUid","track","ADD_CUE","REMOVE_CUE","ADD_TRACK","REMOVE_TRACK","CHANGE_TRACK","trackType","tracks","VIDEO","ACTIVE_QUALITY_CHANGED","Object","assign","activeQuality","qualities","isAudio","AUDIO","_view","_adsAdapter","_castAdapter","_abrAdapter","_textTrackStyleAdapter","addEventListener","SOURCE_CHANGE","onSourceChange","LOADED_METADATA","onLoadedMetadata","PAUSE","onPause","PLAYING","onPlaying","TIME_UPDATE","onTimeupdate","DURATION_CHANGE","onDurationChange","RATE_CHANGE","onRateChange","SEEKING","onSeeking","SEEKED","onSeeked","PROGRESS","onProgress","TEXT_TRACK_LIST","onTextTrackList","TEXT_TRACK","onTextTrack","MEDIA_TRACK","onMediaTrack","MEDIA_TRACK_LIST","onMediaTrackList","PRESENTATIONMODE_CHANGE","onPresentationModeChange","hasValidSource","abr","ads","play","pause","type","setPreload","nativeHandle","seekableEnd","ranges","cast","isNaN","seekTime","Infinity","setCurrentTime","pipConfiguration","setPipConfig","backgroundAudioConfiguration","setBackgroundAudioConfig","setPresentationMode","setMuted","setPlaybackRate","setSelectedAudioTrack","setSelectedVideoTrack","forEach","uid","mode","showing","disabled","setSelectedTextTrack","textTrackStyle","setSource","target","Array","isArray","targetQuality","setTargetVideoQuality","setVolume","ratio","setAspectRatio","value","setKeepScreenOn","setPaused","version","_playerVersion","broadcast","_externalEventRouter","initializeFromNativePlayer_","state","init_"],"sources":["THEOplayerAdapter.ts"],"sourcesContent":["import { DefaultEventDispatcher } from './event/DefaultEventDispatcher';\nimport type {\n ABRConfiguration,\n AdsAPI,\n CastAPI,\n DurationChangeEvent,\n EventBroadcastAPI,\n LoadedMetadataEvent,\n MediaTrack,\n MediaTrackEvent,\n MediaTrackListEvent,\n NativeHandleType,\n PiPConfiguration,\n PlayerEventMap,\n PresentationModeChangeEvent,\n ProgressEvent,\n RateChangeEvent,\n SourceDescription,\n TextTrack,\n TextTrackEvent,\n TextTrackListEvent,\n THEOplayer,\n THEOplayerView,\n TimeUpdateEvent,\n} from 'react-native-theoplayer';\nimport {\n addTextTrackCue,\n addTrack,\n AspectRatio,\n BackgroundAudioConfiguration,\n findMediaTrackByUid,\n findTextTrackByUid,\n MediaTrackEventType,\n MediaTrackType,\n PlayerEventType,\n PlayerVersion,\n PreloadType,\n PresentationMode,\n removeTextTrackCue,\n removeTrack,\n TextTrackEventType,\n TextTrackMode,\n TextTrackStyle,\n TrackListEventType,\n} from 'react-native-theoplayer';\nimport { THEOplayerNativeAdsAdapter } from './ads/THEOplayerNativeAdsAdapter';\nimport { THEOplayerNativeCastAdapter } from './cast/THEOplayerNativeCastAdapter';\nimport { AbrAdapter } from './abr/AbrAdapter';\nimport { NativeModules, Platform, StatusBar } from 'react-native';\nimport { TextTrackStyleAdapter } from './track/TextTrackStyleAdapter';\nimport type { NativePlayerState } from './NativePlayerState';\nimport { EventBroadcastAdapter } from './broadcast/EventBroadcastAdapter';\n\nconst NativePlayerModule = NativeModules.THEORCTPlayerModule;\n\nconst defaultPlayerState: NativePlayerState = {\n source: undefined,\n autoplay: false,\n paused: false,\n seekable: [],\n buffered: [],\n pipConfig: { startsAutomatically: false },\n backgroundAudioConfig: { enabled: false },\n presentationMode: PresentationMode.inline,\n muted: false,\n seeking: false,\n volume: 1,\n currentTime: 0,\n duration: NaN,\n playbackRate: 1,\n preload: 'none',\n aspectRatio: AspectRatio.FIT,\n keepScreenOn: true,\n audioTracks: [],\n videoTracks: [],\n textTracks: [],\n targetVideoQuality: undefined,\n selectedVideoTrack: undefined,\n selectedAudioTrack: undefined,\n selectedTextTrack: undefined,\n};\n\nexport class THEOplayerAdapter extends DefaultEventDispatcher<PlayerEventMap> implements THEOplayer {\n private readonly _view: THEOplayerView;\n private readonly _state: NativePlayerState;\n private readonly _adsAdapter: THEOplayerNativeAdsAdapter;\n private readonly _castAdapter: THEOplayerNativeCastAdapter;\n private readonly _abrAdapter: AbrAdapter;\n private readonly _textTrackStyleAdapter: TextTrackStyleAdapter;\n private _externalEventRouter: EventBroadcastAPI | undefined = undefined;\n private _playerVersion!: PlayerVersion;\n\n constructor(view: THEOplayerView, initialState: NativePlayerState = defaultPlayerState) {\n super();\n this._view = view;\n this._state = { ...initialState };\n this._adsAdapter = new THEOplayerNativeAdsAdapter(this._view);\n this._castAdapter = new THEOplayerNativeCastAdapter(this, this._view);\n this._abrAdapter = new AbrAdapter(this._view);\n this._textTrackStyleAdapter = new TextTrackStyleAdapter(this._view);\n\n this.addEventListener(PlayerEventType.SOURCE_CHANGE, this.onSourceChange);\n this.addEventListener(PlayerEventType.LOADED_METADATA, this.onLoadedMetadata);\n this.addEventListener(PlayerEventType.PAUSE, this.onPause);\n this.addEventListener(PlayerEventType.PLAYING, this.onPlaying);\n this.addEventListener(PlayerEventType.TIME_UPDATE, this.onTimeupdate);\n this.addEventListener(PlayerEventType.DURATION_CHANGE, this.onDurationChange);\n this.addEventListener(PlayerEventType.RATE_CHANGE, this.onRateChange);\n this.addEventListener(PlayerEventType.SEEKING, this.onSeeking);\n this.addEventListener(PlayerEventType.SEEKED, this.onSeeked);\n this.addEventListener(PlayerEventType.PROGRESS, this.onProgress);\n this.addEventListener(PlayerEventType.TEXT_TRACK_LIST, this.onTextTrackList);\n this.addEventListener(PlayerEventType.TEXT_TRACK, this.onTextTrack);\n this.addEventListener(PlayerEventType.MEDIA_TRACK, this.onMediaTrack);\n this.addEventListener(PlayerEventType.MEDIA_TRACK_LIST, this.onMediaTrackList);\n this.addEventListener(PlayerEventType.PRESENTATIONMODE_CHANGE, this.onPresentationModeChange);\n }\n\n private onSourceChange = () => {\n this.applyAutoplay();\n };\n\n private hasValidSource(): boolean {\n return this._state.source !== undefined;\n }\n\n private onPause = () => {\n this._state.paused = true;\n };\n\n private onPlaying = () => {\n this._state.paused = false;\n };\n\n private onPresentationModeChange = (event: PresentationModeChangeEvent) => {\n this._state.presentationMode = event.presentationMode;\n if (Platform.OS === 'ios') {\n StatusBar.setHidden(event.presentationMode === PresentationMode.fullscreen, 'slide');\n }\n };\n\n private onTimeupdate = (event: TimeUpdateEvent) => {\n this._state.currentTime = event.currentTime;\n };\n\n private onLoadedMetadata = (event: LoadedMetadataEvent) => {\n this._state.duration = event.duration;\n this._state.audioTracks = event.audioTracks;\n this._state.videoTracks = event.videoTracks;\n this._state.textTracks = event.textTracks;\n this._state.selectedAudioTrack = event.selectedAudioTrack;\n this._state.selectedVideoTrack = event.selectedVideoTrack;\n this._state.selectedTextTrack = event.selectedTextTrack;\n if (isFinite(this._state.duration)) {\n this._state.seekable = [{ start: 0, end: this._state.duration }];\n }\n };\n\n private onDurationChange = (event: DurationChangeEvent) => {\n this._state.duration = event.duration;\n };\n\n private onRateChange = (event: RateChangeEvent) => {\n this._state.playbackRate = event.playbackRate;\n };\n\n private onSeeking = () => {\n this._state.seeking = true;\n };\n\n private onSeeked = () => {\n this._state.seeking = false;\n };\n\n private onProgress = (event: ProgressEvent) => {\n this._state.seekable = event.seekable?.sort((a, b) => a.end - b.end);\n this._state.buffered = event.buffered?.sort((a, b) => a.end - b.end);\n };\n\n private onTextTrack = (event: TextTrackEvent) => {\n const { subType, cue, trackUid } = event;\n const track = findTextTrackByUid(this._state.textTracks, trackUid);\n switch (subType) {\n case TextTrackEventType.ADD_CUE:\n addTextTrackCue(track, cue);\n break;\n case TextTrackEventType.REMOVE_CUE:\n removeTextTrackCue(track, cue);\n break;\n }\n };\n\n private onTextTrackList = (event: TextTrackListEvent) => {\n const { subType, track } = event;\n switch (subType) {\n case TrackListEventType.ADD_TRACK:\n this._state.textTracks = addTrack(this._state.textTracks, track);\n break;\n case TrackListEventType.REMOVE_TRACK:\n this._state.textTracks = removeTrack(this._state.textTracks, track);\n break;\n case TrackListEventType.CHANGE_TRACK:\n this._state.textTracks = removeTrack(this._state.textTracks, track);\n this._state.textTracks = addTrack(this._state.textTracks, track);\n break;\n }\n };\n\n private onMediaTrack = (event: MediaTrackEvent) => {\n const { subType, trackType, trackUid } = event;\n const tracks = trackType === MediaTrackType.VIDEO ? this._state.videoTracks : this._state.audioTracks;\n const track = findMediaTrackByUid(tracks, trackUid);\n switch (subType) {\n case MediaTrackEventType.ACTIVE_QUALITY_CHANGED:\n // Update local state\n if (track) {\n Object.assign(track, { ...track, activeQuality: event.qualities });\n }\n break;\n }\n };\n\n private onMediaTrackList = (event: MediaTrackListEvent) => {\n const { subType, trackType, track } = event;\n const isAudio = trackType === MediaTrackType.AUDIO;\n switch (subType) {\n case TrackListEventType.ADD_TRACK:\n if (isAudio) {\n this._state.audioTracks = addTrack(this._state.audioTracks, track);\n } else {\n this._state.videoTracks = addTrack(this._state.videoTracks, track);\n }\n break;\n case TrackListEventType.REMOVE_TRACK:\n if (isAudio) {\n this._state.audioTracks = removeTrack(this._state.audioTracks, track);\n } else {\n this._state.videoTracks = removeTrack(this._state.videoTracks, track);\n }\n break;\n case TrackListEventType.CHANGE_TRACK:\n if (isAudio) {\n this._state.audioTracks = removeTrack(this._state.audioTracks, track);\n this._state.audioTracks = addTrack(this._state.audioTracks, track);\n } else {\n this._state.videoTracks = removeTrack(this._state.videoTracks, track);\n this._state.videoTracks = addTrack(this._state.videoTracks, track);\n }\n break;\n }\n };\n\n get abr(): ABRConfiguration | undefined {\n return Platform.OS === 'android' ? this._abrAdapter : undefined;\n }\n\n get ads(): AdsAPI {\n return this._adsAdapter;\n }\n\n private applyAutoplay() {\n if (!this.hasValidSource()) {\n return;\n }\n if (this._state.autoplay) {\n this.play();\n } else {\n this.pause();\n }\n }\n\n set autoplay(autoplay: boolean) {\n this._state.autoplay = autoplay;\n\n // Apply autoplay in case a source was already set.\n // If autoplay is changed before setting a source, `onSourceChange` applies autoplay.\n this.applyAutoplay();\n }\n\n get autoplay(): boolean {\n return this._state.autoplay;\n }\n\n set preload(type: PreloadType) {\n this._state.preload = type;\n NativePlayerModule.setPreload(this._view.nativeHandle, type);\n }\n\n get preload(): PreloadType {\n return this._state.preload;\n }\n\n get seekable() {\n return this._state.seekable;\n }\n\n private seekableEnd(): number {\n const ranges = this.seekable;\n return ranges.length === 0 ? 0 : ranges[ranges.length - 1].end;\n }\n\n get buffered() {\n return this._state.buffered;\n }\n\n get cast(): CastAPI {\n return this._castAdapter;\n }\n\n get currentTime(): number {\n return this._state.currentTime;\n }\n\n set currentTime(currentTime: number) {\n if (!this.hasValidSource()) {\n return;\n }\n\n if (isNaN(currentTime)) {\n return;\n }\n\n // Sanitise currentTime\n let seekTime = currentTime;\n if (currentTime === Infinity) {\n seekTime = this.seekableEnd();\n }\n\n this._state.currentTime = seekTime;\n NativePlayerModule.setCurrentTime(this._view.nativeHandle, seekTime);\n }\n\n get duration(): number {\n return this._state.duration;\n }\n\n get pipConfiguration(): PiPConfiguration {\n return this._state.pipConfig;\n }\n\n set pipConfiguration(pipConfiguration: PiPConfiguration) {\n this._state.pipConfig = pipConfiguration;\n NativePlayerModule.setPipConfig(this._view.nativeHandle, pipConfiguration);\n }\n\n get backgroundAudioConfiguration(): BackgroundAudioConfiguration {\n return this._state.backgroundAudioConfig;\n }\n\n set backgroundAudioConfiguration(backgroundAudioConfiguration: BackgroundAudioConfiguration) {\n this._state.backgroundAudioConfig = backgroundAudioConfiguration;\n NativePlayerModule.setBackgroundAudioConfig(this._view.nativeHandle, backgroundAudioConfiguration);\n }\n\n get presentationMode(): PresentationMode {\n return this._state.presentationMode;\n }\n\n set presentationMode(presentationMode: PresentationMode) {\n this._state.presentationMode = presentationMode;\n NativePlayerModule.setPresentationMode(this._view.nativeHandle, presentationMode);\n }\n\n get muted(): boolean {\n return this._state.muted;\n }\n\n set muted(muted: boolean) {\n this._state.muted = muted;\n NativePlayerModule.setMuted(this._view.nativeHandle, muted);\n }\n\n get seeking(): boolean {\n return this._state.seeking;\n }\n\n get paused(): boolean {\n return this._state.paused;\n }\n\n get playbackRate(): number {\n return this._state.playbackRate;\n }\n\n set playbackRate(playbackRate: number) {\n this._state.playbackRate = playbackRate;\n NativePlayerModule.setPlaybackRate(this._view.nativeHandle, playbackRate);\n }\n\n get audioTracks(): MediaTrack[] {\n return this._state.audioTracks;\n }\n\n get selectedAudioTrack(): number | undefined {\n return this._state.selectedAudioTrack;\n }\n\n set selectedAudioTrack(trackUid: number | undefined) {\n if (!this.hasValidSource()) {\n return;\n }\n this._state.selectedAudioTrack = trackUid;\n NativePlayerModule.setSelectedAudioTrack(this._view.nativeHandle, trackUid !== undefined ? trackUid : -1);\n }\n\n get videoTracks(): MediaTrack[] {\n return this._state.videoTracks;\n }\n\n get selectedVideoTrack(): number | undefined {\n return this._state.selectedVideoTrack;\n }\n\n set selectedVideoTrack(trackUid: number | undefined) {\n if (!this.hasValidSource()) {\n return;\n }\n this._state.selectedVideoTrack = trackUid;\n this._state.targetVideoQuality = undefined;\n NativePlayerModule.setSelectedVideoTrack(this._view.nativeHandle, trackUid !== undefined ? trackUid : -1);\n }\n\n get textTracks(): TextTrack[] {\n return this._state.textTracks;\n }\n\n get selectedTextTrack(): number | undefined {\n return this._state.selectedTextTrack;\n }\n\n set selectedTextTrack(trackUid: number | undefined) {\n if (!this.hasValidSource()) {\n return;\n }\n this._state.selectedTextTrack = trackUid;\n this.textTracks.forEach((track) => {\n if (track.uid === trackUid) {\n track.mode = TextTrackMode.showing;\n } else if (track.mode === TextTrackMode.showing) {\n track.mode = TextTrackMode.disabled;\n }\n });\n NativePlayerModule.setSelectedTextTrack(this._view.nativeHandle, trackUid !== undefined ? trackUid : -1);\n }\n\n get textTrackStyle(): TextTrackStyle {\n return this._textTrackStyleAdapter;\n }\n\n get source(): SourceDescription | undefined {\n return this._state.source;\n }\n\n set source(source: SourceDescription | undefined) {\n // This is to correctly reset autoplay during a source change.\n this.pause();\n this._state.source = source;\n NativePlayerModule.setSource(this._view.nativeHandle, source);\n // Reset state for play-out of new source\n Object.assign(this._state, {\n playbackRate: 1,\n seeking: false,\n audioTracks: [],\n videoTracks: [],\n textTracks: [],\n seekable: [],\n buffered: [],\n selectedTextTrack: undefined,\n selectedVideoTrack: undefined,\n selectedAudioTrack: undefined,\n targetVideoQuality: undefined,\n });\n }\n\n get targetVideoQuality(): number | number[] | undefined {\n return this._state.targetVideoQuality;\n }\n\n set targetVideoQuality(target: number | number[] | undefined) {\n if (!this.hasValidSource()) {\n return;\n }\n // Always pass an array for targetVideoQuality.\n this._state.targetVideoQuality = !target ? [] : Array.isArray(target) ? target : [target];\n\n // Update local state\n const track = findMediaTrackByUid(this._state.videoTracks, this.selectedVideoTrack);\n if (track) {\n Object.assign(track, { ...track, targetQuality: this._state.targetVideoQuality });\n }\n NativePlayerModule.setTargetVideoQuality(this._view.nativeHandle, this._state.targetVideoQuality);\n }\n\n get volume(): number {\n return this._state.volume;\n }\n\n set volume(volume: number) {\n this._state.volume = volume;\n NativePlayerModule.setVolume(this._view.nativeHandle, volume);\n }\n\n get aspectRatio(): AspectRatio {\n return this._state.aspectRatio;\n }\n\n set aspectRatio(ratio: AspectRatio) {\n this._state.aspectRatio = ratio;\n NativePlayerModule.setAspectRatio(this._view.nativeHandle, ratio);\n }\n\n get keepScreenOn(): boolean {\n return this._state.keepScreenOn;\n }\n\n set keepScreenOn(value: boolean) {\n this._state.keepScreenOn = value;\n if (Platform.OS === 'android') {\n NativePlayerModule.setKeepScreenOn(this._view.nativeHandle, value);\n }\n }\n\n pause(): void {\n if (this.hasValidSource()) {\n this._state.paused = true;\n NativePlayerModule.setPaused(this._view.nativeHandle, true);\n }\n }\n\n play(): void {\n if (this.hasValidSource()) {\n this._state.paused = false;\n NativePlayerModule.setPaused(this._view.nativeHandle, false);\n }\n }\n\n public get version(): PlayerVersion {\n return this._playerVersion;\n }\n\n // @internal\n get nativeHandle(): NativeHandleType {\n return this._view.nativeHandle;\n }\n\n // @internal\n get broadcast(): EventBroadcastAPI {\n return this._externalEventRouter ?? (this._externalEventRouter = new EventBroadcastAdapter(this));\n }\n\n initializeFromNativePlayer_(version: PlayerVersion, state: NativePlayerState | undefined) {\n this._playerVersion = version;\n if (state) {\n Object.assign(this._state, state);\n }\n this._castAdapter.init_();\n }\n}\n"],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key i
|
|
|
2
2
|
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
3
3
|
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
4
4
|
import { NativeModules } from 'react-native';
|
|
5
|
+
const NativePlayerModule = NativeModules.THEORCTPlayerModule;
|
|
5
6
|
export class AbrAdapter {
|
|
6
7
|
constructor(view) {
|
|
7
8
|
_defineProperty(this, "_view", void 0);
|
|
@@ -24,7 +25,7 @@ export class AbrAdapter {
|
|
|
24
25
|
this.updateConfig();
|
|
25
26
|
}
|
|
26
27
|
updateConfig() {
|
|
27
|
-
|
|
28
|
+
NativePlayerModule.setABRConfig(this._view.nativeHandle, {
|
|
28
29
|
targetBuffer: this._targetBuffer,
|
|
29
30
|
strategy: this._strategy
|
|
30
31
|
});
|