react-native-theoplayer 3.4.2 → 3.6.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 +17 -0
- package/android/src/main/AndroidManifest.xml +0 -6
- package/android/src/main/java/com/theoplayer/PlayerEventEmitter.kt +1 -1
- package/android/src/main/java/com/theoplayer/broadcast/DefaultEventDispatcher.kt +2 -1
- package/android/src/main/java/com/theoplayer/cast/CastEventAdapter.kt +1 -0
- package/android/src/main/java/com/theoplayer/drm/ContentProtectionModule.kt +2 -0
- package/android/src/main/java/com/theoplayer/media/MediaNotificationBuilder.kt +11 -0
- package/android/src/main/java/com/theoplayer/media/MediaPlaybackService.kt +31 -19
- package/android/src/main/java/com/theoplayer/player/PlayerModule.kt +7 -0
- package/android/src/main/res/drawable/ic_notification_large.png +0 -0
- package/ios/THEOplayerRCTPlayerAPI.swift +2 -2
- package/ios/eventBroadcasting/THEOplayerRCTBroadcastEventHandler.swift +1 -1
- package/lib/commonjs/api/player/THEOplayer.js.map +1 -1
- package/lib/commonjs/internal/adapter/NativePlayerState.js.map +1 -1
- package/lib/commonjs/internal/adapter/THEOplayerAdapter.js +10 -0
- package/lib/commonjs/internal/adapter/THEOplayerAdapter.js.map +1 -1
- package/lib/commonjs/internal/adapter/THEOplayerWebAdapter.js +6 -0
- package/lib/commonjs/internal/adapter/THEOplayerWebAdapter.js.map +1 -1
- package/lib/module/api/player/THEOplayer.js.map +1 -1
- package/lib/module/internal/adapter/NativePlayerState.js.map +1 -1
- package/lib/module/internal/adapter/THEOplayerAdapter.js +10 -0
- package/lib/module/internal/adapter/THEOplayerAdapter.js.map +1 -1
- package/lib/module/internal/adapter/THEOplayerWebAdapter.js +6 -0
- package/lib/module/internal/adapter/THEOplayerWebAdapter.js.map +1 -1
- package/lib/typescript/api/player/THEOplayer.d.ts +8 -0
- package/lib/typescript/internal/adapter/NativePlayerState.d.ts +2 -3
- package/lib/typescript/internal/adapter/THEOplayerAdapter.d.ts +2 -0
- package/lib/typescript/internal/adapter/THEOplayerWebAdapter.d.ts +2 -0
- package/package.json +1 -1
- package/src/api/player/THEOplayer.ts +9 -0
- package/src/internal/adapter/NativePlayerState.ts +2 -3
- package/src/internal/adapter/THEOplayerAdapter.ts +12 -0
- package/src/internal/adapter/THEOplayerWebAdapter.ts +8 -0
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,23 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.1.0/)
|
|
6
6
|
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [3.6.0] - 24-02-02
|
|
9
|
+
|
|
10
|
+
### Fixed
|
|
11
|
+
|
|
12
|
+
- Fixed a build issue on the iOS bridge caused by the deprecated DispatchDispatch protocol.
|
|
13
|
+
- Fixed an issue on Android where the `MediaPlaybackService` would sometimes crash with a `ForegroundServiceDidNotStartInTimeException` exception.
|
|
14
|
+
|
|
15
|
+
### Added
|
|
16
|
+
|
|
17
|
+
- Added the ability to override both small and large notification icons in Android with `ic_notification_small` and `ic_notification_large` resources respectively.
|
|
18
|
+
|
|
19
|
+
## [3.5.0] - 24-01-30
|
|
20
|
+
|
|
21
|
+
### Added
|
|
22
|
+
|
|
23
|
+
- Added the ability to toggle `keepScreenOn` on Android. By default, screen timeout is disabled while the player is visible.
|
|
24
|
+
|
|
8
25
|
## [3.4.2] - 23-12-22
|
|
9
26
|
|
|
10
27
|
### Fixed
|
|
@@ -7,12 +7,6 @@
|
|
|
7
7
|
-->
|
|
8
8
|
<uses-permission android:name="android.permission.INTERNET" />
|
|
9
9
|
|
|
10
|
-
<!--
|
|
11
|
-
Allows using PowerManager WakeLocks to keep processor from sleeping or screen from dimming.
|
|
12
|
-
Protection level: normal
|
|
13
|
-
-->
|
|
14
|
-
<uses-permission android:name="android.permission.WAKE_LOCK" />
|
|
15
|
-
|
|
16
10
|
<!--
|
|
17
11
|
Allows a regular application to use Service.startForeground.
|
|
18
12
|
Protection level: normal
|
|
@@ -294,7 +294,7 @@ class PlayerEventEmitter internal constructor(
|
|
|
294
294
|
)
|
|
295
295
|
payload.putMap(EVENT_PROP_VERSION, WritableNativeMap().apply {
|
|
296
296
|
putString(EVENT_PROP_VERSION, THEOplayerGlobal.getVersion())
|
|
297
|
-
putString(EVENT_PROP_SUITE_VERSION,
|
|
297
|
+
putString(EVENT_PROP_SUITE_VERSION, "")
|
|
298
298
|
})
|
|
299
299
|
|
|
300
300
|
// Notify the player is ready
|
|
@@ -21,7 +21,8 @@ open class DefaultEventDispatcher: EventDispatcher<Event<*>> {
|
|
|
21
21
|
|
|
22
22
|
fun dispatchEvent(event: Event<*>) {
|
|
23
23
|
_listeners[event.type]?.forEach { listener ->
|
|
24
|
-
|
|
24
|
+
@Suppress("UNCHECKED_CAST")
|
|
25
|
+
(listener as EventListener<Event<*>>).handleEvent(event)
|
|
25
26
|
}
|
|
26
27
|
}
|
|
27
28
|
}
|
|
@@ -41,6 +41,7 @@ class CastEventAdapter(private val castApi: Cast, private val emitter: Emitter)
|
|
|
41
41
|
|
|
42
42
|
private fun serializeError(error: CastError): WritableMap {
|
|
43
43
|
val errorPayload = Arguments.createMap()
|
|
44
|
+
@Suppress("SENSELESS_NULL_IN_WHEN")
|
|
44
45
|
errorPayload.putString(
|
|
45
46
|
EVENT_PROP_ERROR_CODE,
|
|
46
47
|
when (error.errorCode) {
|
|
@@ -216,10 +216,12 @@ class ContentProtectionModule(private val context: ReactApplicationContext) :
|
|
|
216
216
|
}
|
|
217
217
|
|
|
218
218
|
@ReactMethod
|
|
219
|
+
@Suppress("UNUSED_PARAMETER")
|
|
219
220
|
fun addListener(eventName: String?) {
|
|
220
221
|
}
|
|
221
222
|
|
|
222
223
|
@ReactMethod
|
|
224
|
+
@Suppress("UNUSED_PARAMETER")
|
|
223
225
|
fun removeListeners(count: Int?) {
|
|
224
226
|
}
|
|
225
227
|
|
|
@@ -5,6 +5,7 @@ import android.app.NotificationChannel
|
|
|
5
5
|
import android.app.NotificationManager
|
|
6
6
|
import android.content.Context
|
|
7
7
|
import android.graphics.Bitmap
|
|
8
|
+
import android.graphics.BitmapFactory
|
|
8
9
|
import android.net.Uri
|
|
9
10
|
import android.os.Build
|
|
10
11
|
import android.support.v4.media.session.MediaSessionCompat
|
|
@@ -195,3 +196,13 @@ fun fetchImageFromUri(uri: Uri?, block: (Bitmap?) -> Unit) {
|
|
|
195
196
|
)
|
|
196
197
|
}
|
|
197
198
|
}
|
|
199
|
+
|
|
200
|
+
fun loadPlaceHolderIcon(context: Context, res: Int = R.drawable.ic_notification_large): Bitmap? {
|
|
201
|
+
return try {
|
|
202
|
+
BitmapFactory.decodeResource(context.resources, res)
|
|
203
|
+
} catch(e: Exception) {
|
|
204
|
+
// Make sure we never crash on trying to decode a possibly overridden icon resource.
|
|
205
|
+
Log.w(TAG, "Failed to decode placeHolderIcon: ${e.message}")
|
|
206
|
+
null
|
|
207
|
+
}
|
|
208
|
+
}
|
|
@@ -3,6 +3,7 @@ package com.theoplayer.media
|
|
|
3
3
|
import android.app.*
|
|
4
4
|
import android.content.Intent
|
|
5
5
|
import android.content.pm.ServiceInfo
|
|
6
|
+
import android.graphics.Bitmap
|
|
6
7
|
import android.os.Binder
|
|
7
8
|
import android.os.Build
|
|
8
9
|
import android.os.Bundle
|
|
@@ -96,6 +97,8 @@ class MediaPlaybackService : MediaBrowserServiceCompat() {
|
|
|
96
97
|
Log.w(TAG, "Failed to start foreground service: ${e.message}")
|
|
97
98
|
}
|
|
98
99
|
|
|
100
|
+
// Quickly post a notification and already call startForeground. This has to happen within 5s
|
|
101
|
+
// after creating the service to avoid a ForegroundServiceDidNotStartInTimeException
|
|
99
102
|
updateNotification(PlaybackStateCompat.STATE_PLAYING)
|
|
100
103
|
}
|
|
101
104
|
|
|
@@ -222,6 +225,7 @@ class MediaPlaybackService : MediaBrowserServiceCompat() {
|
|
|
222
225
|
}
|
|
223
226
|
}
|
|
224
227
|
|
|
228
|
+
@Suppress("UNUSED_PARAMETER")
|
|
225
229
|
private fun allowBrowsing(clientPackageName: String, clientUid: Int): Boolean {
|
|
226
230
|
// Only allow browsing from the same package
|
|
227
231
|
return TextUtils.equals(clientPackageName, packageName)
|
|
@@ -264,26 +268,13 @@ class MediaPlaybackService : MediaBrowserServiceCompat() {
|
|
|
264
268
|
// When a service runs in the foreground, it must display a notification, ideally
|
|
265
269
|
// with one or more transport controls. The notification should also include useful
|
|
266
270
|
// information from the session's metadata.
|
|
267
|
-
|
|
271
|
+
|
|
272
|
+
// Get the foreground service started in time before fetching an icon.
|
|
273
|
+
startForegroundWithPlaybackState(playbackState, loadPlaceHolderIcon(this))
|
|
274
|
+
|
|
275
|
+
// Fetch the correct large icon asynchronously.
|
|
268
276
|
fetchImageFromUri(mediaSession.controller.metadata?.description?.iconUri) { largeIcon ->
|
|
269
|
-
|
|
270
|
-
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
|
|
271
|
-
startForeground(
|
|
272
|
-
NOTIFICATION_ID,
|
|
273
|
-
notificationBuilder.build(playbackState, largeIcon, enableMediaControls),
|
|
274
|
-
ServiceInfo.FOREGROUND_SERVICE_TYPE_MEDIA_PLAYBACK
|
|
275
|
-
)
|
|
276
|
-
} else {
|
|
277
|
-
startForeground(
|
|
278
|
-
NOTIFICATION_ID,
|
|
279
|
-
notificationBuilder.build(playbackState, largeIcon, enableMediaControls)
|
|
280
|
-
)
|
|
281
|
-
}
|
|
282
|
-
} catch (e: IllegalStateException) {
|
|
283
|
-
// Make sure that app does not crash in case anything goes wrong with starting the service.
|
|
284
|
-
// https://issuetracker.google.com/issues/229000935
|
|
285
|
-
Log.w(TAG, "Failed to start foreground service: ${e.message}")
|
|
286
|
-
}
|
|
277
|
+
startForegroundWithPlaybackState(playbackState, largeIcon)
|
|
287
278
|
}
|
|
288
279
|
}
|
|
289
280
|
PlaybackStateCompat.STATE_STOPPED -> {
|
|
@@ -303,4 +294,25 @@ class MediaPlaybackService : MediaBrowserServiceCompat() {
|
|
|
303
294
|
}
|
|
304
295
|
}
|
|
305
296
|
}
|
|
297
|
+
|
|
298
|
+
private fun startForegroundWithPlaybackState(@PlaybackStateCompat.State playbackState: Int, largeIcon: Bitmap? = null) {
|
|
299
|
+
try {
|
|
300
|
+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
|
|
301
|
+
startForeground(
|
|
302
|
+
NOTIFICATION_ID,
|
|
303
|
+
notificationBuilder.build(playbackState, largeIcon, enableMediaControls),
|
|
304
|
+
ServiceInfo.FOREGROUND_SERVICE_TYPE_MEDIA_PLAYBACK
|
|
305
|
+
)
|
|
306
|
+
} else {
|
|
307
|
+
startForeground(
|
|
308
|
+
NOTIFICATION_ID,
|
|
309
|
+
notificationBuilder.build(playbackState, largeIcon, enableMediaControls)
|
|
310
|
+
)
|
|
311
|
+
}
|
|
312
|
+
} catch (e: IllegalStateException) {
|
|
313
|
+
// Make sure that app does not crash in case anything goes wrong with starting the service.
|
|
314
|
+
// https://issuetracker.google.com/issues/229000935
|
|
315
|
+
Log.w(TAG, "Failed to start foreground service: ${e.message}")
|
|
316
|
+
}
|
|
317
|
+
}
|
|
306
318
|
}
|
|
@@ -213,6 +213,13 @@ class PlayerModule(context: ReactApplicationContext) : ReactContextBaseJavaModul
|
|
|
213
213
|
}
|
|
214
214
|
}
|
|
215
215
|
|
|
216
|
+
@ReactMethod
|
|
217
|
+
fun setKeepScreenOn(tag: Int, value: Boolean) {
|
|
218
|
+
viewResolver.resolveViewByTag(tag) { view: ReactTHEOplayerView? ->
|
|
219
|
+
view?.playerContext?.playerView?.keepScreenOn = value
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
|
|
216
223
|
@ReactMethod
|
|
217
224
|
fun setTextTrackStyle(tag: Int, style: ReadableMap?) {
|
|
218
225
|
viewResolver.resolveViewByTag(tag) { view: ReactTHEOplayerView? ->
|
|
Binary file
|
|
@@ -139,8 +139,8 @@ class THEOplayerRCTPlayerAPI: NSObject, RCTBridgeModule {
|
|
|
139
139
|
if newPresentationMode == .fullscreen {
|
|
140
140
|
print(ERROR_MESSAGE_PLAYER_FULLSCREEN_UNSUPPORTED_FEATURE)
|
|
141
141
|
}
|
|
142
|
-
if let theView = self.bridge.uiManager.view(forReactTag: node) as? THEOplayerRCTView,
|
|
143
|
-
|
|
142
|
+
else if let theView = self.bridge.uiManager.view(forReactTag: node) as? THEOplayerRCTView,
|
|
143
|
+
let player = theView.player {
|
|
144
144
|
if player.presentationMode != newPresentationMode {
|
|
145
145
|
if DEBUG_PLAYER_API { PrintUtils.printLog(logText: "[NATIVE] Changing TheoPlayer to \(presentationMode)") }
|
|
146
146
|
player.presentationMode = newPresentationMode
|
|
@@ -27,7 +27,7 @@ public class THEOplayerRCTBroadcastEventHandler: DefaultEventDispatcher {
|
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
29
|
|
|
30
|
-
public class DefaultEventDispatcher: NSObject, THEOplayerSDK.EventDispatcherProtocol
|
|
30
|
+
public class DefaultEventDispatcher: NSObject, THEOplayerSDK.EventDispatcherProtocol {
|
|
31
31
|
private var eventListeners = [String: [EventListenerWrapper]]()
|
|
32
32
|
|
|
33
33
|
public func addEventListener<E>(type: THEOplayerSDK.EventType<E>, listener: @escaping (_ : E) -> ()) -> THEOplayerSDK.EventListener {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["AspectRatio","exports"],"sources":["THEOplayer.ts"],"sourcesContent":["import type { EventDispatcher } from '../event/EventDispatcher';\nimport type { PlayerEventMap } from './PlayerEventMap';\nimport type { ABRConfiguration } from '../abr/ABRConfiguration';\nimport type { SourceDescription } from '../source/SourceDescription';\nimport type { AdsAPI } from '../ads/AdsAPI';\nimport type { CastAPI } from '../cast/CastAPI';\nimport type { MediaTrack } from '../track/MediaTrack';\nimport type { TextTrack } from '../track/TextTrack';\nimport type { TimeRange } from '../timeranges/TimeRange';\nimport type { TextTrackStyle } from '../track/TextTrackStyle';\nimport type { PresentationMode } from '../presentation/PresentationMode';\nimport type { PiPConfiguration } from '../pip/PiPConfiguration';\nimport type { BackgroundAudioConfiguration } from '../backgroundAudio/BackgroundAudioConfiguration';\nimport type { PlayerVersion } from './PlayerVersion';\nimport type { EventBroadcastAPI } from \"../broadcast/EventBroadcastAPI\";\n\nexport type PreloadType = 'none' | 'metadata' | 'auto' | '';\n\n/**\n * Specifies an aspect ratio for the player.\n *\n * <br/> - `FIT` (default): Scales the player so that all content fits inside its bounding box, keeping the original aspect ratio of the content..\n * <br/> - `FILL`: Scales the player so that all content fits inside the bounding box, which will be stretched to fill it entirely.\n * <br/> - `ASPECT_FILL`: Scales the player so that the content fills up the entire bounding box, keeping the original aspect ratio of the content.\n *\n * @public\n * @defaultValue `'FIT'`\n */\nexport enum AspectRatio {\n FIT = 'fit',\n FILL = 'fill',\n ASPECT_FILL = 'aspectFill',\n}\n\nexport type NativeHandleType = unknown;\n\n/**\n * The THEOplayer API.\n */\nexport interface THEOplayer extends EventDispatcher<PlayerEventMap> {\n /**\n * The player's adaptive bitrate (ABR) configuration.\n *\n * @remarks\n * <br/> - This property is supported on Android & Web platforms only.\n */\n readonly abr: ABRConfiguration | undefined;\n\n /**\n * A source description that determines the current media resource.\n */\n source: SourceDescription | undefined;\n\n /**\n * Start or resume playback.\n */\n play(): void;\n\n /**\n * Pause playback.\n */\n pause(): void;\n\n /**\n * Whether the player is paused.\n */\n readonly paused: boolean;\n\n /**\n * Whether the player should immediately start playback after source change.\n */\n autoplay: boolean;\n\n /**\n * The preload setting of the player.\n */\n preload: PreloadType;\n\n /**\n * Returns a list of TimeRanges that represents the ranges of the media resource that are seekable by the player.\n */\n seekable: TimeRange[];\n\n /**\n * Returns a list of TimeRanges that represents the ranges of the media resource that are buffered by the player.\n */\n buffered: TimeRange[];\n\n /**\n * Used to set the playback rate of the media.\n *\n * @example\n * <br/> - `playbackRate = 0.70` will slow down the playback rate of the media by 30%.\n * <br/> - `playbackRate = 1.25` will speed up the playback rate of the media by 25%.\n *\n * @remarks\n * <br/> - Playback rate is represented by a number where `1` is default playback speed.\n * <br/> - Playback rate must be a positive number.\n * <br/> - It is recommended that you limit the range to between 0.5 and 4.\n */\n playbackRate: number;\n\n /**\n * Used to set the volume of the audio.\n *\n * @remarks\n * <br/> - Volume is represented by a floating point number between `0.0` and `1.0`.\n */\n volume: number;\n\n /**\n * Determines whether audio is muted.\n */\n muted: boolean;\n\n /**\n * Whether the player is seeking.\n */\n readonly seeking: boolean;\n\n /**\n * The PresentationMode of the player. Can be switched to: `picture-in-picture`, `fullscreen` or `inline`\n */\n presentationMode: PresentationMode;\n\n /**\n * List of audio tracks of the current source.\n */\n audioTracks: MediaTrack[];\n\n /**\n * List of video tracks of the current source.\n */\n videoTracks: MediaTrack[];\n\n /**\n * List of text tracks of the current source.\n */\n textTracks: TextTrack[];\n\n /**\n * Used to set the current selected text track by passing its `uid`, or `undefined` to select none.\n */\n selectedTextTrack: number | undefined;\n\n /**\n * The text track style API.\n *\n * @remarks\n * Only available for Web.\n */\n readonly textTrackStyle: TextTrackStyle;\n\n /**\n * Used to set the current selected video track by passing its `uid`, or `undefined` to select none.\n */\n selectedVideoTrack: number | undefined;\n\n /**\n * Used to set the current selected video quality by passing its `uid`, or `undefined` to select none.\n */\n targetVideoQuality: number | number[] | undefined;\n\n /**\n * Used to set the current selected audio track by passing its `uid`, or `undefined` to select none.\n */\n selectedAudioTrack: number | undefined;\n\n /**\n * The current playback position of the media, in milliseconds.\n */\n currentTime: number;\n\n /**\n * Used to set the aspect ratio of the player.\n *\n * @remarks\n * Only available for iOS and Android.\n */\n aspectRatio: AspectRatio;\n\n /**\n * The active configuration for PiP.\n */\n pipConfiguration: PiPConfiguration;\n\n /**\n * The active configuration for PiP.\n */\n backgroundAudioConfiguration: BackgroundAudioConfiguration;\n\n /**\n * The duration of the media, in milliseconds.\n */\n readonly duration: number;\n\n /**\n * The API for advertisements.\n */\n readonly ads: AdsAPI;\n\n /**\n * The API for casting devices.\n */\n readonly cast: CastAPI;\n\n /**\n * The player version.\n */\n readonly version: PlayerVersion;\n\n /**\n * Native player handle.\n */\n readonly nativeHandle: NativeHandleType;\n\n /**\n * Event Broadcast API.\n */\n readonly broadcast: EventBroadcastAPI;\n}\n"],"mappings":";;;;;;AAkBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AATA,IAUYA,WAAW,GAAAC,OAAA,CAAAD,WAAA,0BAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAA,OAAXA,WAAW;AAAA;AAQvB;AACA;AACA"}
|
|
1
|
+
{"version":3,"names":["AspectRatio","exports"],"sources":["THEOplayer.ts"],"sourcesContent":["import type { EventDispatcher } from '../event/EventDispatcher';\nimport type { PlayerEventMap } from './PlayerEventMap';\nimport type { ABRConfiguration } from '../abr/ABRConfiguration';\nimport type { SourceDescription } from '../source/SourceDescription';\nimport type { AdsAPI } from '../ads/AdsAPI';\nimport type { CastAPI } from '../cast/CastAPI';\nimport type { MediaTrack } from '../track/MediaTrack';\nimport type { TextTrack } from '../track/TextTrack';\nimport type { TimeRange } from '../timeranges/TimeRange';\nimport type { TextTrackStyle } from '../track/TextTrackStyle';\nimport type { PresentationMode } from '../presentation/PresentationMode';\nimport type { PiPConfiguration } from '../pip/PiPConfiguration';\nimport type { BackgroundAudioConfiguration } from '../backgroundAudio/BackgroundAudioConfiguration';\nimport type { PlayerVersion } from './PlayerVersion';\nimport type { EventBroadcastAPI } from \"../broadcast/EventBroadcastAPI\";\n\nexport type PreloadType = 'none' | 'metadata' | 'auto' | '';\n\n/**\n * Specifies an aspect ratio for the player.\n *\n * <br/> - `FIT` (default): Scales the player so that all content fits inside its bounding box, keeping the original aspect ratio of the content..\n * <br/> - `FILL`: Scales the player so that all content fits inside the bounding box, which will be stretched to fill it entirely.\n * <br/> - `ASPECT_FILL`: Scales the player so that the content fills up the entire bounding box, keeping the original aspect ratio of the content.\n *\n * @public\n * @defaultValue `'FIT'`\n */\nexport enum AspectRatio {\n FIT = 'fit',\n FILL = 'fill',\n ASPECT_FILL = 'aspectFill',\n}\n\nexport type NativeHandleType = unknown;\n\n/**\n * The THEOplayer API.\n */\nexport interface THEOplayer extends EventDispatcher<PlayerEventMap> {\n /**\n * The player's adaptive bitrate (ABR) configuration.\n *\n * @remarks\n * <br/> - This property is supported on Android & Web platforms only.\n */\n readonly abr: ABRConfiguration | undefined;\n\n /**\n * A source description that determines the current media resource.\n */\n source: SourceDescription | undefined;\n\n /**\n * Start or resume playback.\n */\n play(): void;\n\n /**\n * Pause playback.\n */\n pause(): void;\n\n /**\n * Whether the player is paused.\n */\n readonly paused: boolean;\n\n /**\n * Whether the player should immediately start playback after source change.\n */\n autoplay: boolean;\n\n /**\n * The preload setting of the player.\n */\n preload: PreloadType;\n\n /**\n * Returns a list of TimeRanges that represents the ranges of the media resource that are seekable by the player.\n */\n seekable: TimeRange[];\n\n /**\n * Returns a list of TimeRanges that represents the ranges of the media resource that are buffered by the player.\n */\n buffered: TimeRange[];\n\n /**\n * Used to set the playback rate of the media.\n *\n * @example\n * <br/> - `playbackRate = 0.70` will slow down the playback rate of the media by 30%.\n * <br/> - `playbackRate = 1.25` will speed up the playback rate of the media by 25%.\n *\n * @remarks\n * <br/> - Playback rate is represented by a number where `1` is default playback speed.\n * <br/> - Playback rate must be a positive number.\n * <br/> - It is recommended that you limit the range to between 0.5 and 4.\n */\n playbackRate: number;\n\n /**\n * Used to set the volume of the audio.\n *\n * @remarks\n * <br/> - Volume is represented by a floating point number between `0.0` and `1.0`.\n */\n volume: number;\n\n /**\n * Determines whether audio is muted.\n */\n muted: boolean;\n\n /**\n * Whether the player is seeking.\n */\n readonly seeking: boolean;\n\n /**\n * The PresentationMode of the player. Can be switched to: `picture-in-picture`, `fullscreen` or `inline`\n */\n presentationMode: PresentationMode;\n\n /**\n * List of audio tracks of the current source.\n */\n audioTracks: MediaTrack[];\n\n /**\n * List of video tracks of the current source.\n */\n videoTracks: MediaTrack[];\n\n /**\n * List of text tracks of the current source.\n */\n textTracks: TextTrack[];\n\n /**\n * Used to set the current selected text track by passing its `uid`, or `undefined` to select none.\n */\n selectedTextTrack: number | undefined;\n\n /**\n * The text track style API.\n *\n * @remarks\n * Only available for Web.\n */\n readonly textTrackStyle: TextTrackStyle;\n\n /**\n * Used to set the current selected video track by passing its `uid`, or `undefined` to select none.\n */\n selectedVideoTrack: number | undefined;\n\n /**\n * Used to set the current selected video quality by passing its `uid`, or `undefined` to select none.\n */\n targetVideoQuality: number | number[] | undefined;\n\n /**\n * Used to set the current selected audio track by passing its `uid`, or `undefined` to select none.\n */\n selectedAudioTrack: number | undefined;\n\n /**\n * The current playback position of the media, in milliseconds.\n */\n currentTime: number;\n\n /**\n * Used to set the aspect ratio of the player.\n *\n * @remarks\n * Only available for iOS and Android.\n */\n aspectRatio: AspectRatio;\n\n /**\n * Toggle the wake-lock on the player view. The screen will time out if disabled.\n *\n * @defaultValue `true`\n * @remarks\n * Only available on Android.\n */\n keepScreenOn: boolean;\n\n /**\n * The active configuration for PiP.\n */\n pipConfiguration: PiPConfiguration;\n\n /**\n * The active configuration for PiP.\n */\n backgroundAudioConfiguration: BackgroundAudioConfiguration;\n\n /**\n * The duration of the media, in milliseconds.\n */\n readonly duration: number;\n\n /**\n * The API for advertisements.\n */\n readonly ads: AdsAPI;\n\n /**\n * The API for casting devices.\n */\n readonly cast: CastAPI;\n\n /**\n * The player version.\n */\n readonly version: PlayerVersion;\n\n /**\n * Native player handle.\n */\n readonly nativeHandle: NativeHandleType;\n\n /**\n * Event Broadcast API.\n */\n readonly broadcast: EventBroadcastAPI;\n}\n"],"mappings":";;;;;;AAkBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AATA,IAUYA,WAAW,GAAAC,OAAA,CAAAD,WAAA,0BAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAA,OAAXA,WAAW;AAAA;AAQvB;AACA;AACA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["NativePlayerState.ts"],"sourcesContent":["import type { MediaTrack, PreloadType, PresentationMode, SourceDescription, TextTrack, TimeRange } from 'react-native-theoplayer';\nimport type {
|
|
1
|
+
{"version":3,"names":[],"sources":["NativePlayerState.ts"],"sourcesContent":["import type { MediaTrack, PreloadType, PresentationMode, SourceDescription, TextTrack, TimeRange } from 'react-native-theoplayer';\nimport type { PiPConfiguration, AspectRatio, BackgroundAudioConfiguration } from 'react-native-theoplayer';\n\nexport interface NativePlayerState {\n source: SourceDescription | undefined;\n autoplay: boolean;\n paused: boolean;\n seekable: TimeRange[];\n buffered: TimeRange[];\n pipConfig: PiPConfiguration;\n backgroundAudioConfig: BackgroundAudioConfiguration;\n presentationMode: PresentationMode;\n muted: boolean;\n seeking: boolean;\n volume: number;\n currentTime: number;\n duration: number;\n playbackRate: number;\n preload: PreloadType;\n aspectRatio: AspectRatio;\n keepScreenOn: boolean;\n audioTracks: MediaTrack[];\n videoTracks: MediaTrack[];\n textTracks: TextTrack[];\n targetVideoQuality: number | number[] | undefined;\n selectedVideoTrack: number | undefined;\n selectedAudioTrack: number | undefined;\n selectedTextTrack: number | undefined;\n}\n"],"mappings":""}
|
|
@@ -36,6 +36,7 @@ const defaultPlayerState = {
|
|
|
36
36
|
playbackRate: 1,
|
|
37
37
|
preload: 'none',
|
|
38
38
|
aspectRatio: _reactNativeTheoplayer.AspectRatio.FIT,
|
|
39
|
+
keepScreenOn: true,
|
|
39
40
|
audioTracks: [],
|
|
40
41
|
videoTracks: [],
|
|
41
42
|
textTracks: [],
|
|
@@ -433,6 +434,15 @@ class THEOplayerAdapter extends _DefaultEventDispatcher.DefaultEventDispatcher {
|
|
|
433
434
|
this._state.aspectRatio = ratio;
|
|
434
435
|
_reactNative.NativeModules.PlayerModule.setAspectRatio(this._view.nativeHandle, ratio);
|
|
435
436
|
}
|
|
437
|
+
get keepScreenOn() {
|
|
438
|
+
return this._state.keepScreenOn;
|
|
439
|
+
}
|
|
440
|
+
set keepScreenOn(value) {
|
|
441
|
+
this._state.keepScreenOn = value;
|
|
442
|
+
if (_reactNative.Platform.OS === 'android') {
|
|
443
|
+
_reactNative.NativeModules.PlayerModule.setKeepScreenOn(this._view.nativeHandle, value);
|
|
444
|
+
}
|
|
445
|
+
}
|
|
436
446
|
pause() {
|
|
437
447
|
if (this.hasValidSource()) {
|
|
438
448
|
this._state.paused = true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_DefaultEventDispatcher","require","_reactNativeTheoplayer","_THEOplayerNativeAdsAdapter","_THEOplayerNativeCastAdapter","_AbrAdapter","_reactNative","_TextTrackStyleAdapter","_EventBroadcastAdapter","_defineProperty","obj","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","defaultPlayerState","source","autoplay","paused","seekable","buffered","pipConfig","startsAutomatically","backgroundAudioConfig","enabled","presentationMode","PresentationMode","inline","muted","seeking","volume","currentTime","duration","NaN","playbackRate","preload","aspectRatio","AspectRatio","FIT","audioTracks","videoTracks","textTracks","targetVideoQuality","selectedVideoTrack","selectedAudioTrack","selectedTextTrack","THEOplayerAdapter","DefaultEventDispatcher","constructor","view","initialState","arguments","length","applyAutoplay","_state","event","isFinite","start","end","_event$seekable","_event$buffered","sort","a","b","subType","cue","trackUid","track","findTextTrackByUid","TextTrackEventType","ADD_CUE","addTextTrackCue","REMOVE_CUE","removeTextTrackCue","TrackListEventType","ADD_TRACK","addTrack","REMOVE_TRACK","removeTrack","CHANGE_TRACK","trackType","tracks","MediaTrackType","VIDEO","findMediaTrackByUid","MediaTrackEventType","ACTIVE_QUALITY_CHANGED","assign","activeQuality","qualities","isAudio","AUDIO","_view","_adsAdapter","THEOplayerNativeAdsAdapter","_castAdapter","THEOplayerNativeCastAdapter","_abrAdapter","AbrAdapter","_textTrackStyleAdapter","TextTrackStyleAdapter","addEventListener","PlayerEventType","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","Platform","OS","ads","play","pause","type","NativeModules","PlayerModule","setPreload","nativeHandle","seekableEnd","ranges","cast","isNaN","seekTime","Infinity","setCurrentTime","pipConfiguration","setPipConfig","backgroundAudioConfiguration","setBackgroundAudioConfig","setPresentationMode","setMuted","setPlaybackRate","setSelectedAudioTrack","setSelectedVideoTrack","forEach","uid","mode","TextTrackMode","showing","disabled","setSelectedTextTrack","textTrackStyle","setSource","target","Array","isArray","targetQuality","setTargetVideoQuality","setVolume","ratio","setAspectRatio","setPaused","version","_playerVersion","broadcast","_externalEventRouter","EventBroadcastAdapter","initializeFromNativePlayer_","state","init_","exports"],"sources":["THEOplayerAdapter.ts"],"sourcesContent":["import { DefaultEventDispatcher } from './event/DefaultEventDispatcher';\nimport type {\n ABRConfiguration,\n AdsAPI,\n CastAPI,\n DurationChangeEvent, 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 } 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 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 };\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 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":"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"}
|
|
1
|
+
{"version":3,"names":["_DefaultEventDispatcher","require","_reactNativeTheoplayer","_THEOplayerNativeAdsAdapter","_THEOplayerNativeCastAdapter","_AbrAdapter","_reactNative","_TextTrackStyleAdapter","_EventBroadcastAdapter","_defineProperty","obj","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","defaultPlayerState","source","autoplay","paused","seekable","buffered","pipConfig","startsAutomatically","backgroundAudioConfig","enabled","presentationMode","PresentationMode","inline","muted","seeking","volume","currentTime","duration","NaN","playbackRate","preload","aspectRatio","AspectRatio","FIT","keepScreenOn","audioTracks","videoTracks","textTracks","targetVideoQuality","selectedVideoTrack","selectedAudioTrack","selectedTextTrack","THEOplayerAdapter","DefaultEventDispatcher","constructor","view","initialState","arguments","length","applyAutoplay","_state","event","isFinite","start","end","_event$seekable","_event$buffered","sort","a","b","subType","cue","trackUid","track","findTextTrackByUid","TextTrackEventType","ADD_CUE","addTextTrackCue","REMOVE_CUE","removeTextTrackCue","TrackListEventType","ADD_TRACK","addTrack","REMOVE_TRACK","removeTrack","CHANGE_TRACK","trackType","tracks","MediaTrackType","VIDEO","findMediaTrackByUid","MediaTrackEventType","ACTIVE_QUALITY_CHANGED","assign","activeQuality","qualities","isAudio","AUDIO","_view","_adsAdapter","THEOplayerNativeAdsAdapter","_castAdapter","THEOplayerNativeCastAdapter","_abrAdapter","AbrAdapter","_textTrackStyleAdapter","TextTrackStyleAdapter","addEventListener","PlayerEventType","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","Platform","OS","ads","play","pause","type","NativeModules","PlayerModule","setPreload","nativeHandle","seekableEnd","ranges","cast","isNaN","seekTime","Infinity","setCurrentTime","pipConfiguration","setPipConfig","backgroundAudioConfiguration","setBackgroundAudioConfig","setPresentationMode","setMuted","setPlaybackRate","setSelectedAudioTrack","setSelectedVideoTrack","forEach","uid","mode","TextTrackMode","showing","disabled","setSelectedTextTrack","textTrackStyle","setSource","target","Array","isArray","targetQuality","setTargetVideoQuality","setVolume","ratio","setAspectRatio","setKeepScreenOn","setPaused","version","_playerVersion","broadcast","_externalEventRouter","EventBroadcastAdapter","initializeFromNativePlayer_","state","init_","exports"],"sources":["THEOplayerAdapter.ts"],"sourcesContent":["import { DefaultEventDispatcher } from './event/DefaultEventDispatcher';\nimport type {\n ABRConfiguration,\n AdsAPI,\n CastAPI,\n DurationChangeEvent, 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 } 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 };\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,IAAAA,uBAAA,GAAAC,OAAA;AAwBA,IAAAC,sBAAA,GAAAD,OAAA;AAoBA,IAAAE,2BAAA,GAAAF,OAAA;AACA,IAAAG,4BAAA,GAAAH,OAAA;AACA,IAAAI,WAAA,GAAAJ,OAAA;AACA,IAAAK,YAAA,GAAAL,OAAA;AACA,IAAAM,sBAAA,GAAAN,OAAA;AAEA,IAAAO,sBAAA,GAAAP,OAAA;AAA0E,SAAAQ,gBAAAC,GAAA,EAAAC,GAAA,EAAAC,KAAA,IAAAD,GAAA,GAAAE,cAAA,CAAAF,GAAA,OAAAA,GAAA,IAAAD,GAAA,IAAAI,MAAA,CAAAC,cAAA,CAAAL,GAAA,EAAAC,GAAA,IAAAC,KAAA,EAAAA,KAAA,EAAAI,UAAA,QAAAC,YAAA,QAAAC,QAAA,oBAAAR,GAAA,CAAAC,GAAA,IAAAC,KAAA,WAAAF,GAAA;AAAA,SAAAG,eAAAM,GAAA,QAAAR,GAAA,GAAAS,YAAA,CAAAD,GAAA,2BAAAR,GAAA,gBAAAA,GAAA,GAAAU,MAAA,CAAAV,GAAA;AAAA,SAAAS,aAAAE,KAAA,EAAAC,IAAA,eAAAD,KAAA,iBAAAA,KAAA,kBAAAA,KAAA,MAAAE,IAAA,GAAAF,KAAA,CAAAG,MAAA,CAAAC,WAAA,OAAAF,IAAA,KAAAG,SAAA,QAAAC,GAAA,GAAAJ,IAAA,CAAAK,IAAA,CAAAP,KAAA,EAAAC,IAAA,2BAAAK,GAAA,sBAAAA,GAAA,YAAAE,SAAA,4DAAAP,IAAA,gBAAAF,MAAA,GAAAU,MAAA,EAAAT,KAAA;AAE1E,MAAMU,kBAAqC,GAAG;EAC5CC,MAAM,EAAEN,SAAS;EACjBO,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,EAAEC,uCAAgB,CAACC,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,EAAEC,kCAAW,CAACC,GAAG;EAC5BC,YAAY,EAAE,IAAI;EAClBC,WAAW,EAAE,EAAE;EACfC,WAAW,EAAE,EAAE;EACfC,UAAU,EAAE,EAAE;EACdC,kBAAkB,EAAEjC,SAAS;EAC7BkC,kBAAkB,EAAElC,SAAS;EAC7BmC,kBAAkB,EAAEnC,SAAS;EAC7BoC,iBAAiB,EAAEpC;AACrB,CAAC;AAEM,MAAMqC,iBAAiB,SAASC,8CAAsB,CAAuC;EAUlGC,WAAWA,CAACC,IAAoB,EAAwD;IAAA,IAAtDC,YAA+B,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAA1C,SAAA,GAAA0C,SAAA,MAAGrC,kBAAkB;IACpF,KAAK,CAAC,CAAC;IAACvB,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA,+BAJoDkB,SAAS;IAAAlB,eAAA;IAAAA,eAAA,yBA6B9C,MAAM;MAC7B,IAAI,CAAC8D,aAAa,CAAC,CAAC;IACtB,CAAC;IAAA9D,eAAA,kBAMiB,MAAM;MACtB,IAAI,CAAC+D,MAAM,CAACrC,MAAM,GAAG,IAAI;IAC3B,CAAC;IAAA1B,eAAA,oBAEmB,MAAM;MACxB,IAAI,CAAC+D,MAAM,CAACrC,MAAM,GAAG,KAAK;IAC5B,CAAC;IAAA1B,eAAA,mCAEmCgE,KAAkC,IAAK;MACzE,IAAI,CAACD,MAAM,CAAC9B,gBAAgB,GAAG+B,KAAK,CAAC/B,gBAAgB;IACvD,CAAC;IAAAjC,eAAA,uBAEuBgE,KAAsB,IAAK;MACjD,IAAI,CAACD,MAAM,CAACxB,WAAW,GAAGyB,KAAK,CAACzB,WAAW;IAC7C,CAAC;IAAAvC,eAAA,2BAE2BgE,KAA0B,IAAK;MACzD,IAAI,CAACD,MAAM,CAACvB,QAAQ,GAAGwB,KAAK,CAACxB,QAAQ;MACrC,IAAI,CAACuB,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,IAAIW,QAAQ,CAAC,IAAI,CAACF,MAAM,CAACvB,QAAQ,CAAC,EAAE;QAClC,IAAI,CAACuB,MAAM,CAACpC,QAAQ,GAAG,CAAC;UAACuC,KAAK,EAAE,CAAC;UAAEC,GAAG,EAAE,IAAI,CAACJ,MAAM,CAACvB;QAAQ,CAAC,CAAC;MAChE;IACF,CAAC;IAAAxC,eAAA,2BAE2BgE,KAA0B,IAAK;MACzD,IAAI,CAACD,MAAM,CAACvB,QAAQ,GAAGwB,KAAK,CAACxB,QAAQ;IACvC,CAAC;IAAAxC,eAAA,uBAEuBgE,KAAsB,IAAK;MACjD,IAAI,CAACD,MAAM,CAACrB,YAAY,GAAGsB,KAAK,CAACtB,YAAY;IAC/C,CAAC;IAAA1C,eAAA,oBAEmB,MAAM;MACxB,IAAI,CAAC+D,MAAM,CAAC1B,OAAO,GAAG,IAAI;IAC5B,CAAC;IAAArC,eAAA,mBAEkB,MAAM;MACvB,IAAI,CAAC+D,MAAM,CAAC1B,OAAO,GAAG,KAAK;IAC7B,CAAC;IAAArC,eAAA,qBAEqBgE,KAAoB,IAAK;MAAA,IAAAI,eAAA,EAAAC,eAAA;MAC7C,IAAI,CAACN,MAAM,CAACpC,QAAQ,IAAAyC,eAAA,GAAGJ,KAAK,CAACrC,QAAQ,cAAAyC,eAAA,uBAAdA,eAAA,CAAgBE,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKD,CAAC,CAACJ,GAAG,GAAGK,CAAC,CAACL,GAAG,CAAC;MACpE,IAAI,CAACJ,MAAM,CAACnC,QAAQ,IAAAyC,eAAA,GAAGL,KAAK,CAACpC,QAAQ,cAAAyC,eAAA,uBAAdA,eAAA,CAAgBC,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKD,CAAC,CAACJ,GAAG,GAAGK,CAAC,CAACL,GAAG,CAAC;IACtE,CAAC;IAAAnE,eAAA,sBAEsBgE,KAAqB,IAAK;MAC/C,MAAM;QAAES,OAAO;QAAEC,GAAG;QAAEC;MAAS,CAAC,GAAGX,KAAK;MACxC,MAAMY,KAAK,GAAG,IAAAC,yCAAkB,EAAC,IAAI,CAACd,MAAM,CAACb,UAAU,EAAEyB,QAAQ,CAAC;MAClE,QAAQF,OAAO;QACb,KAAKK,yCAAkB,CAACC,OAAO;UAC7B,IAAAC,sCAAe,EAACJ,KAAK,EAAEF,GAAG,CAAC;UAC3B;QACF,KAAKI,yCAAkB,CAACG,UAAU;UAChC,IAAAC,yCAAkB,EAACN,KAAK,EAAEF,GAAG,CAAC;UAC9B;MACJ;IACF,CAAC;IAAA1E,eAAA,0BAE0BgE,KAAyB,IAAK;MACvD,MAAM;QAAES,OAAO;QAAEG;MAAM,CAAC,GAAGZ,KAAK;MAChC,QAAQS,OAAO;QACb,KAAKU,yCAAkB,CAACC,SAAS;UAC/B,IAAI,CAACrB,MAAM,CAACb,UAAU,GAAG,IAAAmC,+BAAQ,EAAC,IAAI,CAACtB,MAAM,CAACb,UAAU,EAAE0B,KAAK,CAAC;UAChE;QACF,KAAKO,yCAAkB,CAACG,YAAY;UAClC,IAAI,CAACvB,MAAM,CAACb,UAAU,GAAG,IAAAqC,kCAAW,EAAC,IAAI,CAACxB,MAAM,CAACb,UAAU,EAAE0B,KAAK,CAAC;UACnE;QACF,KAAKO,yCAAkB,CAACK,YAAY;UAClC,IAAI,CAACzB,MAAM,CAACb,UAAU,GAAG,IAAAqC,kCAAW,EAAC,IAAI,CAACxB,MAAM,CAACb,UAAU,EAAE0B,KAAK,CAAC;UACnE,IAAI,CAACb,MAAM,CAACb,UAAU,GAAG,IAAAmC,+BAAQ,EAAC,IAAI,CAACtB,MAAM,CAACb,UAAU,EAAE0B,KAAK,CAAC;UAChE;MACJ;IACF,CAAC;IAAA5E,eAAA,uBAEuBgE,KAAsB,IAAK;MACjD,MAAM;QAAES,OAAO;QAAEgB,SAAS;QAAEd;MAAS,CAAC,GAAGX,KAAK;MAC9C,MAAM0B,MAAM,GAAGD,SAAS,KAAKE,qCAAc,CAACC,KAAK,GAAG,IAAI,CAAC7B,MAAM,CAACd,WAAW,GAAG,IAAI,CAACc,MAAM,CAACf,WAAW;MACrG,MAAM4B,KAAK,GAAG,IAAAiB,0CAAmB,EAACH,MAAM,EAAEf,QAAQ,CAAC;MACnD,QAAQF,OAAO;QACb,KAAKqB,0CAAmB,CAACC,sBAAsB;UAC7C;UACA,IAAInB,KAAK,EAAE;YACTvE,MAAM,CAAC2F,MAAM,CAACpB,KAAK,EAAE;cAAE,GAAGA,KAAK;cAAEqB,aAAa,EAAEjC,KAAK,CAACkC;YAAU,CAAC,CAAC;UACpE;UACA;MACJ;IACF,CAAC;IAAAlG,eAAA,2BAE2BgE,KAA0B,IAAK;MACzD,MAAM;QAAES,OAAO;QAAEgB,SAAS;QAAEb;MAAM,CAAC,GAAGZ,KAAK;MAC3C,MAAMmC,OAAO,GAAGV,SAAS,KAAKE,qCAAc,CAACS,KAAK;MAClD,QAAQ3B,OAAO;QACb,KAAKU,yCAAkB,CAACC,SAAS;UAC/B,IAAIe,OAAO,EAAE;YACX,IAAI,CAACpC,MAAM,CAACf,WAAW,GAAG,IAAAqC,+BAAQ,EAAC,IAAI,CAACtB,MAAM,CAACf,WAAW,EAAE4B,KAAK,CAAC;UACpE,CAAC,MAAM;YACL,IAAI,CAACb,MAAM,CAACd,WAAW,GAAG,IAAAoC,+BAAQ,EAAC,IAAI,CAACtB,MAAM,CAACd,WAAW,EAAE2B,KAAK,CAAC;UACpE;UACA;QACF,KAAKO,yCAAkB,CAACG,YAAY;UAClC,IAAIa,OAAO,EAAE;YACX,IAAI,CAACpC,MAAM,CAACf,WAAW,GAAG,IAAAuC,kCAAW,EAAC,IAAI,CAACxB,MAAM,CAACf,WAAW,EAAE4B,KAAK,CAAC;UACvE,CAAC,MAAM;YACL,IAAI,CAACb,MAAM,CAACd,WAAW,GAAG,IAAAsC,kCAAW,EAAC,IAAI,CAACxB,MAAM,CAACd,WAAW,EAAE2B,KAAK,CAAC;UACvE;UACA;QACF,KAAKO,yCAAkB,CAACK,YAAY;UAClC,IAAIW,OAAO,EAAE;YACX,IAAI,CAACpC,MAAM,CAACf,WAAW,GAAG,IAAAuC,kCAAW,EAAC,IAAI,CAACxB,MAAM,CAACf,WAAW,EAAE4B,KAAK,CAAC;YACrE,IAAI,CAACb,MAAM,CAACf,WAAW,GAAG,IAAAqC,+BAAQ,EAAC,IAAI,CAACtB,MAAM,CAACf,WAAW,EAAE4B,KAAK,CAAC;UACpE,CAAC,MAAM;YACL,IAAI,CAACb,MAAM,CAACd,WAAW,GAAG,IAAAsC,kCAAW,EAAC,IAAI,CAACxB,MAAM,CAACd,WAAW,EAAE2B,KAAK,CAAC;YACrE,IAAI,CAACb,MAAM,CAACd,WAAW,GAAG,IAAAoC,+BAAQ,EAAC,IAAI,CAACtB,MAAM,CAACd,WAAW,EAAE2B,KAAK,CAAC;UACpE;UACA;MACJ;IACF,CAAC;IAzJC,IAAI,CAACyB,KAAK,GAAG3C,IAAI;IACjB,IAAI,CAACK,MAAM,GAAG;MAAE,GAAGJ;IAAa,CAAC;IACjC,IAAI,CAAC2C,WAAW,GAAG,IAAIC,sDAA0B,CAAC,IAAI,CAACF,KAAK,CAAC;IAC7D,IAAI,CAACG,YAAY,GAAG,IAAIC,wDAA2B,CAAC,IAAI,EAAE,IAAI,CAACJ,KAAK,CAAC;IACrE,IAAI,CAACK,WAAW,GAAG,IAAIC,sBAAU,CAAC,IAAI,CAACN,KAAK,CAAC;IAC7C,IAAI,CAACO,sBAAsB,GAAG,IAAIC,4CAAqB,CAAC,IAAI,CAACR,KAAK,CAAC;IAEnE,IAAI,CAACS,gBAAgB,CAACC,sCAAe,CAACC,aAAa,EAAE,IAAI,CAACC,cAAc,CAAC;IACzE,IAAI,CAACH,gBAAgB,CAACC,sCAAe,CAACG,eAAe,EAAE,IAAI,CAACC,gBAAgB,CAAC;IAC7E,IAAI,CAACL,gBAAgB,CAACC,sCAAe,CAACK,KAAK,EAAE,IAAI,CAACC,OAAO,CAAC;IAC1D,IAAI,CAACP,gBAAgB,CAACC,sCAAe,CAACO,OAAO,EAAE,IAAI,CAACC,SAAS,CAAC;IAC9D,IAAI,CAACT,gBAAgB,CAACC,sCAAe,CAACS,WAAW,EAAE,IAAI,CAACC,YAAY,CAAC;IACrE,IAAI,CAACX,gBAAgB,CAACC,sCAAe,CAACW,eAAe,EAAE,IAAI,CAACC,gBAAgB,CAAC;IAC7E,IAAI,CAACb,gBAAgB,CAACC,sCAAe,CAACa,WAAW,EAAE,IAAI,CAACC,YAAY,CAAC;IACrE,IAAI,CAACf,gBAAgB,CAACC,sCAAe,CAACe,OAAO,EAAE,IAAI,CAACC,SAAS,CAAC;IAC9D,IAAI,CAACjB,gBAAgB,CAACC,sCAAe,CAACiB,MAAM,EAAE,IAAI,CAACC,QAAQ,CAAC;IAC5D,IAAI,CAACnB,gBAAgB,CAACC,sCAAe,CAACmB,QAAQ,EAAE,IAAI,CAACC,UAAU,CAAC;IAChE,IAAI,CAACrB,gBAAgB,CAACC,sCAAe,CAACqB,eAAe,EAAE,IAAI,CAACC,eAAe,CAAC;IAC5E,IAAI,CAACvB,gBAAgB,CAACC,sCAAe,CAACuB,UAAU,EAAE,IAAI,CAACC,WAAW,CAAC;IACnE,IAAI,CAACzB,gBAAgB,CAACC,sCAAe,CAACyB,WAAW,EAAE,IAAI,CAACC,YAAY,CAAC;IACrE,IAAI,CAAC3B,gBAAgB,CAACC,sCAAe,CAAC2B,gBAAgB,EAAE,IAAI,CAACC,gBAAgB,CAAC;IAC9E,IAAI,CAAC7B,gBAAgB,CAACC,sCAAe,CAAC6B,uBAAuB,EAAE,IAAI,CAACC,wBAAwB,CAAC;EAC/F;EAMQC,cAAcA,CAAA,EAAY;IAChC,OAAO,IAAI,CAAC/E,MAAM,CAACvC,MAAM,KAAKN,SAAS;EACzC;EA6HA,IAAI6H,GAAGA,CAAA,EAAiC;IACtC,OAAOC,qBAAQ,CAACC,EAAE,KAAK,SAAS,GAAG,IAAI,CAACvC,WAAW,GAAGxF,SAAS;EACjE;EAEA,IAAIgI,GAAGA,CAAA,EAAW;IAChB,OAAO,IAAI,CAAC5C,WAAW;EACzB;EAEQxC,aAAaA,CAAA,EAAG;IACtB,IAAI,CAAC,IAAI,CAACgF,cAAc,CAAC,CAAC,EAAE;MAC1B;IACF;IACA,IAAI,IAAI,CAAC/E,MAAM,CAACtC,QAAQ,EAAE;MACxB,IAAI,CAAC0H,IAAI,CAAC,CAAC;IACb,CAAC,MAAM;MACL,IAAI,CAACC,KAAK,CAAC,CAAC;IACd;EACF;EAEA,IAAI3H,QAAQA,CAACA,QAAiB,EAAE;IAC9B,IAAI,CAACsC,MAAM,CAACtC,QAAQ,GAAGA,QAAQ;;IAE/B;IACA;IACA,IAAI,CAACqC,aAAa,CAAC,CAAC;EACtB;EAEA,IAAIrC,QAAQA,CAAA,EAAY;IACtB,OAAO,IAAI,CAACsC,MAAM,CAACtC,QAAQ;EAC7B;EAEA,IAAIkB,OAAOA,CAAC0G,IAAiB,EAAE;IAC7B,IAAI,CAACtF,MAAM,CAACpB,OAAO,GAAG0G,IAAI;IAC1BC,0BAAa,CAACC,YAAY,CAACC,UAAU,CAAC,IAAI,CAACnD,KAAK,CAACoD,YAAY,EAAEJ,IAAI,CAAC;EACtE;EAEA,IAAI1G,OAAOA,CAAA,EAAgB;IACzB,OAAO,IAAI,CAACoB,MAAM,CAACpB,OAAO;EAC5B;EAEA,IAAIhB,QAAQA,CAAA,EAAG;IACb,OAAO,IAAI,CAACoC,MAAM,CAACpC,QAAQ;EAC7B;EAEQ+H,WAAWA,CAAA,EAAW;IAC5B,MAAMC,MAAM,GAAG,IAAI,CAAChI,QAAQ;IAC5B,OAAOgI,MAAM,CAAC9F,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG8F,MAAM,CAACA,MAAM,CAAC9F,MAAM,GAAG,CAAC,CAAC,CAACM,GAAG;EAChE;EAEA,IAAIvC,QAAQA,CAAA,EAAG;IACb,OAAO,IAAI,CAACmC,MAAM,CAACnC,QAAQ;EAC7B;EAEA,IAAIgI,IAAIA,CAAA,EAAY;IAClB,OAAO,IAAI,CAACpD,YAAY;EAC1B;EAEA,IAAIjE,WAAWA,CAAA,EAAW;IACxB,OAAO,IAAI,CAACwB,MAAM,CAACxB,WAAW;EAChC;EAEA,IAAIA,WAAWA,CAACA,WAAmB,EAAE;IACnC,IAAI,CAAC,IAAI,CAACuG,cAAc,CAAC,CAAC,EAAE;MAC1B;IACF;IAEA,IAAIe,KAAK,CAACtH,WAAW,CAAC,EAAE;MACtB;IACF;;IAEA;IACA,IAAIuH,QAAQ,GAAGvH,WAAW;IAC1B,IAAIA,WAAW,KAAKwH,QAAQ,EAAE;MAC5BD,QAAQ,GAAG,IAAI,CAACJ,WAAW,CAAC,CAAC;IAC/B;IAEA,IAAI,CAAC3F,MAAM,CAACxB,WAAW,GAAGuH,QAAQ;IAClCR,0BAAa,CAACC,YAAY,CAACS,cAAc,CAAC,IAAI,CAAC3D,KAAK,CAACoD,YAAY,EAAEK,QAAQ,CAAC;EAC9E;EAEA,IAAItH,QAAQA,CAAA,EAAW;IACrB,OAAO,IAAI,CAACuB,MAAM,CAACvB,QAAQ;EAC7B;EAEA,IAAIyH,gBAAgBA,CAAA,EAAqB;IACvC,OAAO,IAAI,CAAClG,MAAM,CAAClC,SAAS;EAC9B;EAEA,IAAIoI,gBAAgBA,CAACA,gBAAkC,EAAE;IACvD,IAAI,CAAClG,MAAM,CAAClC,SAAS,GAAGoI,gBAAgB;IACxCX,0BAAa,CAACC,YAAY,CAACW,YAAY,CAAC,IAAI,CAAC7D,KAAK,CAACoD,YAAY,EAAEQ,gBAAgB,CAAC;EACpF;EAEA,IAAIE,4BAA4BA,CAAA,EAAiC;IAC/D,OAAO,IAAI,CAACpG,MAAM,CAAChC,qBAAqB;EAC1C;EAEA,IAAIoI,4BAA4BA,CAACA,4BAA0D,EAAE;IAC3F,IAAI,CAACpG,MAAM,CAAChC,qBAAqB,GAAGoI,4BAA4B;IAChEb,0BAAa,CAACC,YAAY,CAACa,wBAAwB,CAAC,IAAI,CAAC/D,KAAK,CAACoD,YAAY,EAAEU,4BAA4B,CAAC;EAC5G;EAEA,IAAIlI,gBAAgBA,CAAA,EAAqB;IACvC,OAAO,IAAI,CAAC8B,MAAM,CAAC9B,gBAAgB;EACrC;EAEA,IAAIA,gBAAgBA,CAACA,gBAAkC,EAAE;IACvD,IAAI,CAAC8B,MAAM,CAAC9B,gBAAgB,GAAGA,gBAAgB;IAC/CqH,0BAAa,CAACC,YAAY,CAACc,mBAAmB,CAAC,IAAI,CAAChE,KAAK,CAACoD,YAAY,EAAExH,gBAAgB,CAAC;EAC3F;EAEA,IAAIG,KAAKA,CAAA,EAAY;IACnB,OAAO,IAAI,CAAC2B,MAAM,CAAC3B,KAAK;EAC1B;EAEA,IAAIA,KAAKA,CAACA,KAAc,EAAE;IACxB,IAAI,CAAC2B,MAAM,CAAC3B,KAAK,GAAGA,KAAK;IACzBkH,0BAAa,CAACC,YAAY,CAACe,QAAQ,CAAC,IAAI,CAACjE,KAAK,CAACoD,YAAY,EAAErH,KAAK,CAAC;EACrE;EAEA,IAAIC,OAAOA,CAAA,EAAY;IACrB,OAAO,IAAI,CAAC0B,MAAM,CAAC1B,OAAO;EAC5B;EAEA,IAAIX,MAAMA,CAAA,EAAY;IACpB,OAAO,IAAI,CAACqC,MAAM,CAACrC,MAAM;EAC3B;EAEA,IAAIgB,YAAYA,CAAA,EAAW;IACzB,OAAO,IAAI,CAACqB,MAAM,CAACrB,YAAY;EACjC;EAEA,IAAIA,YAAYA,CAACA,YAAoB,EAAE;IACrC,IAAI,CAACqB,MAAM,CAACrB,YAAY,GAAGA,YAAY;IACvC4G,0BAAa,CAACC,YAAY,CAACgB,eAAe,CAAC,IAAI,CAAClE,KAAK,CAACoD,YAAY,EAAE/G,YAAY,CAAC;EACnF;EAEA,IAAIM,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,CAACsB,QAA4B,EAAE;IACnD,IAAI,CAAC,IAAI,CAACmE,cAAc,CAAC,CAAC,EAAE;MAC1B;IACF;IACA,IAAI,CAAC/E,MAAM,CAACV,kBAAkB,GAAGsB,QAAQ;IACzC2E,0BAAa,CAACC,YAAY,CAACiB,qBAAqB,CAAC,IAAI,CAACnE,KAAK,CAACoD,YAAY,EAAG9E,QAAQ,KAAKzD,SAAS,GAAIyD,QAAQ,GAAG,CAAC,CAAC,CAAC;EACrH;EAEA,IAAI1B,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,CAACuB,QAA4B,EAAE;IACnD,IAAI,CAAC,IAAI,CAACmE,cAAc,CAAC,CAAC,EAAE;MAC1B;IACF;IACA,IAAI,CAAC/E,MAAM,CAACX,kBAAkB,GAAGuB,QAAQ;IACzC,IAAI,CAACZ,MAAM,CAACZ,kBAAkB,GAAGjC,SAAS;IAC1CoI,0BAAa,CAACC,YAAY,CAACkB,qBAAqB,CAAC,IAAI,CAACpE,KAAK,CAACoD,YAAY,EAAG9E,QAAQ,KAAKzD,SAAS,GAAIyD,QAAQ,GAAG,CAAC,CAAC,CAAC;EACrH;EAEA,IAAIzB,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,CAACqB,QAA4B,EAAE;IAClD,IAAI,CAAC,IAAI,CAACmE,cAAc,CAAC,CAAC,EAAE;MAC1B;IACF;IACA,IAAI,CAAC/E,MAAM,CAACT,iBAAiB,GAAGqB,QAAQ;IACxC,IAAI,CAACzB,UAAU,CAACwH,OAAO,CAAE9F,KAAK,IAAK;MACjC,IAAIA,KAAK,CAAC+F,GAAG,KAAKhG,QAAQ,EAAE;QAC1BC,KAAK,CAACgG,IAAI,GAAGC,oCAAa,CAACC,OAAO;MACpC,CAAC,MAAM,IAAIlG,KAAK,CAACgG,IAAI,KAAKC,oCAAa,CAACC,OAAO,EAAE;QAC/ClG,KAAK,CAACgG,IAAI,GAAGC,oCAAa,CAACE,QAAQ;MACrC;IACF,CAAC,CAAC;IACFzB,0BAAa,CAACC,YAAY,CAACyB,oBAAoB,CAAC,IAAI,CAAC3E,KAAK,CAACoD,YAAY,EAAG9E,QAAQ,KAAKzD,SAAS,GAAIyD,QAAQ,GAAG,CAAC,CAAC,CAAC;EACpH;EAEA,IAAIsG,cAAcA,CAAA,EAAmB;IACnC,OAAO,IAAI,CAACrE,sBAAsB;EACpC;EAEA,IAAIpF,MAAMA,CAAA,EAAkC;IAC1C,OAAO,IAAI,CAACuC,MAAM,CAACvC,MAAM;EAC3B;EAEA,IAAIA,MAAMA,CAACA,MAAqC,EAAE;IAChD;IACA,IAAI,CAAC4H,KAAK,CAAC,CAAC;IACZ,IAAI,CAACrF,MAAM,CAACvC,MAAM,GAAGA,MAAM;IAC3B8H,0BAAa,CAACC,YAAY,CAAC2B,SAAS,CAAC,IAAI,CAAC7E,KAAK,CAACoD,YAAY,EAAEjI,MAAM,CAAC;IACrE;IACAnB,MAAM,CAAC2F,MAAM,CAAC,IAAI,CAACjC,MAAM,EAAE;MACzBrB,YAAY,EAAE,CAAC;MACfL,OAAO,EAAE,KAAK;MACdW,WAAW,EAAE,EAAE;MACfC,WAAW,EAAE,EAAE;MACfC,UAAU,EAAE,EAAE;MACdvB,QAAQ,EAAE,EAAE;MACZC,QAAQ,EAAE,EAAE;MACZ0B,iBAAiB,EAAEpC,SAAS;MAC5BkC,kBAAkB,EAAElC,SAAS;MAC7BmC,kBAAkB,EAAEnC,SAAS;MAC7BiC,kBAAkB,EAAEjC;IACtB,CAAC,CAAC;EACJ;EAEA,IAAIiC,kBAAkBA,CAAA,EAAkC;IACtD,OAAO,IAAI,CAACY,MAAM,CAACZ,kBAAkB;EACvC;EAEA,IAAIA,kBAAkBA,CAACgI,MAAqC,EAAE;IAC5D,IAAI,CAAC,IAAI,CAACrC,cAAc,CAAC,CAAC,EAAE;MAC1B;IACF;IACA;IACA,IAAI,CAAC/E,MAAM,CAACZ,kBAAkB,GAAG,CAACgI,MAAM,GAAG,EAAE,GAAGC,KAAK,CAACC,OAAO,CAACF,MAAM,CAAC,GAAGA,MAAM,GAAG,CAACA,MAAM,CAAC;;IAEzF;IACA,MAAMvG,KAAK,GAAG,IAAAiB,0CAAmB,EAAC,IAAI,CAAC9B,MAAM,CAACd,WAAW,EAAE,IAAI,CAACG,kBAAkB,CAAC;IACnF,IAAIwB,KAAK,EAAE;MACTvE,MAAM,CAAC2F,MAAM,CAACpB,KAAK,EAAE;QAAE,GAAGA,KAAK;QAAE0G,aAAa,EAAE,IAAI,CAACvH,MAAM,CAACZ;MAAmB,CAAC,CAAC;IACnF;IACAmG,0BAAa,CAACC,YAAY,CAACgC,qBAAqB,CAAC,IAAI,CAAClF,KAAK,CAACoD,YAAY,EAAE,IAAI,CAAC1F,MAAM,CAACZ,kBAAkB,CAAC;EAC3G;EAEA,IAAIb,MAAMA,CAAA,EAAW;IACnB,OAAO,IAAI,CAACyB,MAAM,CAACzB,MAAM;EAC3B;EAEA,IAAIA,MAAMA,CAACA,MAAc,EAAE;IACzB,IAAI,CAACyB,MAAM,CAACzB,MAAM,GAAGA,MAAM;IAC3BgH,0BAAa,CAACC,YAAY,CAACiC,SAAS,CAAC,IAAI,CAACnF,KAAK,CAACoD,YAAY,EAAEnH,MAAM,CAAC;EACvE;EAEA,IAAIM,WAAWA,CAAA,EAAgB;IAC7B,OAAO,IAAI,CAACmB,MAAM,CAACnB,WAAW;EAChC;EAEA,IAAIA,WAAWA,CAAC6I,KAAkB,EAAE;IAClC,IAAI,CAAC1H,MAAM,CAACnB,WAAW,GAAG6I,KAAK;IAC/BnC,0BAAa,CAACC,YAAY,CAACmC,cAAc,CAAC,IAAI,CAACrF,KAAK,CAACoD,YAAY,EAAEgC,KAAK,CAAC;EAC3E;EAEA,IAAI1I,YAAYA,CAAA,EAAY;IAC1B,OAAO,IAAI,CAACgB,MAAM,CAAChB,YAAY;EACjC;EAEA,IAAIA,YAAYA,CAAC5C,KAAc,EAAE;IAC/B,IAAI,CAAC4D,MAAM,CAAChB,YAAY,GAAG5C,KAAK;IAChC,IAAI6I,qBAAQ,CAACC,EAAE,KAAK,SAAS,EAAE;MAC7BK,0BAAa,CAACC,YAAY,CAACoC,eAAe,CAAC,IAAI,CAACtF,KAAK,CAACoD,YAAY,EAAEtJ,KAAK,CAAC;IAC5E;EACF;EAEAiJ,KAAKA,CAAA,EAAS;IACZ,IAAI,IAAI,CAACN,cAAc,CAAC,CAAC,EAAE;MACzB,IAAI,CAAC/E,MAAM,CAACrC,MAAM,GAAG,IAAI;MACzB4H,0BAAa,CAACC,YAAY,CAACqC,SAAS,CAAC,IAAI,CAACvF,KAAK,CAACoD,YAAY,EAAE,IAAI,CAAC;IACrE;EACF;EAEAN,IAAIA,CAAA,EAAS;IACX,IAAI,IAAI,CAACL,cAAc,CAAC,CAAC,EAAE;MACzB,IAAI,CAAC/E,MAAM,CAACrC,MAAM,GAAG,KAAK;MAC1B4H,0BAAa,CAACC,YAAY,CAACqC,SAAS,CAAC,IAAI,CAACvF,KAAK,CAACoD,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,CAACpD,KAAK,CAACoD,YAAY;EAChC;;EAEA;EACA,IAAIsC,SAASA,CAAA,EAAsB;IACjC,OAAO,IAAI,CAACC,oBAAoB,KAAK,IAAI,CAACA,oBAAoB,GAAG,IAAIC,4CAAqB,CAAC,IAAI,CAAC,CAAC;EACnG;EAEAC,2BAA2BA,CAACL,OAAsB,EAAEM,KAAoC,EAAE;IACxF,IAAI,CAACL,cAAc,GAAGD,OAAO;IAC7B,IAAIM,KAAK,EAAE;MACT9L,MAAM,CAAC2F,MAAM,CAAC,IAAI,CAACjC,MAAM,EAAEoI,KAAK,CAAC;MACjC,IAAI,CAAC3F,YAAY,CAAC4F,KAAK,CAAC,CAAC;IAC3B;EACF;AACF;AAACC,OAAA,CAAA9I,iBAAA,GAAAA,iBAAA"}
|
|
@@ -267,6 +267,12 @@ class THEOplayerWebAdapter extends _DefaultEventDispatcher.DefaultEventDispatche
|
|
|
267
267
|
set aspectRatio(_ratio) {
|
|
268
268
|
// unused
|
|
269
269
|
}
|
|
270
|
+
get keepScreenOn() {
|
|
271
|
+
return false;
|
|
272
|
+
}
|
|
273
|
+
set keepScreenOn(_screenOn) {
|
|
274
|
+
// unused
|
|
275
|
+
}
|
|
270
276
|
get duration() {
|
|
271
277
|
return this._player ? this._player.duration * 1e3 : NaN;
|
|
272
278
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_DefaultEventDispatcher","require","_reactNativeTheoplayer","_THEOplayerWebAdsAdapter","_THEOplayerWebCastAdapter","_theoplayer","_TrackUtils","_WebEventForwarder","_WebPresentationModeManager","_WebMediaSession","_BaseEvent","_EventBroadcastAdapter","_defineProperty","obj","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","defaultBackgroundAudioConfiguration","enabled","defaultPipConfiguration","startsAutomatically","THEOplayerWebAdapter","DefaultEventDispatcher","constructor","player","config","_config$mediaControl","_this$_mediaSession","_player","document","visibilityState","presentationMode","PresentationMode","pip","backgroundAudioConfiguration","pause","_mediaSession","updateActionHandlers","_adsAdapter","THEOplayerWebAdsAdapter","_castAdapter","THEOplayerWebCastAdapter","_eventForwarder","WebEventForwarder","_presentationModeManager","WebPresentationModeManager","addEventListener","onVisibilityChange","mediaControl","mediaSessionEnabled","WebMediaSession","abr","_this$_player","source","_this$_player2","_targetVideoQuality","play","_this$_player3","_this$_player4","paused","autoplay","preload","type","_this$_player5","seekable","nativeRange","Array","length","map","_","index","start","end","buffered","playbackRate","pipConfiguration","_pipConfiguration","_backgroundAudioConfiguration","_this$_mediaSession2","volume","muted","seeking","audioTracks","fromNativeMediaTrackList","videoTracks","textTracks","fromNativeTextTrackList","selectedTextTrack","_this$_player$textTra","find","textTrack","mode","uid","forEach","textTrackStyle","_this$_player6","selectedVideoTrack","_this$_player$videoTr","videoTrack","selectedAudioTrack","_this$_player$audioTr","audioTrack","targetVideoQuality","enabledVideoTrack","targetQuality","findNativeQualitiesByUid","currentTime","NaN","isNaN","aspectRatio","AspectRatio","FIT","_ratio","duration","ads","cast","version","nativeVersion","playerSuiteVersion","destroy","_this$_eventForwarder","_this$_mediaSession3","_this$_player7","dispatchEvent","BaseEvent","PlayerEventType","DESTROY","unload","removeEventListener","nativeHandle","broadcast","_externalEventRouter","EventBroadcastAdapter","exports"],"sources":["THEOplayerWebAdapter.ts"],"sourcesContent":["import { DefaultEventDispatcher } from './event/DefaultEventDispatcher';\nimport type {\n AdsAPI,\n CastAPI,\n MediaTrack,\n NativeHandleType,\n PlayerConfiguration,\n PlayerEventMap,\n PlayerVersion,\n PreloadType,\n TextTrack,\n TextTrackStyle,\n THEOplayer,\n} from 'react-native-theoplayer';\nimport { AspectRatio, EventBroadcastAPI, PlayerEventType, PresentationMode } from 'react-native-theoplayer';\nimport { THEOplayerWebAdsAdapter } from './ads/THEOplayerWebAdsAdapter';\nimport { THEOplayerWebCastAdapter } from './cast/THEOplayerWebCastAdapter';\nimport { ChromelessPlayer as NativeChromelessPlayer, SourceDescription as NativeSourceDescription, version as nativeVersion } from 'theoplayer';\nimport type { MediaTrack as NativeMediaTrack, TextTrack as NativeTextTrack } from 'theoplayer';\nimport { findNativeQualitiesByUid, fromNativeMediaTrackList, fromNativeTextTrackList } from './web/TrackUtils';\nimport type { ABRConfiguration, SourceDescription } from 'src/api/barrel';\nimport { WebEventForwarder } from './WebEventForwarder';\nimport type { PiPConfiguration } from 'src/api/pip/PiPConfiguration';\nimport type { BackgroundAudioConfiguration } from 'src/api/backgroundAudio/BackgroundAudioConfiguration';\nimport { WebPresentationModeManager } from './web/WebPresentationModeManager';\nimport { WebMediaSession } from './web/WebMediaSession';\nimport { BaseEvent } from './event/BaseEvent';\nimport { EventBroadcastAdapter } from \"./broadcast/EventBroadcastAdapter\";\n\nconst defaultBackgroundAudioConfiguration: BackgroundAudioConfiguration = {\n enabled: false,\n};\n\nconst defaultPipConfiguration: PiPConfiguration = {\n startsAutomatically: false,\n};\n\nexport class THEOplayerWebAdapter extends DefaultEventDispatcher<PlayerEventMap> implements THEOplayer {\n private readonly _adsAdapter: THEOplayerWebAdsAdapter;\n private readonly _castAdapter: THEOplayerWebCastAdapter;\n private readonly _presentationModeManager: WebPresentationModeManager;\n private _player: NativeChromelessPlayer | undefined;\n private _eventForwarder: WebEventForwarder | undefined;\n private _mediaSession: WebMediaSession | undefined = undefined;\n private _targetVideoQuality: number | number[] | undefined = undefined;\n private _backgroundAudioConfiguration: BackgroundAudioConfiguration = defaultBackgroundAudioConfiguration;\n private _pipConfiguration: PiPConfiguration = defaultPipConfiguration;\n private _externalEventRouter: EventBroadcastAPI | undefined = undefined;\n\n constructor(player: NativeChromelessPlayer, config?: PlayerConfiguration) {\n super();\n this._player = player;\n this._adsAdapter = new THEOplayerWebAdsAdapter(this._player);\n this._castAdapter = new THEOplayerWebCastAdapter(this._player);\n this._eventForwarder = new WebEventForwarder(this._player, this);\n this._presentationModeManager = new WebPresentationModeManager(this._player, this);\n document.addEventListener('visibilitychange', this.onVisibilityChange);\n\n // Optionally create a media session connector\n if (config?.mediaControl?.mediaSessionEnabled !== false) {\n this._mediaSession = new WebMediaSession(this, player);\n }\n }\n\n get abr(): ABRConfiguration | undefined {\n return this._player?.abr as ABRConfiguration | undefined;\n }\n\n get source(): SourceDescription | undefined {\n return this._player?.source as SourceDescription;\n }\n\n set source(source: SourceDescription | undefined) {\n this._targetVideoQuality = undefined;\n if (this._player) {\n this._player.source = source as NativeSourceDescription;\n }\n }\n\n play(): void {\n this._player?.play();\n }\n\n pause(): void {\n this._player?.pause();\n }\n\n get paused(): boolean {\n return this._player ? this._player.paused : true;\n }\n\n get autoplay(): boolean {\n return this._player ? this._player.autoplay : false;\n }\n\n set autoplay(autoplay: boolean) {\n if (this._player) {\n this._player.autoplay = autoplay;\n }\n }\n\n set preload(type: PreloadType) {\n if (this._player) {\n this._player.preload = type;\n }\n }\n\n get preload(): PreloadType {\n return this._player?.preload || 'none';\n }\n\n get seekable() {\n if (!this._player) {\n return [];\n }\n const nativeRange = this._player.seekable;\n return [...Array(nativeRange.length)].map((_, index) => ({ start: 1e3 * nativeRange.start(index), end: 1e3 * nativeRange.end(index) }));\n }\n\n get buffered() {\n if (!this._player) {\n return [];\n }\n const nativeRange = this._player.buffered;\n return [...Array(nativeRange.length)].map((_, index) => ({ start: 1e3 * nativeRange.start(index), end: 1e3 * nativeRange.end(index) }));\n }\n\n get playbackRate(): number {\n return this._player ? this._player.playbackRate : 1;\n }\n\n set playbackRate(playbackRate: number) {\n if (this._player) {\n this._player.playbackRate = playbackRate;\n }\n }\n\n get pipConfiguration(): PiPConfiguration {\n return this._pipConfiguration;\n }\n\n set pipConfiguration(config: PiPConfiguration) {\n this._pipConfiguration = config;\n }\n\n get backgroundAudioConfiguration(): BackgroundAudioConfiguration {\n return this._backgroundAudioConfiguration;\n }\n\n set backgroundAudioConfiguration(config: BackgroundAudioConfiguration) {\n this._backgroundAudioConfiguration = config;\n\n // Notify media session\n this._mediaSession?.updateActionHandlers();\n }\n\n get volume(): number {\n return this._player ? this._player.volume : 1;\n }\n\n set volume(volume: number) {\n if (this._player) {\n this._player.volume = volume;\n }\n }\n\n get muted(): boolean {\n return this._player ? this._player.muted : false;\n }\n\n set muted(muted: boolean) {\n if (this._player) {\n this._player.muted = muted;\n }\n }\n\n get seeking(): boolean {\n return this._player ? this._player.seeking : false;\n }\n\n get presentationMode(): PresentationMode {\n return this._presentationModeManager.presentationMode;\n }\n\n set presentationMode(presentationMode: PresentationMode) {\n this._presentationModeManager.presentationMode = presentationMode;\n }\n\n get audioTracks(): MediaTrack[] {\n return this._player ? fromNativeMediaTrackList(this._player.audioTracks) : [];\n }\n\n get videoTracks(): MediaTrack[] {\n return this._player ? fromNativeMediaTrackList(this._player.videoTracks) : [];\n }\n\n get textTracks(): TextTrack[] {\n return this._player ? fromNativeTextTrackList(this._player.textTracks) : [];\n }\n\n get selectedTextTrack(): number | undefined {\n if (this._player) {\n return this._player.textTracks.find((textTrack: NativeTextTrack) => {\n return textTrack.mode === 'showing';\n })?.uid;\n }\n return undefined;\n }\n\n set selectedTextTrack(selectedTextTrack: number | undefined) {\n if (this._player) {\n this._player.textTracks.forEach((textTrack: NativeTextTrack) => {\n textTrack.mode = textTrack.uid === selectedTextTrack ? 'showing' : 'disabled';\n });\n }\n }\n\n get textTrackStyle(): TextTrackStyle {\n return this._player?.textTrackStyle as TextTrackStyle;\n }\n\n get selectedVideoTrack(): number | undefined {\n if (this._player) {\n return this._player.videoTracks.find((videoTrack: NativeMediaTrack) => videoTrack.enabled)?.uid;\n }\n return undefined;\n }\n\n set selectedVideoTrack(selectedVideoTrack: number | undefined) {\n if (this._player) {\n this._targetVideoQuality = undefined;\n this._player.videoTracks.forEach((videoTrack: NativeMediaTrack) => {\n videoTrack.enabled = videoTrack.uid === selectedVideoTrack;\n });\n }\n }\n\n get selectedAudioTrack(): number | undefined {\n if (this._player) {\n return this._player.audioTracks.find((audioTrack: NativeMediaTrack) => {\n return audioTrack.enabled;\n })?.uid;\n }\n return undefined;\n }\n\n set selectedAudioTrack(selectedAudioTrack: number | undefined) {\n if (this._player) {\n this._player.audioTracks.forEach((audioTrack: NativeMediaTrack) => {\n audioTrack.enabled = audioTrack.uid === selectedAudioTrack;\n });\n }\n }\n\n get targetVideoQuality(): number | number[] | undefined {\n if (this._player) {\n return this._targetVideoQuality;\n }\n return undefined;\n }\n\n set targetVideoQuality(targetVideoQuality: number | number[] | undefined) {\n if (this._player) {\n const enabledVideoTrack = this._player.videoTracks.find((videoTrack: NativeMediaTrack) => videoTrack.enabled);\n if (enabledVideoTrack) {\n enabledVideoTrack.targetQuality = findNativeQualitiesByUid(enabledVideoTrack, targetVideoQuality);\n }\n this._targetVideoQuality = targetVideoQuality;\n }\n }\n\n get currentTime(): number {\n return this._player ? 1e3 * this._player.currentTime : NaN;\n }\n\n set currentTime(currentTime: number) {\n if (isNaN(currentTime)) {\n return;\n }\n if (this._player) {\n this._player.currentTime = currentTime / 1e3;\n }\n }\n\n get aspectRatio(): AspectRatio {\n return AspectRatio.FIT;\n }\n\n set aspectRatio(_ratio: AspectRatio) {\n // unused\n }\n\n get duration(): number {\n return this._player ? this._player.duration * 1e3 : NaN;\n }\n\n public get ads(): AdsAPI {\n return this._adsAdapter;\n }\n\n public get cast(): CastAPI {\n return this._castAdapter;\n }\n\n public get version(): PlayerVersion {\n return {\n version: nativeVersion,\n playerSuiteVersion: '', // deprecated\n };\n }\n\n destroy(): void {\n this.dispatchEvent(new BaseEvent(PlayerEventType.DESTROY));\n this._eventForwarder?.unload();\n this._mediaSession?.destroy();\n document.removeEventListener('visibilitychange', this.onVisibilityChange);\n this._eventForwarder = undefined;\n this._mediaSession = undefined;\n this._player?.destroy();\n this._player = undefined;\n }\n\n private readonly onVisibilityChange = () => {\n if (!this._player) {\n return;\n }\n if (document.visibilityState !== 'visible') {\n // Apply background configuration: by default, pause when going to background, unless in pip\n if (this.presentationMode !== PresentationMode.pip && !this.backgroundAudioConfiguration.enabled) {\n this._player.pause();\n }\n }\n // Apply media session controls\n this._mediaSession?.updateActionHandlers();\n };\n\n get nativeHandle(): NativeHandleType {\n return this._player;\n }\n\n get broadcast(): EventBroadcastAPI {\n return this._externalEventRouter ?? (this._externalEventRouter = new EventBroadcastAdapter(this));\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_DefaultEventDispatcher","require","_reactNativeTheoplayer","_THEOplayerWebAdsAdapter","_THEOplayerWebCastAdapter","_theoplayer","_TrackUtils","_WebEventForwarder","_WebPresentationModeManager","_WebMediaSession","_BaseEvent","_EventBroadcastAdapter","_defineProperty","obj","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","defaultBackgroundAudioConfiguration","enabled","defaultPipConfiguration","startsAutomatically","THEOplayerWebAdapter","DefaultEventDispatcher","constructor","player","config","_config$mediaControl","_this$_mediaSession","_player","document","visibilityState","presentationMode","PresentationMode","pip","backgroundAudioConfiguration","pause","_mediaSession","updateActionHandlers","_adsAdapter","THEOplayerWebAdsAdapter","_castAdapter","THEOplayerWebCastAdapter","_eventForwarder","WebEventForwarder","_presentationModeManager","WebPresentationModeManager","addEventListener","onVisibilityChange","mediaControl","mediaSessionEnabled","WebMediaSession","abr","_this$_player","source","_this$_player2","_targetVideoQuality","play","_this$_player3","_this$_player4","paused","autoplay","preload","type","_this$_player5","seekable","nativeRange","Array","length","map","_","index","start","end","buffered","playbackRate","pipConfiguration","_pipConfiguration","_backgroundAudioConfiguration","_this$_mediaSession2","volume","muted","seeking","audioTracks","fromNativeMediaTrackList","videoTracks","textTracks","fromNativeTextTrackList","selectedTextTrack","_this$_player$textTra","find","textTrack","mode","uid","forEach","textTrackStyle","_this$_player6","selectedVideoTrack","_this$_player$videoTr","videoTrack","selectedAudioTrack","_this$_player$audioTr","audioTrack","targetVideoQuality","enabledVideoTrack","targetQuality","findNativeQualitiesByUid","currentTime","NaN","isNaN","aspectRatio","AspectRatio","FIT","_ratio","keepScreenOn","_screenOn","duration","ads","cast","version","nativeVersion","playerSuiteVersion","destroy","_this$_eventForwarder","_this$_mediaSession3","_this$_player7","dispatchEvent","BaseEvent","PlayerEventType","DESTROY","unload","removeEventListener","nativeHandle","broadcast","_externalEventRouter","EventBroadcastAdapter","exports"],"sources":["THEOplayerWebAdapter.ts"],"sourcesContent":["import { DefaultEventDispatcher } from './event/DefaultEventDispatcher';\nimport type {\n AdsAPI,\n CastAPI,\n MediaTrack,\n NativeHandleType,\n PlayerConfiguration,\n PlayerEventMap,\n PlayerVersion,\n PreloadType,\n TextTrack,\n TextTrackStyle,\n THEOplayer,\n} from 'react-native-theoplayer';\nimport { AspectRatio, EventBroadcastAPI, PlayerEventType, PresentationMode } from 'react-native-theoplayer';\nimport { THEOplayerWebAdsAdapter } from './ads/THEOplayerWebAdsAdapter';\nimport { THEOplayerWebCastAdapter } from './cast/THEOplayerWebCastAdapter';\nimport { ChromelessPlayer as NativeChromelessPlayer, SourceDescription as NativeSourceDescription, version as nativeVersion } from 'theoplayer';\nimport type { MediaTrack as NativeMediaTrack, TextTrack as NativeTextTrack } from 'theoplayer';\nimport { findNativeQualitiesByUid, fromNativeMediaTrackList, fromNativeTextTrackList } from './web/TrackUtils';\nimport type { ABRConfiguration, SourceDescription } from 'src/api/barrel';\nimport { WebEventForwarder } from './WebEventForwarder';\nimport type { PiPConfiguration } from 'src/api/pip/PiPConfiguration';\nimport type { BackgroundAudioConfiguration } from 'src/api/backgroundAudio/BackgroundAudioConfiguration';\nimport { WebPresentationModeManager } from './web/WebPresentationModeManager';\nimport { WebMediaSession } from './web/WebMediaSession';\nimport { BaseEvent } from './event/BaseEvent';\nimport { EventBroadcastAdapter } from \"./broadcast/EventBroadcastAdapter\";\n\nconst defaultBackgroundAudioConfiguration: BackgroundAudioConfiguration = {\n enabled: false,\n};\n\nconst defaultPipConfiguration: PiPConfiguration = {\n startsAutomatically: false,\n};\n\nexport class THEOplayerWebAdapter extends DefaultEventDispatcher<PlayerEventMap> implements THEOplayer {\n private readonly _adsAdapter: THEOplayerWebAdsAdapter;\n private readonly _castAdapter: THEOplayerWebCastAdapter;\n private readonly _presentationModeManager: WebPresentationModeManager;\n private _player: NativeChromelessPlayer | undefined;\n private _eventForwarder: WebEventForwarder | undefined;\n private _mediaSession: WebMediaSession | undefined = undefined;\n private _targetVideoQuality: number | number[] | undefined = undefined;\n private _backgroundAudioConfiguration: BackgroundAudioConfiguration = defaultBackgroundAudioConfiguration;\n private _pipConfiguration: PiPConfiguration = defaultPipConfiguration;\n private _externalEventRouter: EventBroadcastAPI | undefined = undefined;\n\n constructor(player: NativeChromelessPlayer, config?: PlayerConfiguration) {\n super();\n this._player = player;\n this._adsAdapter = new THEOplayerWebAdsAdapter(this._player);\n this._castAdapter = new THEOplayerWebCastAdapter(this._player);\n this._eventForwarder = new WebEventForwarder(this._player, this);\n this._presentationModeManager = new WebPresentationModeManager(this._player, this);\n document.addEventListener('visibilitychange', this.onVisibilityChange);\n\n // Optionally create a media session connector\n if (config?.mediaControl?.mediaSessionEnabled !== false) {\n this._mediaSession = new WebMediaSession(this, player);\n }\n }\n\n get abr(): ABRConfiguration | undefined {\n return this._player?.abr as ABRConfiguration | undefined;\n }\n\n get source(): SourceDescription | undefined {\n return this._player?.source as SourceDescription;\n }\n\n set source(source: SourceDescription | undefined) {\n this._targetVideoQuality = undefined;\n if (this._player) {\n this._player.source = source as NativeSourceDescription;\n }\n }\n\n play(): void {\n this._player?.play();\n }\n\n pause(): void {\n this._player?.pause();\n }\n\n get paused(): boolean {\n return this._player ? this._player.paused : true;\n }\n\n get autoplay(): boolean {\n return this._player ? this._player.autoplay : false;\n }\n\n set autoplay(autoplay: boolean) {\n if (this._player) {\n this._player.autoplay = autoplay;\n }\n }\n\n set preload(type: PreloadType) {\n if (this._player) {\n this._player.preload = type;\n }\n }\n\n get preload(): PreloadType {\n return this._player?.preload || 'none';\n }\n\n get seekable() {\n if (!this._player) {\n return [];\n }\n const nativeRange = this._player.seekable;\n return [...Array(nativeRange.length)].map((_, index) => ({ start: 1e3 * nativeRange.start(index), end: 1e3 * nativeRange.end(index) }));\n }\n\n get buffered() {\n if (!this._player) {\n return [];\n }\n const nativeRange = this._player.buffered;\n return [...Array(nativeRange.length)].map((_, index) => ({ start: 1e3 * nativeRange.start(index), end: 1e3 * nativeRange.end(index) }));\n }\n\n get playbackRate(): number {\n return this._player ? this._player.playbackRate : 1;\n }\n\n set playbackRate(playbackRate: number) {\n if (this._player) {\n this._player.playbackRate = playbackRate;\n }\n }\n\n get pipConfiguration(): PiPConfiguration {\n return this._pipConfiguration;\n }\n\n set pipConfiguration(config: PiPConfiguration) {\n this._pipConfiguration = config;\n }\n\n get backgroundAudioConfiguration(): BackgroundAudioConfiguration {\n return this._backgroundAudioConfiguration;\n }\n\n set backgroundAudioConfiguration(config: BackgroundAudioConfiguration) {\n this._backgroundAudioConfiguration = config;\n\n // Notify media session\n this._mediaSession?.updateActionHandlers();\n }\n\n get volume(): number {\n return this._player ? this._player.volume : 1;\n }\n\n set volume(volume: number) {\n if (this._player) {\n this._player.volume = volume;\n }\n }\n\n get muted(): boolean {\n return this._player ? this._player.muted : false;\n }\n\n set muted(muted: boolean) {\n if (this._player) {\n this._player.muted = muted;\n }\n }\n\n get seeking(): boolean {\n return this._player ? this._player.seeking : false;\n }\n\n get presentationMode(): PresentationMode {\n return this._presentationModeManager.presentationMode;\n }\n\n set presentationMode(presentationMode: PresentationMode) {\n this._presentationModeManager.presentationMode = presentationMode;\n }\n\n get audioTracks(): MediaTrack[] {\n return this._player ? fromNativeMediaTrackList(this._player.audioTracks) : [];\n }\n\n get videoTracks(): MediaTrack[] {\n return this._player ? fromNativeMediaTrackList(this._player.videoTracks) : [];\n }\n\n get textTracks(): TextTrack[] {\n return this._player ? fromNativeTextTrackList(this._player.textTracks) : [];\n }\n\n get selectedTextTrack(): number | undefined {\n if (this._player) {\n return this._player.textTracks.find((textTrack: NativeTextTrack) => {\n return textTrack.mode === 'showing';\n })?.uid;\n }\n return undefined;\n }\n\n set selectedTextTrack(selectedTextTrack: number | undefined) {\n if (this._player) {\n this._player.textTracks.forEach((textTrack: NativeTextTrack) => {\n textTrack.mode = textTrack.uid === selectedTextTrack ? 'showing' : 'disabled';\n });\n }\n }\n\n get textTrackStyle(): TextTrackStyle {\n return this._player?.textTrackStyle as TextTrackStyle;\n }\n\n get selectedVideoTrack(): number | undefined {\n if (this._player) {\n return this._player.videoTracks.find((videoTrack: NativeMediaTrack) => videoTrack.enabled)?.uid;\n }\n return undefined;\n }\n\n set selectedVideoTrack(selectedVideoTrack: number | undefined) {\n if (this._player) {\n this._targetVideoQuality = undefined;\n this._player.videoTracks.forEach((videoTrack: NativeMediaTrack) => {\n videoTrack.enabled = videoTrack.uid === selectedVideoTrack;\n });\n }\n }\n\n get selectedAudioTrack(): number | undefined {\n if (this._player) {\n return this._player.audioTracks.find((audioTrack: NativeMediaTrack) => {\n return audioTrack.enabled;\n })?.uid;\n }\n return undefined;\n }\n\n set selectedAudioTrack(selectedAudioTrack: number | undefined) {\n if (this._player) {\n this._player.audioTracks.forEach((audioTrack: NativeMediaTrack) => {\n audioTrack.enabled = audioTrack.uid === selectedAudioTrack;\n });\n }\n }\n\n get targetVideoQuality(): number | number[] | undefined {\n if (this._player) {\n return this._targetVideoQuality;\n }\n return undefined;\n }\n\n set targetVideoQuality(targetVideoQuality: number | number[] | undefined) {\n if (this._player) {\n const enabledVideoTrack = this._player.videoTracks.find((videoTrack: NativeMediaTrack) => videoTrack.enabled);\n if (enabledVideoTrack) {\n enabledVideoTrack.targetQuality = findNativeQualitiesByUid(enabledVideoTrack, targetVideoQuality);\n }\n this._targetVideoQuality = targetVideoQuality;\n }\n }\n\n get currentTime(): number {\n return this._player ? 1e3 * this._player.currentTime : NaN;\n }\n\n set currentTime(currentTime: number) {\n if (isNaN(currentTime)) {\n return;\n }\n if (this._player) {\n this._player.currentTime = currentTime / 1e3;\n }\n }\n\n get aspectRatio(): AspectRatio {\n return AspectRatio.FIT;\n }\n\n set aspectRatio(_ratio: AspectRatio) {\n // unused\n }\n\n get keepScreenOn(): boolean {\n return false;\n }\n\n set keepScreenOn(_screenOn: boolean) {\n // unused\n }\n\n get duration(): number {\n return this._player ? this._player.duration * 1e3 : NaN;\n }\n\n public get ads(): AdsAPI {\n return this._adsAdapter;\n }\n\n public get cast(): CastAPI {\n return this._castAdapter;\n }\n\n public get version(): PlayerVersion {\n return {\n version: nativeVersion,\n playerSuiteVersion: '', // deprecated\n };\n }\n\n destroy(): void {\n this.dispatchEvent(new BaseEvent(PlayerEventType.DESTROY));\n this._eventForwarder?.unload();\n this._mediaSession?.destroy();\n document.removeEventListener('visibilitychange', this.onVisibilityChange);\n this._eventForwarder = undefined;\n this._mediaSession = undefined;\n this._player?.destroy();\n this._player = undefined;\n }\n\n private readonly onVisibilityChange = () => {\n if (!this._player) {\n return;\n }\n if (document.visibilityState !== 'visible') {\n // Apply background configuration: by default, pause when going to background, unless in pip\n if (this.presentationMode !== PresentationMode.pip && !this.backgroundAudioConfiguration.enabled) {\n this._player.pause();\n }\n }\n // Apply media session controls\n this._mediaSession?.updateActionHandlers();\n };\n\n get nativeHandle(): NativeHandleType {\n return this._player;\n }\n\n get broadcast(): EventBroadcastAPI {\n return this._externalEventRouter ?? (this._externalEventRouter = new EventBroadcastAdapter(this));\n }\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["AspectRatio"],"sources":["THEOplayer.ts"],"sourcesContent":["import type { EventDispatcher } from '../event/EventDispatcher';\nimport type { PlayerEventMap } from './PlayerEventMap';\nimport type { ABRConfiguration } from '../abr/ABRConfiguration';\nimport type { SourceDescription } from '../source/SourceDescription';\nimport type { AdsAPI } from '../ads/AdsAPI';\nimport type { CastAPI } from '../cast/CastAPI';\nimport type { MediaTrack } from '../track/MediaTrack';\nimport type { TextTrack } from '../track/TextTrack';\nimport type { TimeRange } from '../timeranges/TimeRange';\nimport type { TextTrackStyle } from '../track/TextTrackStyle';\nimport type { PresentationMode } from '../presentation/PresentationMode';\nimport type { PiPConfiguration } from '../pip/PiPConfiguration';\nimport type { BackgroundAudioConfiguration } from '../backgroundAudio/BackgroundAudioConfiguration';\nimport type { PlayerVersion } from './PlayerVersion';\nimport type { EventBroadcastAPI } from \"../broadcast/EventBroadcastAPI\";\n\nexport type PreloadType = 'none' | 'metadata' | 'auto' | '';\n\n/**\n * Specifies an aspect ratio for the player.\n *\n * <br/> - `FIT` (default): Scales the player so that all content fits inside its bounding box, keeping the original aspect ratio of the content..\n * <br/> - `FILL`: Scales the player so that all content fits inside the bounding box, which will be stretched to fill it entirely.\n * <br/> - `ASPECT_FILL`: Scales the player so that the content fills up the entire bounding box, keeping the original aspect ratio of the content.\n *\n * @public\n * @defaultValue `'FIT'`\n */\nexport enum AspectRatio {\n FIT = 'fit',\n FILL = 'fill',\n ASPECT_FILL = 'aspectFill',\n}\n\nexport type NativeHandleType = unknown;\n\n/**\n * The THEOplayer API.\n */\nexport interface THEOplayer extends EventDispatcher<PlayerEventMap> {\n /**\n * The player's adaptive bitrate (ABR) configuration.\n *\n * @remarks\n * <br/> - This property is supported on Android & Web platforms only.\n */\n readonly abr: ABRConfiguration | undefined;\n\n /**\n * A source description that determines the current media resource.\n */\n source: SourceDescription | undefined;\n\n /**\n * Start or resume playback.\n */\n play(): void;\n\n /**\n * Pause playback.\n */\n pause(): void;\n\n /**\n * Whether the player is paused.\n */\n readonly paused: boolean;\n\n /**\n * Whether the player should immediately start playback after source change.\n */\n autoplay: boolean;\n\n /**\n * The preload setting of the player.\n */\n preload: PreloadType;\n\n /**\n * Returns a list of TimeRanges that represents the ranges of the media resource that are seekable by the player.\n */\n seekable: TimeRange[];\n\n /**\n * Returns a list of TimeRanges that represents the ranges of the media resource that are buffered by the player.\n */\n buffered: TimeRange[];\n\n /**\n * Used to set the playback rate of the media.\n *\n * @example\n * <br/> - `playbackRate = 0.70` will slow down the playback rate of the media by 30%.\n * <br/> - `playbackRate = 1.25` will speed up the playback rate of the media by 25%.\n *\n * @remarks\n * <br/> - Playback rate is represented by a number where `1` is default playback speed.\n * <br/> - Playback rate must be a positive number.\n * <br/> - It is recommended that you limit the range to between 0.5 and 4.\n */\n playbackRate: number;\n\n /**\n * Used to set the volume of the audio.\n *\n * @remarks\n * <br/> - Volume is represented by a floating point number between `0.0` and `1.0`.\n */\n volume: number;\n\n /**\n * Determines whether audio is muted.\n */\n muted: boolean;\n\n /**\n * Whether the player is seeking.\n */\n readonly seeking: boolean;\n\n /**\n * The PresentationMode of the player. Can be switched to: `picture-in-picture`, `fullscreen` or `inline`\n */\n presentationMode: PresentationMode;\n\n /**\n * List of audio tracks of the current source.\n */\n audioTracks: MediaTrack[];\n\n /**\n * List of video tracks of the current source.\n */\n videoTracks: MediaTrack[];\n\n /**\n * List of text tracks of the current source.\n */\n textTracks: TextTrack[];\n\n /**\n * Used to set the current selected text track by passing its `uid`, or `undefined` to select none.\n */\n selectedTextTrack: number | undefined;\n\n /**\n * The text track style API.\n *\n * @remarks\n * Only available for Web.\n */\n readonly textTrackStyle: TextTrackStyle;\n\n /**\n * Used to set the current selected video track by passing its `uid`, or `undefined` to select none.\n */\n selectedVideoTrack: number | undefined;\n\n /**\n * Used to set the current selected video quality by passing its `uid`, or `undefined` to select none.\n */\n targetVideoQuality: number | number[] | undefined;\n\n /**\n * Used to set the current selected audio track by passing its `uid`, or `undefined` to select none.\n */\n selectedAudioTrack: number | undefined;\n\n /**\n * The current playback position of the media, in milliseconds.\n */\n currentTime: number;\n\n /**\n * Used to set the aspect ratio of the player.\n *\n * @remarks\n * Only available for iOS and Android.\n */\n aspectRatio: AspectRatio;\n\n /**\n * The active configuration for PiP.\n */\n pipConfiguration: PiPConfiguration;\n\n /**\n * The active configuration for PiP.\n */\n backgroundAudioConfiguration: BackgroundAudioConfiguration;\n\n /**\n * The duration of the media, in milliseconds.\n */\n readonly duration: number;\n\n /**\n * The API for advertisements.\n */\n readonly ads: AdsAPI;\n\n /**\n * The API for casting devices.\n */\n readonly cast: CastAPI;\n\n /**\n * The player version.\n */\n readonly version: PlayerVersion;\n\n /**\n * Native player handle.\n */\n readonly nativeHandle: NativeHandleType;\n\n /**\n * Event Broadcast API.\n */\n readonly broadcast: EventBroadcastAPI;\n}\n"],"mappings":"AAkBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAYA,WAAW,0BAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAA,OAAXA,WAAW;AAAA;;AAQvB;AACA;AACA"}
|
|
1
|
+
{"version":3,"names":["AspectRatio"],"sources":["THEOplayer.ts"],"sourcesContent":["import type { EventDispatcher } from '../event/EventDispatcher';\nimport type { PlayerEventMap } from './PlayerEventMap';\nimport type { ABRConfiguration } from '../abr/ABRConfiguration';\nimport type { SourceDescription } from '../source/SourceDescription';\nimport type { AdsAPI } from '../ads/AdsAPI';\nimport type { CastAPI } from '../cast/CastAPI';\nimport type { MediaTrack } from '../track/MediaTrack';\nimport type { TextTrack } from '../track/TextTrack';\nimport type { TimeRange } from '../timeranges/TimeRange';\nimport type { TextTrackStyle } from '../track/TextTrackStyle';\nimport type { PresentationMode } from '../presentation/PresentationMode';\nimport type { PiPConfiguration } from '../pip/PiPConfiguration';\nimport type { BackgroundAudioConfiguration } from '../backgroundAudio/BackgroundAudioConfiguration';\nimport type { PlayerVersion } from './PlayerVersion';\nimport type { EventBroadcastAPI } from \"../broadcast/EventBroadcastAPI\";\n\nexport type PreloadType = 'none' | 'metadata' | 'auto' | '';\n\n/**\n * Specifies an aspect ratio for the player.\n *\n * <br/> - `FIT` (default): Scales the player so that all content fits inside its bounding box, keeping the original aspect ratio of the content..\n * <br/> - `FILL`: Scales the player so that all content fits inside the bounding box, which will be stretched to fill it entirely.\n * <br/> - `ASPECT_FILL`: Scales the player so that the content fills up the entire bounding box, keeping the original aspect ratio of the content.\n *\n * @public\n * @defaultValue `'FIT'`\n */\nexport enum AspectRatio {\n FIT = 'fit',\n FILL = 'fill',\n ASPECT_FILL = 'aspectFill',\n}\n\nexport type NativeHandleType = unknown;\n\n/**\n * The THEOplayer API.\n */\nexport interface THEOplayer extends EventDispatcher<PlayerEventMap> {\n /**\n * The player's adaptive bitrate (ABR) configuration.\n *\n * @remarks\n * <br/> - This property is supported on Android & Web platforms only.\n */\n readonly abr: ABRConfiguration | undefined;\n\n /**\n * A source description that determines the current media resource.\n */\n source: SourceDescription | undefined;\n\n /**\n * Start or resume playback.\n */\n play(): void;\n\n /**\n * Pause playback.\n */\n pause(): void;\n\n /**\n * Whether the player is paused.\n */\n readonly paused: boolean;\n\n /**\n * Whether the player should immediately start playback after source change.\n */\n autoplay: boolean;\n\n /**\n * The preload setting of the player.\n */\n preload: PreloadType;\n\n /**\n * Returns a list of TimeRanges that represents the ranges of the media resource that are seekable by the player.\n */\n seekable: TimeRange[];\n\n /**\n * Returns a list of TimeRanges that represents the ranges of the media resource that are buffered by the player.\n */\n buffered: TimeRange[];\n\n /**\n * Used to set the playback rate of the media.\n *\n * @example\n * <br/> - `playbackRate = 0.70` will slow down the playback rate of the media by 30%.\n * <br/> - `playbackRate = 1.25` will speed up the playback rate of the media by 25%.\n *\n * @remarks\n * <br/> - Playback rate is represented by a number where `1` is default playback speed.\n * <br/> - Playback rate must be a positive number.\n * <br/> - It is recommended that you limit the range to between 0.5 and 4.\n */\n playbackRate: number;\n\n /**\n * Used to set the volume of the audio.\n *\n * @remarks\n * <br/> - Volume is represented by a floating point number between `0.0` and `1.0`.\n */\n volume: number;\n\n /**\n * Determines whether audio is muted.\n */\n muted: boolean;\n\n /**\n * Whether the player is seeking.\n */\n readonly seeking: boolean;\n\n /**\n * The PresentationMode of the player. Can be switched to: `picture-in-picture`, `fullscreen` or `inline`\n */\n presentationMode: PresentationMode;\n\n /**\n * List of audio tracks of the current source.\n */\n audioTracks: MediaTrack[];\n\n /**\n * List of video tracks of the current source.\n */\n videoTracks: MediaTrack[];\n\n /**\n * List of text tracks of the current source.\n */\n textTracks: TextTrack[];\n\n /**\n * Used to set the current selected text track by passing its `uid`, or `undefined` to select none.\n */\n selectedTextTrack: number | undefined;\n\n /**\n * The text track style API.\n *\n * @remarks\n * Only available for Web.\n */\n readonly textTrackStyle: TextTrackStyle;\n\n /**\n * Used to set the current selected video track by passing its `uid`, or `undefined` to select none.\n */\n selectedVideoTrack: number | undefined;\n\n /**\n * Used to set the current selected video quality by passing its `uid`, or `undefined` to select none.\n */\n targetVideoQuality: number | number[] | undefined;\n\n /**\n * Used to set the current selected audio track by passing its `uid`, or `undefined` to select none.\n */\n selectedAudioTrack: number | undefined;\n\n /**\n * The current playback position of the media, in milliseconds.\n */\n currentTime: number;\n\n /**\n * Used to set the aspect ratio of the player.\n *\n * @remarks\n * Only available for iOS and Android.\n */\n aspectRatio: AspectRatio;\n\n /**\n * Toggle the wake-lock on the player view. The screen will time out if disabled.\n *\n * @defaultValue `true`\n * @remarks\n * Only available on Android.\n */\n keepScreenOn: boolean;\n\n /**\n * The active configuration for PiP.\n */\n pipConfiguration: PiPConfiguration;\n\n /**\n * The active configuration for PiP.\n */\n backgroundAudioConfiguration: BackgroundAudioConfiguration;\n\n /**\n * The duration of the media, in milliseconds.\n */\n readonly duration: number;\n\n /**\n * The API for advertisements.\n */\n readonly ads: AdsAPI;\n\n /**\n * The API for casting devices.\n */\n readonly cast: CastAPI;\n\n /**\n * The player version.\n */\n readonly version: PlayerVersion;\n\n /**\n * Native player handle.\n */\n readonly nativeHandle: NativeHandleType;\n\n /**\n * Event Broadcast API.\n */\n readonly broadcast: EventBroadcastAPI;\n}\n"],"mappings":"AAkBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAYA,WAAW,0BAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAA,OAAXA,WAAW;AAAA;;AAQvB;AACA;AACA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["NativePlayerState.ts"],"sourcesContent":["import type { MediaTrack, PreloadType, PresentationMode, SourceDescription, TextTrack, TimeRange } from 'react-native-theoplayer';\nimport type {
|
|
1
|
+
{"version":3,"names":[],"sources":["NativePlayerState.ts"],"sourcesContent":["import type { MediaTrack, PreloadType, PresentationMode, SourceDescription, TextTrack, TimeRange } from 'react-native-theoplayer';\nimport type { PiPConfiguration, AspectRatio, BackgroundAudioConfiguration } from 'react-native-theoplayer';\n\nexport interface NativePlayerState {\n source: SourceDescription | undefined;\n autoplay: boolean;\n paused: boolean;\n seekable: TimeRange[];\n buffered: TimeRange[];\n pipConfig: PiPConfiguration;\n backgroundAudioConfig: BackgroundAudioConfiguration;\n presentationMode: PresentationMode;\n muted: boolean;\n seeking: boolean;\n volume: number;\n currentTime: number;\n duration: number;\n playbackRate: number;\n preload: PreloadType;\n aspectRatio: AspectRatio;\n keepScreenOn: boolean;\n audioTracks: MediaTrack[];\n videoTracks: MediaTrack[];\n textTracks: TextTrack[];\n targetVideoQuality: number | number[] | undefined;\n selectedVideoTrack: number | undefined;\n selectedAudioTrack: number | undefined;\n selectedTextTrack: number | undefined;\n}\n"],"mappings":""}
|
|
@@ -30,6 +30,7 @@ const defaultPlayerState = {
|
|
|
30
30
|
playbackRate: 1,
|
|
31
31
|
preload: 'none',
|
|
32
32
|
aspectRatio: AspectRatio.FIT,
|
|
33
|
+
keepScreenOn: true,
|
|
33
34
|
audioTracks: [],
|
|
34
35
|
videoTracks: [],
|
|
35
36
|
textTracks: [],
|
|
@@ -427,6 +428,15 @@ export class THEOplayerAdapter extends DefaultEventDispatcher {
|
|
|
427
428
|
this._state.aspectRatio = ratio;
|
|
428
429
|
NativeModules.PlayerModule.setAspectRatio(this._view.nativeHandle, ratio);
|
|
429
430
|
}
|
|
431
|
+
get keepScreenOn() {
|
|
432
|
+
return this._state.keepScreenOn;
|
|
433
|
+
}
|
|
434
|
+
set keepScreenOn(value) {
|
|
435
|
+
this._state.keepScreenOn = value;
|
|
436
|
+
if (Platform.OS === 'android') {
|
|
437
|
+
NativeModules.PlayerModule.setKeepScreenOn(this._view.nativeHandle, value);
|
|
438
|
+
}
|
|
439
|
+
}
|
|
430
440
|
pause() {
|
|
431
441
|
if (this.hasValidSource()) {
|
|
432
442
|
this._state.paused = true;
|
|
@@ -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","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","audioTracks","videoTracks","textTracks","targetVideoQuality","selectedVideoTrack","selectedAudioTrack","selectedTextTrack","THEOplayerAdapter","constructor","view","initialState","arguments","length","_defineProperty","applyAutoplay","_state","event","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","OS","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","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, 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 } 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 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 };\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 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":"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"}
|
|
1
|
+
{"version":3,"names":["DefaultEventDispatcher","addTextTrackCue","addTrack","AspectRatio","findMediaTrackByUid","findTextTrackByUid","MediaTrackEventType","MediaTrackType","PlayerEventType","PresentationMode","removeTextTrackCue","removeTrack","TextTrackEventType","TextTrackMode","TrackListEventType","THEOplayerNativeAdsAdapter","THEOplayerNativeCastAdapter","AbrAdapter","NativeModules","Platform","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","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","OS","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, 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 } 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 };\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":"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"}
|
|
@@ -261,6 +261,12 @@ export class THEOplayerWebAdapter extends DefaultEventDispatcher {
|
|
|
261
261
|
set aspectRatio(_ratio) {
|
|
262
262
|
// unused
|
|
263
263
|
}
|
|
264
|
+
get keepScreenOn() {
|
|
265
|
+
return false;
|
|
266
|
+
}
|
|
267
|
+
set keepScreenOn(_screenOn) {
|
|
268
|
+
// unused
|
|
269
|
+
}
|
|
264
270
|
get duration() {
|
|
265
271
|
return this._player ? this._player.duration * 1e3 : NaN;
|
|
266
272
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["DefaultEventDispatcher","AspectRatio","PlayerEventType","PresentationMode","THEOplayerWebAdsAdapter","THEOplayerWebCastAdapter","version","nativeVersion","findNativeQualitiesByUid","fromNativeMediaTrackList","fromNativeTextTrackList","WebEventForwarder","WebPresentationModeManager","WebMediaSession","BaseEvent","EventBroadcastAdapter","defaultBackgroundAudioConfiguration","enabled","defaultPipConfiguration","startsAutomatically","THEOplayerWebAdapter","constructor","player","config","_config$mediaControl","_defineProperty","undefined","_this$_mediaSession","_player","document","visibilityState","presentationMode","pip","backgroundAudioConfiguration","pause","_mediaSession","updateActionHandlers","_adsAdapter","_castAdapter","_eventForwarder","_presentationModeManager","addEventListener","onVisibilityChange","mediaControl","mediaSessionEnabled","abr","_this$_player","source","_this$_player2","_targetVideoQuality","play","_this$_player3","_this$_player4","paused","autoplay","preload","type","_this$_player5","seekable","nativeRange","Array","length","map","_","index","start","end","buffered","playbackRate","pipConfiguration","_pipConfiguration","_backgroundAudioConfiguration","_this$_mediaSession2","volume","muted","seeking","audioTracks","videoTracks","textTracks","selectedTextTrack","_this$_player$textTra","find","textTrack","mode","uid","forEach","textTrackStyle","_this$_player6","selectedVideoTrack","_this$_player$videoTr","videoTrack","selectedAudioTrack","_this$_player$audioTr","audioTrack","targetVideoQuality","enabledVideoTrack","targetQuality","currentTime","NaN","isNaN","aspectRatio","FIT","_ratio","duration","ads","cast","playerSuiteVersion","destroy","_this$_eventForwarder","_this$_mediaSession3","_this$_player7","dispatchEvent","DESTROY","unload","removeEventListener","nativeHandle","broadcast","_externalEventRouter"],"sources":["THEOplayerWebAdapter.ts"],"sourcesContent":["import { DefaultEventDispatcher } from './event/DefaultEventDispatcher';\nimport type {\n AdsAPI,\n CastAPI,\n MediaTrack,\n NativeHandleType,\n PlayerConfiguration,\n PlayerEventMap,\n PlayerVersion,\n PreloadType,\n TextTrack,\n TextTrackStyle,\n THEOplayer,\n} from 'react-native-theoplayer';\nimport { AspectRatio, EventBroadcastAPI, PlayerEventType, PresentationMode } from 'react-native-theoplayer';\nimport { THEOplayerWebAdsAdapter } from './ads/THEOplayerWebAdsAdapter';\nimport { THEOplayerWebCastAdapter } from './cast/THEOplayerWebCastAdapter';\nimport { ChromelessPlayer as NativeChromelessPlayer, SourceDescription as NativeSourceDescription, version as nativeVersion } from 'theoplayer';\nimport type { MediaTrack as NativeMediaTrack, TextTrack as NativeTextTrack } from 'theoplayer';\nimport { findNativeQualitiesByUid, fromNativeMediaTrackList, fromNativeTextTrackList } from './web/TrackUtils';\nimport type { ABRConfiguration, SourceDescription } from 'src/api/barrel';\nimport { WebEventForwarder } from './WebEventForwarder';\nimport type { PiPConfiguration } from 'src/api/pip/PiPConfiguration';\nimport type { BackgroundAudioConfiguration } from 'src/api/backgroundAudio/BackgroundAudioConfiguration';\nimport { WebPresentationModeManager } from './web/WebPresentationModeManager';\nimport { WebMediaSession } from './web/WebMediaSession';\nimport { BaseEvent } from './event/BaseEvent';\nimport { EventBroadcastAdapter } from \"./broadcast/EventBroadcastAdapter\";\n\nconst defaultBackgroundAudioConfiguration: BackgroundAudioConfiguration = {\n enabled: false,\n};\n\nconst defaultPipConfiguration: PiPConfiguration = {\n startsAutomatically: false,\n};\n\nexport class THEOplayerWebAdapter extends DefaultEventDispatcher<PlayerEventMap> implements THEOplayer {\n private readonly _adsAdapter: THEOplayerWebAdsAdapter;\n private readonly _castAdapter: THEOplayerWebCastAdapter;\n private readonly _presentationModeManager: WebPresentationModeManager;\n private _player: NativeChromelessPlayer | undefined;\n private _eventForwarder: WebEventForwarder | undefined;\n private _mediaSession: WebMediaSession | undefined = undefined;\n private _targetVideoQuality: number | number[] | undefined = undefined;\n private _backgroundAudioConfiguration: BackgroundAudioConfiguration = defaultBackgroundAudioConfiguration;\n private _pipConfiguration: PiPConfiguration = defaultPipConfiguration;\n private _externalEventRouter: EventBroadcastAPI | undefined = undefined;\n\n constructor(player: NativeChromelessPlayer, config?: PlayerConfiguration) {\n super();\n this._player = player;\n this._adsAdapter = new THEOplayerWebAdsAdapter(this._player);\n this._castAdapter = new THEOplayerWebCastAdapter(this._player);\n this._eventForwarder = new WebEventForwarder(this._player, this);\n this._presentationModeManager = new WebPresentationModeManager(this._player, this);\n document.addEventListener('visibilitychange', this.onVisibilityChange);\n\n // Optionally create a media session connector\n if (config?.mediaControl?.mediaSessionEnabled !== false) {\n this._mediaSession = new WebMediaSession(this, player);\n }\n }\n\n get abr(): ABRConfiguration | undefined {\n return this._player?.abr as ABRConfiguration | undefined;\n }\n\n get source(): SourceDescription | undefined {\n return this._player?.source as SourceDescription;\n }\n\n set source(source: SourceDescription | undefined) {\n this._targetVideoQuality = undefined;\n if (this._player) {\n this._player.source = source as NativeSourceDescription;\n }\n }\n\n play(): void {\n this._player?.play();\n }\n\n pause(): void {\n this._player?.pause();\n }\n\n get paused(): boolean {\n return this._player ? this._player.paused : true;\n }\n\n get autoplay(): boolean {\n return this._player ? this._player.autoplay : false;\n }\n\n set autoplay(autoplay: boolean) {\n if (this._player) {\n this._player.autoplay = autoplay;\n }\n }\n\n set preload(type: PreloadType) {\n if (this._player) {\n this._player.preload = type;\n }\n }\n\n get preload(): PreloadType {\n return this._player?.preload || 'none';\n }\n\n get seekable() {\n if (!this._player) {\n return [];\n }\n const nativeRange = this._player.seekable;\n return [...Array(nativeRange.length)].map((_, index) => ({ start: 1e3 * nativeRange.start(index), end: 1e3 * nativeRange.end(index) }));\n }\n\n get buffered() {\n if (!this._player) {\n return [];\n }\n const nativeRange = this._player.buffered;\n return [...Array(nativeRange.length)].map((_, index) => ({ start: 1e3 * nativeRange.start(index), end: 1e3 * nativeRange.end(index) }));\n }\n\n get playbackRate(): number {\n return this._player ? this._player.playbackRate : 1;\n }\n\n set playbackRate(playbackRate: number) {\n if (this._player) {\n this._player.playbackRate = playbackRate;\n }\n }\n\n get pipConfiguration(): PiPConfiguration {\n return this._pipConfiguration;\n }\n\n set pipConfiguration(config: PiPConfiguration) {\n this._pipConfiguration = config;\n }\n\n get backgroundAudioConfiguration(): BackgroundAudioConfiguration {\n return this._backgroundAudioConfiguration;\n }\n\n set backgroundAudioConfiguration(config: BackgroundAudioConfiguration) {\n this._backgroundAudioConfiguration = config;\n\n // Notify media session\n this._mediaSession?.updateActionHandlers();\n }\n\n get volume(): number {\n return this._player ? this._player.volume : 1;\n }\n\n set volume(volume: number) {\n if (this._player) {\n this._player.volume = volume;\n }\n }\n\n get muted(): boolean {\n return this._player ? this._player.muted : false;\n }\n\n set muted(muted: boolean) {\n if (this._player) {\n this._player.muted = muted;\n }\n }\n\n get seeking(): boolean {\n return this._player ? this._player.seeking : false;\n }\n\n get presentationMode(): PresentationMode {\n return this._presentationModeManager.presentationMode;\n }\n\n set presentationMode(presentationMode: PresentationMode) {\n this._presentationModeManager.presentationMode = presentationMode;\n }\n\n get audioTracks(): MediaTrack[] {\n return this._player ? fromNativeMediaTrackList(this._player.audioTracks) : [];\n }\n\n get videoTracks(): MediaTrack[] {\n return this._player ? fromNativeMediaTrackList(this._player.videoTracks) : [];\n }\n\n get textTracks(): TextTrack[] {\n return this._player ? fromNativeTextTrackList(this._player.textTracks) : [];\n }\n\n get selectedTextTrack(): number | undefined {\n if (this._player) {\n return this._player.textTracks.find((textTrack: NativeTextTrack) => {\n return textTrack.mode === 'showing';\n })?.uid;\n }\n return undefined;\n }\n\n set selectedTextTrack(selectedTextTrack: number | undefined) {\n if (this._player) {\n this._player.textTracks.forEach((textTrack: NativeTextTrack) => {\n textTrack.mode = textTrack.uid === selectedTextTrack ? 'showing' : 'disabled';\n });\n }\n }\n\n get textTrackStyle(): TextTrackStyle {\n return this._player?.textTrackStyle as TextTrackStyle;\n }\n\n get selectedVideoTrack(): number | undefined {\n if (this._player) {\n return this._player.videoTracks.find((videoTrack: NativeMediaTrack) => videoTrack.enabled)?.uid;\n }\n return undefined;\n }\n\n set selectedVideoTrack(selectedVideoTrack: number | undefined) {\n if (this._player) {\n this._targetVideoQuality = undefined;\n this._player.videoTracks.forEach((videoTrack: NativeMediaTrack) => {\n videoTrack.enabled = videoTrack.uid === selectedVideoTrack;\n });\n }\n }\n\n get selectedAudioTrack(): number | undefined {\n if (this._player) {\n return this._player.audioTracks.find((audioTrack: NativeMediaTrack) => {\n return audioTrack.enabled;\n })?.uid;\n }\n return undefined;\n }\n\n set selectedAudioTrack(selectedAudioTrack: number | undefined) {\n if (this._player) {\n this._player.audioTracks.forEach((audioTrack: NativeMediaTrack) => {\n audioTrack.enabled = audioTrack.uid === selectedAudioTrack;\n });\n }\n }\n\n get targetVideoQuality(): number | number[] | undefined {\n if (this._player) {\n return this._targetVideoQuality;\n }\n return undefined;\n }\n\n set targetVideoQuality(targetVideoQuality: number | number[] | undefined) {\n if (this._player) {\n const enabledVideoTrack = this._player.videoTracks.find((videoTrack: NativeMediaTrack) => videoTrack.enabled);\n if (enabledVideoTrack) {\n enabledVideoTrack.targetQuality = findNativeQualitiesByUid(enabledVideoTrack, targetVideoQuality);\n }\n this._targetVideoQuality = targetVideoQuality;\n }\n }\n\n get currentTime(): number {\n return this._player ? 1e3 * this._player.currentTime : NaN;\n }\n\n set currentTime(currentTime: number) {\n if (isNaN(currentTime)) {\n return;\n }\n if (this._player) {\n this._player.currentTime = currentTime / 1e3;\n }\n }\n\n get aspectRatio(): AspectRatio {\n return AspectRatio.FIT;\n }\n\n set aspectRatio(_ratio: AspectRatio) {\n // unused\n }\n\n get duration(): number {\n return this._player ? this._player.duration * 1e3 : NaN;\n }\n\n public get ads(): AdsAPI {\n return this._adsAdapter;\n }\n\n public get cast(): CastAPI {\n return this._castAdapter;\n }\n\n public get version(): PlayerVersion {\n return {\n version: nativeVersion,\n playerSuiteVersion: '', // deprecated\n };\n }\n\n destroy(): void {\n this.dispatchEvent(new BaseEvent(PlayerEventType.DESTROY));\n this._eventForwarder?.unload();\n this._mediaSession?.destroy();\n document.removeEventListener('visibilitychange', this.onVisibilityChange);\n this._eventForwarder = undefined;\n this._mediaSession = undefined;\n this._player?.destroy();\n this._player = undefined;\n }\n\n private readonly onVisibilityChange = () => {\n if (!this._player) {\n return;\n }\n if (document.visibilityState !== 'visible') {\n // Apply background configuration: by default, pause when going to background, unless in pip\n if (this.presentationMode !== PresentationMode.pip && !this.backgroundAudioConfiguration.enabled) {\n this._player.pause();\n }\n }\n // Apply media session controls\n this._mediaSession?.updateActionHandlers();\n };\n\n get nativeHandle(): NativeHandleType {\n return this._player;\n }\n\n get broadcast(): EventBroadcastAPI {\n return this._externalEventRouter ?? (this._externalEventRouter = new EventBroadcastAdapter(this));\n }\n}\n"],"mappings":";;;AAAA,SAASA,sBAAsB,QAAQ,gCAAgC;AAcvE,SAASC,WAAW,EAAqBC,eAAe,EAAEC,gBAAgB,QAAQ,yBAAyB;AAC3G,SAASC,uBAAuB,QAAQ,+BAA+B;AACvE,SAASC,wBAAwB,QAAQ,iCAAiC;AAC1E,SAAmGC,OAAO,IAAIC,aAAa,QAAQ,YAAY;AAE/I,SAASC,wBAAwB,EAAEC,wBAAwB,EAAEC,uBAAuB,QAAQ,kBAAkB;AAE9G,SAASC,iBAAiB,QAAQ,qBAAqB;AAGvD,SAASC,0BAA0B,QAAQ,kCAAkC;AAC7E,SAASC,eAAe,QAAQ,uBAAuB;AACvD,SAASC,SAAS,QAAQ,mBAAmB;AAC7C,SAASC,qBAAqB,QAAQ,mCAAmC;AAEzE,MAAMC,mCAAiE,GAAG;EACxEC,OAAO,EAAE;AACX,CAAC;AAED,MAAMC,uBAAyC,GAAG;EAChDC,mBAAmB,EAAE;AACvB,CAAC;AAED,OAAO,MAAMC,oBAAoB,SAASpB,sBAAsB,CAAuC;EAYrGqB,WAAWA,CAACC,MAA8B,EAAEC,MAA4B,EAAE;IAAA,IAAAC,oBAAA;IACxE,KAAK,CAAC,CAAC;IAACC,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA,wBAP2CC,SAAS;IAAAD,eAAA,8BACDC,SAAS;IAAAD,eAAA,wCACAT,mCAAmC;IAAAS,eAAA,4BAC3DP,uBAAuB;IAAAO,eAAA,+BACPC,SAAS;IAAAD,eAAA,6BAmRjC,MAAM;MAAA,IAAAE,mBAAA;MAC1C,IAAI,CAAC,IAAI,CAACC,OAAO,EAAE;QACjB;MACF;MACA,IAAIC,QAAQ,CAACC,eAAe,KAAK,SAAS,EAAE;QAC1C;QACA,IAAI,IAAI,CAACC,gBAAgB,KAAK5B,gBAAgB,CAAC6B,GAAG,IAAI,CAAC,IAAI,CAACC,4BAA4B,CAAChB,OAAO,EAAE;UAChG,IAAI,CAACW,OAAO,CAACM,KAAK,CAAC,CAAC;QACtB;MACF;MACA;MACA,CAAAP,mBAAA,OAAI,CAACQ,aAAa,cAAAR,mBAAA,eAAlBA,mBAAA,CAAoBS,oBAAoB,CAAC,CAAC;IAC5C,CAAC;IA3RC,IAAI,CAACR,OAAO,GAAGN,MAAM;IACrB,IAAI,CAACe,WAAW,GAAG,IAAIjC,uBAAuB,CAAC,IAAI,CAACwB,OAAO,CAAC;IAC5D,IAAI,CAACU,YAAY,GAAG,IAAIjC,wBAAwB,CAAC,IAAI,CAACuB,OAAO,CAAC;IAC9D,IAAI,CAACW,eAAe,GAAG,IAAI5B,iBAAiB,CAAC,IAAI,CAACiB,OAAO,EAAE,IAAI,CAAC;IAChE,IAAI,CAACY,wBAAwB,GAAG,IAAI5B,0BAA0B,CAAC,IAAI,CAACgB,OAAO,EAAE,IAAI,CAAC;IAClFC,QAAQ,CAACY,gBAAgB,CAAC,kBAAkB,EAAE,IAAI,CAACC,kBAAkB,CAAC;;IAEtE;IACA,IAAI,CAAAnB,MAAM,aAANA,MAAM,gBAAAC,oBAAA,GAAND,MAAM,CAAEoB,YAAY,cAAAnB,oBAAA,uBAApBA,oBAAA,CAAsBoB,mBAAmB,MAAK,KAAK,EAAE;MACvD,IAAI,CAACT,aAAa,GAAG,IAAItB,eAAe,CAAC,IAAI,EAAES,MAAM,CAAC;IACxD;EACF;EAEA,IAAIuB,GAAGA,CAAA,EAAiC;IAAA,IAAAC,aAAA;IACtC,QAAAA,aAAA,GAAO,IAAI,CAAClB,OAAO,cAAAkB,aAAA,uBAAZA,aAAA,CAAcD,GAAG;EAC1B;EAEA,IAAIE,MAAMA,CAAA,EAAkC;IAAA,IAAAC,cAAA;IAC1C,QAAAA,cAAA,GAAO,IAAI,CAACpB,OAAO,cAAAoB,cAAA,uBAAZA,cAAA,CAAcD,MAAM;EAC7B;EAEA,IAAIA,MAAMA,CAACA,MAAqC,EAAE;IAChD,IAAI,CAACE,mBAAmB,GAAGvB,SAAS;IACpC,IAAI,IAAI,CAACE,OAAO,EAAE;MAChB,IAAI,CAACA,OAAO,CAACmB,MAAM,GAAGA,MAAiC;IACzD;EACF;EAEAG,IAAIA,CAAA,EAAS;IAAA,IAAAC,cAAA;IACX,CAAAA,cAAA,OAAI,CAACvB,OAAO,cAAAuB,cAAA,eAAZA,cAAA,CAAcD,IAAI,CAAC,CAAC;EACtB;EAEAhB,KAAKA,CAAA,EAAS;IAAA,IAAAkB,cAAA;IACZ,CAAAA,cAAA,OAAI,CAACxB,OAAO,cAAAwB,cAAA,eAAZA,cAAA,CAAclB,KAAK,CAAC,CAAC;EACvB;EAEA,IAAImB,MAAMA,CAAA,EAAY;IACpB,OAAO,IAAI,CAACzB,OAAO,GAAG,IAAI,CAACA,OAAO,CAACyB,MAAM,GAAG,IAAI;EAClD;EAEA,IAAIC,QAAQA,CAAA,EAAY;IACtB,OAAO,IAAI,CAAC1B,OAAO,GAAG,IAAI,CAACA,OAAO,CAAC0B,QAAQ,GAAG,KAAK;EACrD;EAEA,IAAIA,QAAQA,CAACA,QAAiB,EAAE;IAC9B,IAAI,IAAI,CAAC1B,OAAO,EAAE;MAChB,IAAI,CAACA,OAAO,CAAC0B,QAAQ,GAAGA,QAAQ;IAClC;EACF;EAEA,IAAIC,OAAOA,CAACC,IAAiB,EAAE;IAC7B,IAAI,IAAI,CAAC5B,OAAO,EAAE;MAChB,IAAI,CAACA,OAAO,CAAC2B,OAAO,GAAGC,IAAI;IAC7B;EACF;EAEA,IAAID,OAAOA,CAAA,EAAgB;IAAA,IAAAE,cAAA;IACzB,OAAO,EAAAA,cAAA,OAAI,CAAC7B,OAAO,cAAA6B,cAAA,uBAAZA,cAAA,CAAcF,OAAO,KAAI,MAAM;EACxC;EAEA,IAAIG,QAAQA,CAAA,EAAG;IACb,IAAI,CAAC,IAAI,CAAC9B,OAAO,EAAE;MACjB,OAAO,EAAE;IACX;IACA,MAAM+B,WAAW,GAAG,IAAI,CAAC/B,OAAO,CAAC8B,QAAQ;IACzC,OAAO,CAAC,GAAGE,KAAK,CAACD,WAAW,CAACE,MAAM,CAAC,CAAC,CAACC,GAAG,CAAC,CAACC,CAAC,EAAEC,KAAK,MAAM;MAAEC,KAAK,EAAE,GAAG,GAAGN,WAAW,CAACM,KAAK,CAACD,KAAK,CAAC;MAAEE,GAAG,EAAE,GAAG,GAAGP,WAAW,CAACO,GAAG,CAACF,KAAK;IAAE,CAAC,CAAC,CAAC;EACzI;EAEA,IAAIG,QAAQA,CAAA,EAAG;IACb,IAAI,CAAC,IAAI,CAACvC,OAAO,EAAE;MACjB,OAAO,EAAE;IACX;IACA,MAAM+B,WAAW,GAAG,IAAI,CAAC/B,OAAO,CAACuC,QAAQ;IACzC,OAAO,CAAC,GAAGP,KAAK,CAACD,WAAW,CAACE,MAAM,CAAC,CAAC,CAACC,GAAG,CAAC,CAACC,CAAC,EAAEC,KAAK,MAAM;MAAEC,KAAK,EAAE,GAAG,GAAGN,WAAW,CAACM,KAAK,CAACD,KAAK,CAAC;MAAEE,GAAG,EAAE,GAAG,GAAGP,WAAW,CAACO,GAAG,CAACF,KAAK;IAAE,CAAC,CAAC,CAAC;EACzI;EAEA,IAAII,YAAYA,CAAA,EAAW;IACzB,OAAO,IAAI,CAACxC,OAAO,GAAG,IAAI,CAACA,OAAO,CAACwC,YAAY,GAAG,CAAC;EACrD;EAEA,IAAIA,YAAYA,CAACA,YAAoB,EAAE;IACrC,IAAI,IAAI,CAACxC,OAAO,EAAE;MAChB,IAAI,CAACA,OAAO,CAACwC,YAAY,GAAGA,YAAY;IAC1C;EACF;EAEA,IAAIC,gBAAgBA,CAAA,EAAqB;IACvC,OAAO,IAAI,CAACC,iBAAiB;EAC/B;EAEA,IAAID,gBAAgBA,CAAC9C,MAAwB,EAAE;IAC7C,IAAI,CAAC+C,iBAAiB,GAAG/C,MAAM;EACjC;EAEA,IAAIU,4BAA4BA,CAAA,EAAiC;IAC/D,OAAO,IAAI,CAACsC,6BAA6B;EAC3C;EAEA,IAAItC,4BAA4BA,CAACV,MAAoC,EAAE;IAAA,IAAAiD,oBAAA;IACrE,IAAI,CAACD,6BAA6B,GAAGhD,MAAM;;IAE3C;IACA,CAAAiD,oBAAA,OAAI,CAACrC,aAAa,cAAAqC,oBAAA,eAAlBA,oBAAA,CAAoBpC,oBAAoB,CAAC,CAAC;EAC5C;EAEA,IAAIqC,MAAMA,CAAA,EAAW;IACnB,OAAO,IAAI,CAAC7C,OAAO,GAAG,IAAI,CAACA,OAAO,CAAC6C,MAAM,GAAG,CAAC;EAC/C;EAEA,IAAIA,MAAMA,CAACA,MAAc,EAAE;IACzB,IAAI,IAAI,CAAC7C,OAAO,EAAE;MAChB,IAAI,CAACA,OAAO,CAAC6C,MAAM,GAAGA,MAAM;IAC9B;EACF;EAEA,IAAIC,KAAKA,CAAA,EAAY;IACnB,OAAO,IAAI,CAAC9C,OAAO,GAAG,IAAI,CAACA,OAAO,CAAC8C,KAAK,GAAG,KAAK;EAClD;EAEA,IAAIA,KAAKA,CAACA,KAAc,EAAE;IACxB,IAAI,IAAI,CAAC9C,OAAO,EAAE;MAChB,IAAI,CAACA,OAAO,CAAC8C,KAAK,GAAGA,KAAK;IAC5B;EACF;EAEA,IAAIC,OAAOA,CAAA,EAAY;IACrB,OAAO,IAAI,CAAC/C,OAAO,GAAG,IAAI,CAACA,OAAO,CAAC+C,OAAO,GAAG,KAAK;EACpD;EAEA,IAAI5C,gBAAgBA,CAAA,EAAqB;IACvC,OAAO,IAAI,CAACS,wBAAwB,CAACT,gBAAgB;EACvD;EAEA,IAAIA,gBAAgBA,CAACA,gBAAkC,EAAE;IACvD,IAAI,CAACS,wBAAwB,CAACT,gBAAgB,GAAGA,gBAAgB;EACnE;EAEA,IAAI6C,WAAWA,CAAA,EAAiB;IAC9B,OAAO,IAAI,CAAChD,OAAO,GAAGnB,wBAAwB,CAAC,IAAI,CAACmB,OAAO,CAACgD,WAAW,CAAC,GAAG,EAAE;EAC/E;EAEA,IAAIC,WAAWA,CAAA,EAAiB;IAC9B,OAAO,IAAI,CAACjD,OAAO,GAAGnB,wBAAwB,CAAC,IAAI,CAACmB,OAAO,CAACiD,WAAW,CAAC,GAAG,EAAE;EAC/E;EAEA,IAAIC,UAAUA,CAAA,EAAgB;IAC5B,OAAO,IAAI,CAAClD,OAAO,GAAGlB,uBAAuB,CAAC,IAAI,CAACkB,OAAO,CAACkD,UAAU,CAAC,GAAG,EAAE;EAC7E;EAEA,IAAIC,iBAAiBA,CAAA,EAAuB;IAC1C,IAAI,IAAI,CAACnD,OAAO,EAAE;MAAA,IAAAoD,qBAAA;MAChB,QAAAA,qBAAA,GAAO,IAAI,CAACpD,OAAO,CAACkD,UAAU,CAACG,IAAI,CAAEC,SAA0B,IAAK;QAClE,OAAOA,SAAS,CAACC,IAAI,KAAK,SAAS;MACrC,CAAC,CAAC,cAAAH,qBAAA,uBAFKA,qBAAA,CAEHI,GAAG;IACT;IACA,OAAO1D,SAAS;EAClB;EAEA,IAAIqD,iBAAiBA,CAACA,iBAAqC,EAAE;IAC3D,IAAI,IAAI,CAACnD,OAAO,EAAE;MAChB,IAAI,CAACA,OAAO,CAACkD,UAAU,CAACO,OAAO,CAAEH,SAA0B,IAAK;QAC9DA,SAAS,CAACC,IAAI,GAAGD,SAAS,CAACE,GAAG,KAAKL,iBAAiB,GAAG,SAAS,GAAG,UAAU;MAC/E,CAAC,CAAC;IACJ;EACF;EAEA,IAAIO,cAAcA,CAAA,EAAmB;IAAA,IAAAC,cAAA;IACnC,QAAAA,cAAA,GAAO,IAAI,CAAC3D,OAAO,cAAA2D,cAAA,uBAAZA,cAAA,CAAcD,cAAc;EACrC;EAEA,IAAIE,kBAAkBA,CAAA,EAAuB;IAC3C,IAAI,IAAI,CAAC5D,OAAO,EAAE;MAAA,IAAA6D,qBAAA;MAChB,QAAAA,qBAAA,GAAO,IAAI,CAAC7D,OAAO,CAACiD,WAAW,CAACI,IAAI,CAAES,UAA4B,IAAKA,UAAU,CAACzE,OAAO,CAAC,cAAAwE,qBAAA,uBAAnFA,qBAAA,CAAqFL,GAAG;IACjG;IACA,OAAO1D,SAAS;EAClB;EAEA,IAAI8D,kBAAkBA,CAACA,kBAAsC,EAAE;IAC7D,IAAI,IAAI,CAAC5D,OAAO,EAAE;MAChB,IAAI,CAACqB,mBAAmB,GAAGvB,SAAS;MACpC,IAAI,CAACE,OAAO,CAACiD,WAAW,CAACQ,OAAO,CAAEK,UAA4B,IAAK;QACjEA,UAAU,CAACzE,OAAO,GAAGyE,UAAU,CAACN,GAAG,KAAKI,kBAAkB;MAC5D,CAAC,CAAC;IACJ;EACF;EAEA,IAAIG,kBAAkBA,CAAA,EAAuB;IAC3C,IAAI,IAAI,CAAC/D,OAAO,EAAE;MAAA,IAAAgE,qBAAA;MAChB,QAAAA,qBAAA,GAAO,IAAI,CAAChE,OAAO,CAACgD,WAAW,CAACK,IAAI,CAAEY,UAA4B,IAAK;QACrE,OAAOA,UAAU,CAAC5E,OAAO;MAC3B,CAAC,CAAC,cAAA2E,qBAAA,uBAFKA,qBAAA,CAEHR,GAAG;IACT;IACA,OAAO1D,SAAS;EAClB;EAEA,IAAIiE,kBAAkBA,CAACA,kBAAsC,EAAE;IAC7D,IAAI,IAAI,CAAC/D,OAAO,EAAE;MAChB,IAAI,CAACA,OAAO,CAACgD,WAAW,CAACS,OAAO,CAAEQ,UAA4B,IAAK;QACjEA,UAAU,CAAC5E,OAAO,GAAG4E,UAAU,CAACT,GAAG,KAAKO,kBAAkB;MAC5D,CAAC,CAAC;IACJ;EACF;EAEA,IAAIG,kBAAkBA,CAAA,EAAkC;IACtD,IAAI,IAAI,CAAClE,OAAO,EAAE;MAChB,OAAO,IAAI,CAACqB,mBAAmB;IACjC;IACA,OAAOvB,SAAS;EAClB;EAEA,IAAIoE,kBAAkBA,CAACA,kBAAiD,EAAE;IACxE,IAAI,IAAI,CAAClE,OAAO,EAAE;MAChB,MAAMmE,iBAAiB,GAAG,IAAI,CAACnE,OAAO,CAACiD,WAAW,CAACI,IAAI,CAAES,UAA4B,IAAKA,UAAU,CAACzE,OAAO,CAAC;MAC7G,IAAI8E,iBAAiB,EAAE;QACrBA,iBAAiB,CAACC,aAAa,GAAGxF,wBAAwB,CAACuF,iBAAiB,EAAED,kBAAkB,CAAC;MACnG;MACA,IAAI,CAAC7C,mBAAmB,GAAG6C,kBAAkB;IAC/C;EACF;EAEA,IAAIG,WAAWA,CAAA,EAAW;IACxB,OAAO,IAAI,CAACrE,OAAO,GAAG,GAAG,GAAG,IAAI,CAACA,OAAO,CAACqE,WAAW,GAAGC,GAAG;EAC5D;EAEA,IAAID,WAAWA,CAACA,WAAmB,EAAE;IACnC,IAAIE,KAAK,CAACF,WAAW,CAAC,EAAE;MACtB;IACF;IACA,IAAI,IAAI,CAACrE,OAAO,EAAE;MAChB,IAAI,CAACA,OAAO,CAACqE,WAAW,GAAGA,WAAW,GAAG,GAAG;IAC9C;EACF;EAEA,IAAIG,WAAWA,CAAA,EAAgB;IAC7B,OAAOnG,WAAW,CAACoG,GAAG;EACxB;EAEA,IAAID,WAAWA,CAACE,MAAmB,EAAE;IACnC;EAAA;EAGF,IAAIC,QAAQA,CAAA,EAAW;IACrB,OAAO,IAAI,CAAC3E,OAAO,GAAG,IAAI,CAACA,OAAO,CAAC2E,QAAQ,GAAG,GAAG,GAAGL,GAAG;EACzD;EAEA,IAAWM,GAAGA,CAAA,EAAW;IACvB,OAAO,IAAI,CAACnE,WAAW;EACzB;EAEA,IAAWoE,IAAIA,CAAA,EAAY;IACzB,OAAO,IAAI,CAACnE,YAAY;EAC1B;EAEA,IAAWhC,OAAOA,CAAA,EAAkB;IAClC,OAAO;MACLA,OAAO,EAAEC,aAAa;MACtBmG,kBAAkB,EAAE,EAAE,CAAE;IAC1B,CAAC;EACH;;EAEAC,OAAOA,CAAA,EAAS;IAAA,IAAAC,qBAAA,EAAAC,oBAAA,EAAAC,cAAA;IACd,IAAI,CAACC,aAAa,CAAC,IAAIjG,SAAS,CAACZ,eAAe,CAAC8G,OAAO,CAAC,CAAC;IAC1D,CAAAJ,qBAAA,OAAI,CAACrE,eAAe,cAAAqE,qBAAA,eAApBA,qBAAA,CAAsBK,MAAM,CAAC,CAAC;IAC9B,CAAAJ,oBAAA,OAAI,CAAC1E,aAAa,cAAA0E,oBAAA,eAAlBA,oBAAA,CAAoBF,OAAO,CAAC,CAAC;IAC7B9E,QAAQ,CAACqF,mBAAmB,CAAC,kBAAkB,EAAE,IAAI,CAACxE,kBAAkB,CAAC;IACzE,IAAI,CAACH,eAAe,GAAGb,SAAS;IAChC,IAAI,CAACS,aAAa,GAAGT,SAAS;IAC9B,CAAAoF,cAAA,OAAI,CAAClF,OAAO,cAAAkF,cAAA,eAAZA,cAAA,CAAcH,OAAO,CAAC,CAAC;IACvB,IAAI,CAAC/E,OAAO,GAAGF,SAAS;EAC1B;EAgBA,IAAIyF,YAAYA,CAAA,EAAqB;IACnC,OAAO,IAAI,CAACvF,OAAO;EACrB;EAEA,IAAIwF,SAASA,CAAA,EAAsB;IACjC,OAAO,IAAI,CAACC,oBAAoB,KAAK,IAAI,CAACA,oBAAoB,GAAG,IAAItG,qBAAqB,CAAC,IAAI,CAAC,CAAC;EACnG;AACF"}
|
|
1
|
+
{"version":3,"names":["DefaultEventDispatcher","AspectRatio","PlayerEventType","PresentationMode","THEOplayerWebAdsAdapter","THEOplayerWebCastAdapter","version","nativeVersion","findNativeQualitiesByUid","fromNativeMediaTrackList","fromNativeTextTrackList","WebEventForwarder","WebPresentationModeManager","WebMediaSession","BaseEvent","EventBroadcastAdapter","defaultBackgroundAudioConfiguration","enabled","defaultPipConfiguration","startsAutomatically","THEOplayerWebAdapter","constructor","player","config","_config$mediaControl","_defineProperty","undefined","_this$_mediaSession","_player","document","visibilityState","presentationMode","pip","backgroundAudioConfiguration","pause","_mediaSession","updateActionHandlers","_adsAdapter","_castAdapter","_eventForwarder","_presentationModeManager","addEventListener","onVisibilityChange","mediaControl","mediaSessionEnabled","abr","_this$_player","source","_this$_player2","_targetVideoQuality","play","_this$_player3","_this$_player4","paused","autoplay","preload","type","_this$_player5","seekable","nativeRange","Array","length","map","_","index","start","end","buffered","playbackRate","pipConfiguration","_pipConfiguration","_backgroundAudioConfiguration","_this$_mediaSession2","volume","muted","seeking","audioTracks","videoTracks","textTracks","selectedTextTrack","_this$_player$textTra","find","textTrack","mode","uid","forEach","textTrackStyle","_this$_player6","selectedVideoTrack","_this$_player$videoTr","videoTrack","selectedAudioTrack","_this$_player$audioTr","audioTrack","targetVideoQuality","enabledVideoTrack","targetQuality","currentTime","NaN","isNaN","aspectRatio","FIT","_ratio","keepScreenOn","_screenOn","duration","ads","cast","playerSuiteVersion","destroy","_this$_eventForwarder","_this$_mediaSession3","_this$_player7","dispatchEvent","DESTROY","unload","removeEventListener","nativeHandle","broadcast","_externalEventRouter"],"sources":["THEOplayerWebAdapter.ts"],"sourcesContent":["import { DefaultEventDispatcher } from './event/DefaultEventDispatcher';\nimport type {\n AdsAPI,\n CastAPI,\n MediaTrack,\n NativeHandleType,\n PlayerConfiguration,\n PlayerEventMap,\n PlayerVersion,\n PreloadType,\n TextTrack,\n TextTrackStyle,\n THEOplayer,\n} from 'react-native-theoplayer';\nimport { AspectRatio, EventBroadcastAPI, PlayerEventType, PresentationMode } from 'react-native-theoplayer';\nimport { THEOplayerWebAdsAdapter } from './ads/THEOplayerWebAdsAdapter';\nimport { THEOplayerWebCastAdapter } from './cast/THEOplayerWebCastAdapter';\nimport { ChromelessPlayer as NativeChromelessPlayer, SourceDescription as NativeSourceDescription, version as nativeVersion } from 'theoplayer';\nimport type { MediaTrack as NativeMediaTrack, TextTrack as NativeTextTrack } from 'theoplayer';\nimport { findNativeQualitiesByUid, fromNativeMediaTrackList, fromNativeTextTrackList } from './web/TrackUtils';\nimport type { ABRConfiguration, SourceDescription } from 'src/api/barrel';\nimport { WebEventForwarder } from './WebEventForwarder';\nimport type { PiPConfiguration } from 'src/api/pip/PiPConfiguration';\nimport type { BackgroundAudioConfiguration } from 'src/api/backgroundAudio/BackgroundAudioConfiguration';\nimport { WebPresentationModeManager } from './web/WebPresentationModeManager';\nimport { WebMediaSession } from './web/WebMediaSession';\nimport { BaseEvent } from './event/BaseEvent';\nimport { EventBroadcastAdapter } from \"./broadcast/EventBroadcastAdapter\";\n\nconst defaultBackgroundAudioConfiguration: BackgroundAudioConfiguration = {\n enabled: false,\n};\n\nconst defaultPipConfiguration: PiPConfiguration = {\n startsAutomatically: false,\n};\n\nexport class THEOplayerWebAdapter extends DefaultEventDispatcher<PlayerEventMap> implements THEOplayer {\n private readonly _adsAdapter: THEOplayerWebAdsAdapter;\n private readonly _castAdapter: THEOplayerWebCastAdapter;\n private readonly _presentationModeManager: WebPresentationModeManager;\n private _player: NativeChromelessPlayer | undefined;\n private _eventForwarder: WebEventForwarder | undefined;\n private _mediaSession: WebMediaSession | undefined = undefined;\n private _targetVideoQuality: number | number[] | undefined = undefined;\n private _backgroundAudioConfiguration: BackgroundAudioConfiguration = defaultBackgroundAudioConfiguration;\n private _pipConfiguration: PiPConfiguration = defaultPipConfiguration;\n private _externalEventRouter: EventBroadcastAPI | undefined = undefined;\n\n constructor(player: NativeChromelessPlayer, config?: PlayerConfiguration) {\n super();\n this._player = player;\n this._adsAdapter = new THEOplayerWebAdsAdapter(this._player);\n this._castAdapter = new THEOplayerWebCastAdapter(this._player);\n this._eventForwarder = new WebEventForwarder(this._player, this);\n this._presentationModeManager = new WebPresentationModeManager(this._player, this);\n document.addEventListener('visibilitychange', this.onVisibilityChange);\n\n // Optionally create a media session connector\n if (config?.mediaControl?.mediaSessionEnabled !== false) {\n this._mediaSession = new WebMediaSession(this, player);\n }\n }\n\n get abr(): ABRConfiguration | undefined {\n return this._player?.abr as ABRConfiguration | undefined;\n }\n\n get source(): SourceDescription | undefined {\n return this._player?.source as SourceDescription;\n }\n\n set source(source: SourceDescription | undefined) {\n this._targetVideoQuality = undefined;\n if (this._player) {\n this._player.source = source as NativeSourceDescription;\n }\n }\n\n play(): void {\n this._player?.play();\n }\n\n pause(): void {\n this._player?.pause();\n }\n\n get paused(): boolean {\n return this._player ? this._player.paused : true;\n }\n\n get autoplay(): boolean {\n return this._player ? this._player.autoplay : false;\n }\n\n set autoplay(autoplay: boolean) {\n if (this._player) {\n this._player.autoplay = autoplay;\n }\n }\n\n set preload(type: PreloadType) {\n if (this._player) {\n this._player.preload = type;\n }\n }\n\n get preload(): PreloadType {\n return this._player?.preload || 'none';\n }\n\n get seekable() {\n if (!this._player) {\n return [];\n }\n const nativeRange = this._player.seekable;\n return [...Array(nativeRange.length)].map((_, index) => ({ start: 1e3 * nativeRange.start(index), end: 1e3 * nativeRange.end(index) }));\n }\n\n get buffered() {\n if (!this._player) {\n return [];\n }\n const nativeRange = this._player.buffered;\n return [...Array(nativeRange.length)].map((_, index) => ({ start: 1e3 * nativeRange.start(index), end: 1e3 * nativeRange.end(index) }));\n }\n\n get playbackRate(): number {\n return this._player ? this._player.playbackRate : 1;\n }\n\n set playbackRate(playbackRate: number) {\n if (this._player) {\n this._player.playbackRate = playbackRate;\n }\n }\n\n get pipConfiguration(): PiPConfiguration {\n return this._pipConfiguration;\n }\n\n set pipConfiguration(config: PiPConfiguration) {\n this._pipConfiguration = config;\n }\n\n get backgroundAudioConfiguration(): BackgroundAudioConfiguration {\n return this._backgroundAudioConfiguration;\n }\n\n set backgroundAudioConfiguration(config: BackgroundAudioConfiguration) {\n this._backgroundAudioConfiguration = config;\n\n // Notify media session\n this._mediaSession?.updateActionHandlers();\n }\n\n get volume(): number {\n return this._player ? this._player.volume : 1;\n }\n\n set volume(volume: number) {\n if (this._player) {\n this._player.volume = volume;\n }\n }\n\n get muted(): boolean {\n return this._player ? this._player.muted : false;\n }\n\n set muted(muted: boolean) {\n if (this._player) {\n this._player.muted = muted;\n }\n }\n\n get seeking(): boolean {\n return this._player ? this._player.seeking : false;\n }\n\n get presentationMode(): PresentationMode {\n return this._presentationModeManager.presentationMode;\n }\n\n set presentationMode(presentationMode: PresentationMode) {\n this._presentationModeManager.presentationMode = presentationMode;\n }\n\n get audioTracks(): MediaTrack[] {\n return this._player ? fromNativeMediaTrackList(this._player.audioTracks) : [];\n }\n\n get videoTracks(): MediaTrack[] {\n return this._player ? fromNativeMediaTrackList(this._player.videoTracks) : [];\n }\n\n get textTracks(): TextTrack[] {\n return this._player ? fromNativeTextTrackList(this._player.textTracks) : [];\n }\n\n get selectedTextTrack(): number | undefined {\n if (this._player) {\n return this._player.textTracks.find((textTrack: NativeTextTrack) => {\n return textTrack.mode === 'showing';\n })?.uid;\n }\n return undefined;\n }\n\n set selectedTextTrack(selectedTextTrack: number | undefined) {\n if (this._player) {\n this._player.textTracks.forEach((textTrack: NativeTextTrack) => {\n textTrack.mode = textTrack.uid === selectedTextTrack ? 'showing' : 'disabled';\n });\n }\n }\n\n get textTrackStyle(): TextTrackStyle {\n return this._player?.textTrackStyle as TextTrackStyle;\n }\n\n get selectedVideoTrack(): number | undefined {\n if (this._player) {\n return this._player.videoTracks.find((videoTrack: NativeMediaTrack) => videoTrack.enabled)?.uid;\n }\n return undefined;\n }\n\n set selectedVideoTrack(selectedVideoTrack: number | undefined) {\n if (this._player) {\n this._targetVideoQuality = undefined;\n this._player.videoTracks.forEach((videoTrack: NativeMediaTrack) => {\n videoTrack.enabled = videoTrack.uid === selectedVideoTrack;\n });\n }\n }\n\n get selectedAudioTrack(): number | undefined {\n if (this._player) {\n return this._player.audioTracks.find((audioTrack: NativeMediaTrack) => {\n return audioTrack.enabled;\n })?.uid;\n }\n return undefined;\n }\n\n set selectedAudioTrack(selectedAudioTrack: number | undefined) {\n if (this._player) {\n this._player.audioTracks.forEach((audioTrack: NativeMediaTrack) => {\n audioTrack.enabled = audioTrack.uid === selectedAudioTrack;\n });\n }\n }\n\n get targetVideoQuality(): number | number[] | undefined {\n if (this._player) {\n return this._targetVideoQuality;\n }\n return undefined;\n }\n\n set targetVideoQuality(targetVideoQuality: number | number[] | undefined) {\n if (this._player) {\n const enabledVideoTrack = this._player.videoTracks.find((videoTrack: NativeMediaTrack) => videoTrack.enabled);\n if (enabledVideoTrack) {\n enabledVideoTrack.targetQuality = findNativeQualitiesByUid(enabledVideoTrack, targetVideoQuality);\n }\n this._targetVideoQuality = targetVideoQuality;\n }\n }\n\n get currentTime(): number {\n return this._player ? 1e3 * this._player.currentTime : NaN;\n }\n\n set currentTime(currentTime: number) {\n if (isNaN(currentTime)) {\n return;\n }\n if (this._player) {\n this._player.currentTime = currentTime / 1e3;\n }\n }\n\n get aspectRatio(): AspectRatio {\n return AspectRatio.FIT;\n }\n\n set aspectRatio(_ratio: AspectRatio) {\n // unused\n }\n\n get keepScreenOn(): boolean {\n return false;\n }\n\n set keepScreenOn(_screenOn: boolean) {\n // unused\n }\n\n get duration(): number {\n return this._player ? this._player.duration * 1e3 : NaN;\n }\n\n public get ads(): AdsAPI {\n return this._adsAdapter;\n }\n\n public get cast(): CastAPI {\n return this._castAdapter;\n }\n\n public get version(): PlayerVersion {\n return {\n version: nativeVersion,\n playerSuiteVersion: '', // deprecated\n };\n }\n\n destroy(): void {\n this.dispatchEvent(new BaseEvent(PlayerEventType.DESTROY));\n this._eventForwarder?.unload();\n this._mediaSession?.destroy();\n document.removeEventListener('visibilitychange', this.onVisibilityChange);\n this._eventForwarder = undefined;\n this._mediaSession = undefined;\n this._player?.destroy();\n this._player = undefined;\n }\n\n private readonly onVisibilityChange = () => {\n if (!this._player) {\n return;\n }\n if (document.visibilityState !== 'visible') {\n // Apply background configuration: by default, pause when going to background, unless in pip\n if (this.presentationMode !== PresentationMode.pip && !this.backgroundAudioConfiguration.enabled) {\n this._player.pause();\n }\n }\n // Apply media session controls\n this._mediaSession?.updateActionHandlers();\n };\n\n get nativeHandle(): NativeHandleType {\n return this._player;\n }\n\n get broadcast(): EventBroadcastAPI {\n return this._externalEventRouter ?? (this._externalEventRouter = new EventBroadcastAdapter(this));\n }\n}\n"],"mappings":"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"}
|
|
@@ -151,6 +151,14 @@ export interface THEOplayer extends EventDispatcher<PlayerEventMap> {
|
|
|
151
151
|
* Only available for iOS and Android.
|
|
152
152
|
*/
|
|
153
153
|
aspectRatio: AspectRatio;
|
|
154
|
+
/**
|
|
155
|
+
* Toggle the wake-lock on the player view. The screen will time out if disabled.
|
|
156
|
+
*
|
|
157
|
+
* @defaultValue `true`
|
|
158
|
+
* @remarks
|
|
159
|
+
* Only available on Android.
|
|
160
|
+
*/
|
|
161
|
+
keepScreenOn: boolean;
|
|
154
162
|
/**
|
|
155
163
|
* The active configuration for PiP.
|
|
156
164
|
*/
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import type { MediaTrack, PreloadType, PresentationMode, SourceDescription, TextTrack, TimeRange } from 'react-native-theoplayer';
|
|
2
|
-
import type { BackgroundAudioConfiguration } from '
|
|
3
|
-
import type { PiPConfiguration } from 'react-native-theoplayer';
|
|
4
|
-
import type { AspectRatio } from 'react-native-theoplayer';
|
|
2
|
+
import type { PiPConfiguration, AspectRatio, BackgroundAudioConfiguration } from 'react-native-theoplayer';
|
|
5
3
|
export interface NativePlayerState {
|
|
6
4
|
source: SourceDescription | undefined;
|
|
7
5
|
autoplay: boolean;
|
|
@@ -19,6 +17,7 @@ export interface NativePlayerState {
|
|
|
19
17
|
playbackRate: number;
|
|
20
18
|
preload: PreloadType;
|
|
21
19
|
aspectRatio: AspectRatio;
|
|
20
|
+
keepScreenOn: boolean;
|
|
22
21
|
audioTracks: MediaTrack[];
|
|
23
22
|
videoTracks: MediaTrack[];
|
|
24
23
|
textTracks: TextTrack[];
|
|
@@ -72,6 +72,8 @@ export declare class THEOplayerAdapter extends DefaultEventDispatcher<PlayerEven
|
|
|
72
72
|
set volume(volume: number);
|
|
73
73
|
get aspectRatio(): AspectRatio;
|
|
74
74
|
set aspectRatio(ratio: AspectRatio);
|
|
75
|
+
get keepScreenOn(): boolean;
|
|
76
|
+
set keepScreenOn(value: boolean);
|
|
75
77
|
pause(): void;
|
|
76
78
|
play(): void;
|
|
77
79
|
get version(): PlayerVersion;
|
|
@@ -64,6 +64,8 @@ export declare class THEOplayerWebAdapter extends DefaultEventDispatcher<PlayerE
|
|
|
64
64
|
set currentTime(currentTime: number);
|
|
65
65
|
get aspectRatio(): AspectRatio;
|
|
66
66
|
set aspectRatio(_ratio: AspectRatio);
|
|
67
|
+
get keepScreenOn(): boolean;
|
|
68
|
+
set keepScreenOn(_screenOn: boolean);
|
|
67
69
|
get duration(): number;
|
|
68
70
|
get ads(): AdsAPI;
|
|
69
71
|
get cast(): CastAPI;
|
package/package.json
CHANGED
|
@@ -179,6 +179,15 @@ export interface THEOplayer extends EventDispatcher<PlayerEventMap> {
|
|
|
179
179
|
*/
|
|
180
180
|
aspectRatio: AspectRatio;
|
|
181
181
|
|
|
182
|
+
/**
|
|
183
|
+
* Toggle the wake-lock on the player view. The screen will time out if disabled.
|
|
184
|
+
*
|
|
185
|
+
* @defaultValue `true`
|
|
186
|
+
* @remarks
|
|
187
|
+
* Only available on Android.
|
|
188
|
+
*/
|
|
189
|
+
keepScreenOn: boolean;
|
|
190
|
+
|
|
182
191
|
/**
|
|
183
192
|
* The active configuration for PiP.
|
|
184
193
|
*/
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import type { MediaTrack, PreloadType, PresentationMode, SourceDescription, TextTrack, TimeRange } from 'react-native-theoplayer';
|
|
2
|
-
import type { BackgroundAudioConfiguration } from '
|
|
3
|
-
import type { PiPConfiguration } from 'react-native-theoplayer';
|
|
4
|
-
import type { AspectRatio } from 'react-native-theoplayer';
|
|
2
|
+
import type { PiPConfiguration, AspectRatio, BackgroundAudioConfiguration } from 'react-native-theoplayer';
|
|
5
3
|
|
|
6
4
|
export interface NativePlayerState {
|
|
7
5
|
source: SourceDescription | undefined;
|
|
@@ -20,6 +18,7 @@ export interface NativePlayerState {
|
|
|
20
18
|
playbackRate: number;
|
|
21
19
|
preload: PreloadType;
|
|
22
20
|
aspectRatio: AspectRatio;
|
|
21
|
+
keepScreenOn: boolean;
|
|
23
22
|
audioTracks: MediaTrack[];
|
|
24
23
|
videoTracks: MediaTrack[];
|
|
25
24
|
textTracks: TextTrack[];
|
|
@@ -67,6 +67,7 @@ const defaultPlayerState: NativePlayerState = {
|
|
|
67
67
|
playbackRate: 1,
|
|
68
68
|
preload: 'none',
|
|
69
69
|
aspectRatio: AspectRatio.FIT,
|
|
70
|
+
keepScreenOn: true,
|
|
70
71
|
audioTracks: [],
|
|
71
72
|
videoTracks: [],
|
|
72
73
|
textTracks: [],
|
|
@@ -502,6 +503,17 @@ export class THEOplayerAdapter extends DefaultEventDispatcher<PlayerEventMap> im
|
|
|
502
503
|
NativeModules.PlayerModule.setAspectRatio(this._view.nativeHandle, ratio);
|
|
503
504
|
}
|
|
504
505
|
|
|
506
|
+
get keepScreenOn(): boolean {
|
|
507
|
+
return this._state.keepScreenOn;
|
|
508
|
+
}
|
|
509
|
+
|
|
510
|
+
set keepScreenOn(value: boolean) {
|
|
511
|
+
this._state.keepScreenOn = value;
|
|
512
|
+
if (Platform.OS === 'android') {
|
|
513
|
+
NativeModules.PlayerModule.setKeepScreenOn(this._view.nativeHandle, value);
|
|
514
|
+
}
|
|
515
|
+
}
|
|
516
|
+
|
|
505
517
|
pause(): void {
|
|
506
518
|
if (this.hasValidSource()) {
|
|
507
519
|
this._state.paused = true;
|
|
@@ -290,6 +290,14 @@ export class THEOplayerWebAdapter extends DefaultEventDispatcher<PlayerEventMap>
|
|
|
290
290
|
// unused
|
|
291
291
|
}
|
|
292
292
|
|
|
293
|
+
get keepScreenOn(): boolean {
|
|
294
|
+
return false;
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
set keepScreenOn(_screenOn: boolean) {
|
|
298
|
+
// unused
|
|
299
|
+
}
|
|
300
|
+
|
|
293
301
|
get duration(): number {
|
|
294
302
|
return this._player ? this._player.duration * 1e3 : NaN;
|
|
295
303
|
}
|