bitmovin-player-react-native 1.2.0 → 1.3.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 +23 -0
- package/android/build.gradle +2 -2
- package/android/src/main/java/com/bitmovin/player/reactnative/PlayerModule.kt +47 -0
- package/android/src/main/java/com/bitmovin/player/reactnative/converter/JsonConverter.kt +32 -3
- package/build/adaptationConfig.d.ts +1 -1
- package/build/adaptationConfig.js.map +1 -1
- package/build/advertising.d.ts +54 -1
- package/build/advertising.d.ts.map +1 -1
- package/build/advertising.js.map +1 -1
- package/build/audioSession.d.ts +3 -3
- package/build/audioSession.js +2 -2
- package/build/audioSession.js.map +1 -1
- package/build/bitmovinCastManager.d.ts +3 -3
- package/build/bitmovinCastManager.js +2 -2
- package/build/bitmovinCastManager.js.map +1 -1
- package/build/bufferConfig.d.ts +2 -2
- package/build/bufferConfig.js.map +1 -1
- package/build/components/PlayerView/events.d.ts +16 -16
- package/build/components/PlayerView/events.js.map +1 -1
- package/build/components/PlayerView/nativeEvents.d.ts +16 -16
- package/build/components/PlayerView/nativeEvents.js.map +1 -1
- package/build/components/PlayerView/pictureInPictureConfig.d.ts +1 -1
- package/build/components/PlayerView/pictureInPictureConfig.js.map +1 -1
- package/build/components/PlayerView/playerViewConfig.d.ts +2 -2
- package/build/components/PlayerView/playerViewConfig.js.map +1 -1
- package/build/decoder/decoderConfig.d.ts +2 -2
- package/build/decoder/decoderConfig.js.map +1 -1
- package/build/drm/index.d.ts +2 -2
- package/build/drm/index.js.map +1 -1
- package/build/drm/widevineConfig.d.ts +5 -5
- package/build/drm/widevineConfig.js.map +1 -1
- package/build/events.d.ts +10 -10
- package/build/events.js.map +1 -1
- package/build/media.d.ts +4 -0
- package/build/media.d.ts.map +1 -1
- package/build/media.js.map +1 -1
- package/build/modules/PlayerModule.d.ts +12 -1
- package/build/modules/PlayerModule.d.ts.map +1 -1
- package/build/modules/PlayerModule.js.map +1 -1
- package/build/offline/offlineContentConfig.d.ts +1 -1
- package/build/offline/offlineContentConfig.js.map +1 -1
- package/build/offline/offlineContentManager.d.ts +2 -2
- package/build/offline/offlineContentManager.js +2 -2
- package/build/offline/offlineContentManager.js.map +1 -1
- package/build/offline/offlineContentManagerListener.d.ts +13 -13
- package/build/offline/offlineContentManagerListener.js +1 -1
- package/build/offline/offlineContentManagerListener.js.map +1 -1
- package/build/offline/offlineContentOptions.d.ts +2 -2
- package/build/offline/offlineContentOptions.js.map +1 -1
- package/build/offline/offlineDownloadRequest.d.ts +1 -1
- package/build/offline/offlineDownloadRequest.js.map +1 -1
- package/build/offline/offlineSourceOptions.d.ts +2 -2
- package/build/offline/offlineSourceOptions.js.map +1 -1
- package/build/offline/offlineState.d.ts +1 -1
- package/build/offline/offlineState.js +1 -1
- package/build/offline/offlineState.js.map +1 -1
- package/build/playbackConfig.d.ts +1 -1
- package/build/playbackConfig.js.map +1 -1
- package/build/player.d.ts +13 -11
- package/build/player.d.ts.map +1 -1
- package/build/player.js +42 -11
- package/build/player.js.map +1 -1
- package/build/source.d.ts +2 -2
- package/build/source.js +1 -1
- package/build/source.js.map +1 -1
- package/build/styleConfig.d.ts +5 -5
- package/build/styleConfig.js +1 -1
- package/build/styleConfig.js.map +1 -1
- package/build/subtitleFormat.d.ts +5 -5
- package/build/subtitleFormat.js +5 -5
- package/build/subtitleFormat.js.map +1 -1
- package/build/subtitleTrack.d.ts +1 -1
- package/build/subtitleTrack.js.map +1 -1
- package/build/tweaksConfig.d.ts +15 -15
- package/build/tweaksConfig.js.map +1 -1
- package/ios/PlayerModule.swift +40 -0
- package/ios/RCTConvert+BitmovinPlayer.swift +41 -0
- package/package.json +1 -1
- package/plugin/build/withBitmovinConfig.js +8 -2
- package/plugin/src/withAppGradleDependencies.ts +24 -21
- package/plugin/src/withBitmovinAndroidConfig.ts +4 -1
- package/plugin/src/withBitmovinConfig.ts +12 -3
- package/plugin/src/withBitmovinIosConfig.ts +4 -1
- package/src/adaptationConfig.ts +1 -1
- package/src/advertising.ts +56 -1
- package/src/audioSession.ts +3 -3
- package/src/bitmovinCastManager.ts +3 -3
- package/src/bufferConfig.ts +2 -2
- package/src/components/PlayerView/events.ts +16 -16
- package/src/components/PlayerView/nativeEvents.ts +16 -16
- package/src/components/PlayerView/pictureInPictureConfig.ts +1 -1
- package/src/components/PlayerView/playerViewConfig.ts +2 -2
- package/src/decoder/decoderConfig.ts +2 -2
- package/src/drm/index.ts +2 -2
- package/src/drm/widevineConfig.ts +5 -5
- package/src/events.ts +10 -10
- package/src/media.ts +4 -0
- package/src/modules/PlayerModule.ts +18 -2
- package/src/offline/offlineContentConfig.ts +1 -1
- package/src/offline/offlineContentManager.ts +2 -2
- package/src/offline/offlineContentManagerListener.ts +13 -13
- package/src/offline/offlineContentOptions.ts +2 -2
- package/src/offline/offlineDownloadRequest.ts +1 -1
- package/src/offline/offlineSourceOptions.ts +2 -2
- package/src/offline/offlineState.ts +1 -1
- package/src/playbackConfig.ts +1 -1
- package/src/player.ts +47 -12
- package/src/source.ts +2 -2
- package/src/styleConfig.ts +5 -5
- package/src/subtitleFormat.ts +5 -5
- package/src/subtitleTrack.ts +1 -1
- package/src/tweaksConfig.ts +15 -15
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,28 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [1.3.0] - 2025-10-29
|
|
4
|
+
|
|
5
|
+
### Added
|
|
6
|
+
|
|
7
|
+
- `AdvertisingConfig.ima` namespace with type `ImaAdvertisingConfig`
|
|
8
|
+
- `ImaAdvertisingConfig.beforeInitialization` API to allow customization of IMA SDK behavior via `ImaSettings`
|
|
9
|
+
- `ImaSettings.ppid` property to allow setting Publisher Provided Identification (PPID) sent with ad requests.
|
|
10
|
+
- `ImaSettings.language` property to set the language for ad UI elements via IETF BCP 47 language tag.
|
|
11
|
+
- `ImaSettings.maxRedirects` property to set the maximum number of redirects the IMA SDK will follow when loading ads.
|
|
12
|
+
- `ImaSettings.enableBackgroundPlayback` property to allow ads to continue playing when the app goes into the background on iOS and tvOS.
|
|
13
|
+
- `ImaSettings.playerVersion` property to set a custom player version string sent with ad requests.
|
|
14
|
+
- `ImaSettings.sessionId` property to set a custom session ID sent with ad requests.
|
|
15
|
+
- `ImaSettings.sameAppKeyEnabled` property to enable Same App Key feature for ad requests on iOS.
|
|
16
|
+
- Android: `AudioQuality.channelCount`, providing the channel count associated with `AudioQuality`.
|
|
17
|
+
|
|
18
|
+
### Changed
|
|
19
|
+
|
|
20
|
+
- Update Bitmovin's native Android SDK version to `3.131.0+jason`
|
|
21
|
+
|
|
22
|
+
### Fixed
|
|
23
|
+
|
|
24
|
+
- Android: `AudioTrack.qualities` API returning empty list when no audio qualities are available
|
|
25
|
+
|
|
3
26
|
## [1.2.0] - 2025-10-17
|
|
4
27
|
|
|
5
28
|
### Changed
|
package/android/build.gradle
CHANGED
|
@@ -108,6 +108,6 @@ dependencies {
|
|
|
108
108
|
|
|
109
109
|
// Bitmovin
|
|
110
110
|
implementation 'com.google.android.gms:play-services-ads-identifier:18.0.1'
|
|
111
|
-
implementation 'com.bitmovin.player:player:3.
|
|
112
|
-
implementation 'com.bitmovin.player:player-media-session:3.
|
|
111
|
+
implementation 'com.bitmovin.player:player:3.131.0+jason'
|
|
112
|
+
implementation 'com.bitmovin.player:player-media-session:3.131.0+jason'
|
|
113
113
|
}
|
|
@@ -1,13 +1,18 @@
|
|
|
1
1
|
package com.bitmovin.player.reactnative
|
|
2
2
|
|
|
3
|
+
import androidx.core.os.bundleOf
|
|
3
4
|
import com.bitmovin.analytics.api.DefaultMetadata
|
|
4
5
|
import com.bitmovin.player.api.Player
|
|
5
6
|
import com.bitmovin.player.api.PlayerConfig
|
|
7
|
+
import com.bitmovin.player.api.advertising.AdvertisingConfig
|
|
8
|
+
import com.bitmovin.player.api.advertising.BeforeInitializationCallback
|
|
6
9
|
import com.bitmovin.player.api.analytics.create
|
|
10
|
+
import com.bitmovin.player.reactnative.converter.applyOnImaSettings
|
|
7
11
|
import com.bitmovin.player.reactnative.converter.toAdItem
|
|
8
12
|
import com.bitmovin.player.reactnative.converter.toAnalyticsConfig
|
|
9
13
|
import com.bitmovin.player.reactnative.converter.toAnalyticsDefaultMetadata
|
|
10
14
|
import com.bitmovin.player.reactnative.converter.toJson
|
|
15
|
+
import com.bitmovin.player.reactnative.converter.toMap
|
|
11
16
|
import com.bitmovin.player.reactnative.converter.toMediaControlConfig
|
|
12
17
|
import com.bitmovin.player.reactnative.converter.toPlayerConfig
|
|
13
18
|
import com.bitmovin.player.reactnative.extensions.getMap
|
|
@@ -18,6 +23,7 @@ import expo.modules.kotlin.modules.ModuleDefinition
|
|
|
18
23
|
class PlayerModule : Module() {
|
|
19
24
|
|
|
20
25
|
val mediaSessionPlaybackManager by lazy { MediaSessionPlaybackManager(appContext) }
|
|
26
|
+
private val imaSettingsWaiter = ResultWaiter<Map<String, Any?>>()
|
|
21
27
|
|
|
22
28
|
override fun definition() = ModuleDefinition {
|
|
23
29
|
Name("PlayerModule")
|
|
@@ -35,9 +41,12 @@ class PlayerModule : Module() {
|
|
|
35
41
|
// Log but don't crash on cleanup
|
|
36
42
|
}
|
|
37
43
|
}
|
|
44
|
+
imaSettingsWaiter.clear()
|
|
38
45
|
PlayerRegistry.clear()
|
|
39
46
|
}
|
|
40
47
|
|
|
48
|
+
Events("onImaBeforeInitialization")
|
|
49
|
+
|
|
41
50
|
AsyncFunction("play") { nativeId: NativeId ->
|
|
42
51
|
val player = PlayerRegistry.getPlayer(nativeId)
|
|
43
52
|
player?.play()
|
|
@@ -266,6 +275,10 @@ class PlayerModule : Module() {
|
|
|
266
275
|
}
|
|
267
276
|
}.runOnQueue(Queues.MAIN)
|
|
268
277
|
|
|
278
|
+
AsyncFunction("setPreparedImaSettings") { id: Int, settings: Map<String, Any?>? ->
|
|
279
|
+
imaSettingsWaiter.complete(id, settings ?: emptyMap())
|
|
280
|
+
}
|
|
281
|
+
|
|
269
282
|
AsyncFunction("initializeWithConfig") { nativeId: NativeId, config: Map<String, Any>?,
|
|
270
283
|
networkNativeId: NativeId?, decoderNativeId: NativeId?, ->
|
|
271
284
|
initializePlayer(nativeId, config, networkNativeId, decoderNativeId, null)
|
|
@@ -303,6 +316,9 @@ class PlayerModule : Module() {
|
|
|
303
316
|
}
|
|
304
317
|
|
|
305
318
|
val playerConfig = config?.toPlayerConfig() ?: PlayerConfig()
|
|
319
|
+
@Suppress("UNCHECKED_CAST")
|
|
320
|
+
val configJson = config as? Map<String, Any?>
|
|
321
|
+
setupImaBeforeInitialization(nativeId, configJson, playerConfig)
|
|
306
322
|
val enableMediaSession = config?.getMap("mediaControlConfig")
|
|
307
323
|
?.toMediaControlConfig()?.isEnabled ?: true
|
|
308
324
|
|
|
@@ -342,6 +358,37 @@ class PlayerModule : Module() {
|
|
|
342
358
|
}
|
|
343
359
|
}
|
|
344
360
|
|
|
361
|
+
private fun setupImaBeforeInitialization(
|
|
362
|
+
nativeId: NativeId,
|
|
363
|
+
configJson: Map<String, Any?>?,
|
|
364
|
+
playerConfig: PlayerConfig,
|
|
365
|
+
) {
|
|
366
|
+
val advertisingConfigJson = configJson?.getMap("advertisingConfig") ?: return
|
|
367
|
+
val imaJson = advertisingConfigJson.getMap("ima") ?: return
|
|
368
|
+
if (!imaJson.containsKey("beforeInitialization")) {
|
|
369
|
+
return
|
|
370
|
+
}
|
|
371
|
+
val advertisingConfig = playerConfig.advertisingConfig ?: AdvertisingConfig()
|
|
372
|
+
val callback = createBeforeInitializationCallback(nativeId)
|
|
373
|
+
val updatedIma = advertisingConfig.ima.copy(beforeInitialization = callback)
|
|
374
|
+
playerConfig.advertisingConfig = advertisingConfig.copy(ima = updatedIma)
|
|
375
|
+
}
|
|
376
|
+
|
|
377
|
+
private fun createBeforeInitializationCallback(nativeId: NativeId): BeforeInitializationCallback =
|
|
378
|
+
BeforeInitializationCallback { settings ->
|
|
379
|
+
val (id, wait) = imaSettingsWaiter.make(250)
|
|
380
|
+
val payload = settings.toMap()
|
|
381
|
+
sendEvent(
|
|
382
|
+
"onImaBeforeInitialization",
|
|
383
|
+
bundleOf(
|
|
384
|
+
"nativeId" to nativeId,
|
|
385
|
+
"id" to id,
|
|
386
|
+
"settings" to payload,
|
|
387
|
+
),
|
|
388
|
+
)
|
|
389
|
+
wait()?.applyOnImaSettings(settings)
|
|
390
|
+
}
|
|
391
|
+
|
|
345
392
|
// CRITICAL: This method must remain available for cross-module access
|
|
346
393
|
fun getPlayerOrNull(nativeId: NativeId): Player? = PlayerRegistry.getPlayer(nativeId)
|
|
347
394
|
}
|
|
@@ -39,6 +39,7 @@ import com.bitmovin.player.api.media.AdaptationConfig
|
|
|
39
39
|
import com.bitmovin.player.api.media.MediaTrackRole
|
|
40
40
|
import com.bitmovin.player.api.media.MediaType
|
|
41
41
|
import com.bitmovin.player.api.media.audio.AudioTrack
|
|
42
|
+
import com.bitmovin.player.api.media.audio.quality.AudioQuality
|
|
42
43
|
import com.bitmovin.player.api.media.subtitle.SubtitleTrack
|
|
43
44
|
import com.bitmovin.player.api.media.thumbnail.Thumbnail
|
|
44
45
|
import com.bitmovin.player.api.media.thumbnail.ThumbnailTrack
|
|
@@ -81,6 +82,7 @@ import com.bitmovin.player.reactnative.extensions.withInt
|
|
|
81
82
|
import com.bitmovin.player.reactnative.extensions.withMap
|
|
82
83
|
import com.bitmovin.player.reactnative.extensions.withString
|
|
83
84
|
import com.bitmovin.player.reactnative.extensions.withStringArray
|
|
85
|
+
import com.google.ads.interactivemedia.v3.api.ImaSdkSettings
|
|
84
86
|
import java.util.UUID
|
|
85
87
|
|
|
86
88
|
/**
|
|
@@ -187,9 +189,25 @@ fun Map<String, Any?>.toTweaksConfig(): TweaksConfig = TweaksConfig().apply {
|
|
|
187
189
|
}
|
|
188
190
|
|
|
189
191
|
fun Map<String, Any?>.toAdvertisingConfig(): AdvertisingConfig? {
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
192
|
+
val schedule = getArray("schedule")?.toMapList()?.mapNotNull { it?.toAdItem() } ?: emptyList()
|
|
193
|
+
return AdvertisingConfig(schedule)
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
fun ImaSdkSettings.toMap(): Map<String, Any?> =
|
|
197
|
+
mutableMapOf<String, Any?>().apply {
|
|
198
|
+
put("ppid", ppid)
|
|
199
|
+
put("language", language)
|
|
200
|
+
put("maxRedirects", maxRedirects)
|
|
201
|
+
put("playerVersion", playerVersion)
|
|
202
|
+
put("sessionId", sessionId)
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
fun Map<String, Any?>.applyOnImaSettings(settings: ImaSdkSettings) {
|
|
206
|
+
withString("ppid") { settings.ppid = it }
|
|
207
|
+
withString("language") { settings.language = it }
|
|
208
|
+
withInt("maxRedirects") { settings.maxRedirects = it }
|
|
209
|
+
withString("playerVersion") { settings.playerVersion = it }
|
|
210
|
+
withString("sessionId") { settings.sessionId = it }
|
|
193
211
|
}
|
|
194
212
|
|
|
195
213
|
fun Map<String, Any?>.toAdItem(): AdItem? {
|
|
@@ -487,6 +505,7 @@ fun AudioTrack.toJson(): Map<String, Any> = mapOf(
|
|
|
487
505
|
"identifier" to id,
|
|
488
506
|
"language" to language,
|
|
489
507
|
"roles" to roles.map { it.toJson() },
|
|
508
|
+
"qualities" to qualities?.map { it.toJson() },
|
|
490
509
|
).filterNotNullValues()
|
|
491
510
|
|
|
492
511
|
fun Map<String, Any?>.toSubtitleTrack(): SubtitleTrack? {
|
|
@@ -630,6 +649,16 @@ fun VideoQuality.toJson(): Map<String, Any> = mapOf<String, Any?>(
|
|
|
630
649
|
"width" to width,
|
|
631
650
|
).filterNotNullValues()
|
|
632
651
|
|
|
652
|
+
fun AudioQuality.toJson(): Map<String, Any> = mapOf<String, Any?>(
|
|
653
|
+
"id" to id,
|
|
654
|
+
"label" to label,
|
|
655
|
+
"bitrate" to bitrate,
|
|
656
|
+
"averageBitrate" to averageBitrate,
|
|
657
|
+
"peakBitrate" to peakBitrate,
|
|
658
|
+
"codec" to codec,
|
|
659
|
+
"channelCount" to channelCount,
|
|
660
|
+
).filterNotNullValues()
|
|
661
|
+
|
|
633
662
|
fun OfflineOptionEntry.toJson(): Map<String, Any> = mapOf(
|
|
634
663
|
"id" to id,
|
|
635
664
|
"language" to language,
|
|
@@ -10,7 +10,7 @@ export interface AdaptationConfig {
|
|
|
10
10
|
/**
|
|
11
11
|
* The initial bandwidth estimate in bits per second the player uses to select the optimal media tracks before actual bandwidth data is available. Overriding this value should only be done in specific cases and will most of the time not result in better selection logic.
|
|
12
12
|
*
|
|
13
|
-
* @
|
|
13
|
+
* @platform Android
|
|
14
14
|
* @see https://cdn.bitmovin.com/player/android/3/docs/player-core/com.bitmovin.player.api.media/-adaptation-config/initial-bandwidth-estimate-override.html
|
|
15
15
|
*/
|
|
16
16
|
initialBandwidthEstimateOverride?: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adaptationConfig.js","sourceRoot":"","sources":["../src/adaptationConfig.ts"],"names":[],"mappings":"","sourcesContent":["/**\n * Configures the adaptation logic.\n */\nexport interface AdaptationConfig {\n /**\n * The upper bitrate boundary in bits per second for approximate network bandwidth consumption of the played source.\n * Can be set to `undefined` for no limitation.\n */\n maxSelectableBitrate?: number;\n\n /**\n * The initial bandwidth estimate in bits per second the player uses to select the optimal media tracks before actual bandwidth data is available. Overriding this value should only be done in specific cases and will most of the time not result in better selection logic.\n *\n * @
|
|
1
|
+
{"version":3,"file":"adaptationConfig.js","sourceRoot":"","sources":["../src/adaptationConfig.ts"],"names":[],"mappings":"","sourcesContent":["/**\n * Configures the adaptation logic.\n */\nexport interface AdaptationConfig {\n /**\n * The upper bitrate boundary in bits per second for approximate network bandwidth consumption of the played source.\n * Can be set to `undefined` for no limitation.\n */\n maxSelectableBitrate?: number;\n\n /**\n * The initial bandwidth estimate in bits per second the player uses to select the optimal media tracks before actual bandwidth data is available. Overriding this value should only be done in specific cases and will most of the time not result in better selection logic.\n *\n * @platform Android\n * @see https://cdn.bitmovin.com/player/android/3/docs/player-core/com.bitmovin.player.api.media/-adaptation-config/initial-bandwidth-estimate-override.html\n */\n initialBandwidthEstimateOverride?: number;\n}\n"]}
|
package/build/advertising.d.ts
CHANGED
|
@@ -79,7 +79,7 @@ export interface AdItem {
|
|
|
79
79
|
*
|
|
80
80
|
* Default value is 0.0
|
|
81
81
|
*
|
|
82
|
-
* @
|
|
82
|
+
* @platform Android
|
|
83
83
|
*/
|
|
84
84
|
preloadOffset?: number;
|
|
85
85
|
}
|
|
@@ -91,6 +91,59 @@ export interface AdvertisingConfig {
|
|
|
91
91
|
* The ad items that are scheduled when a new playback session is started via `Player.load()`.
|
|
92
92
|
*/
|
|
93
93
|
schedule: AdItem[];
|
|
94
|
+
/**
|
|
95
|
+
* Configuration to customize Google IMA SDK integration.
|
|
96
|
+
*/
|
|
97
|
+
ima?: ImaAdvertisingConfig;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Configuration options applied to Google IMA SDK before initialization.
|
|
101
|
+
*/
|
|
102
|
+
export interface ImaAdvertisingConfig {
|
|
103
|
+
/**
|
|
104
|
+
* Invoked before the IMA SDK initializes, allowing mutation of the SDK settings.
|
|
105
|
+
*
|
|
106
|
+
* @param settings - Current IMA settings received from the native SDK.
|
|
107
|
+
* @returns The settings object to apply. If omitted, the (mutated) `settings` argument is used.
|
|
108
|
+
*/
|
|
109
|
+
beforeInitialization?: (settings: ImaSettings) => ImaSettings | void;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Represents Google IMA SDK wide settings.
|
|
113
|
+
*/
|
|
114
|
+
export interface ImaSettings {
|
|
115
|
+
/**
|
|
116
|
+
* Publisher Provided Identification (PPID) sent with ad requests.
|
|
117
|
+
*/
|
|
118
|
+
ppid?: string;
|
|
119
|
+
/**
|
|
120
|
+
* Language identifier in IETF BCP 47 format.
|
|
121
|
+
*/
|
|
122
|
+
language: string;
|
|
123
|
+
/**
|
|
124
|
+
* Maximum allowed wrapper redirects. Default is `4`.
|
|
125
|
+
*/
|
|
126
|
+
maxRedirects: number;
|
|
127
|
+
/**
|
|
128
|
+
* Enables background audio playback. Defaults to `false`.
|
|
129
|
+
*
|
|
130
|
+
* @platform iOS, tvOS
|
|
131
|
+
*/
|
|
132
|
+
enableBackgroundPlayback?: boolean;
|
|
133
|
+
/**
|
|
134
|
+
* Player version identifier reported to IMA.
|
|
135
|
+
*/
|
|
136
|
+
playerVersion?: string;
|
|
137
|
+
/**
|
|
138
|
+
* Session identifier used for frequency capping.
|
|
139
|
+
*/
|
|
140
|
+
sessionId?: string;
|
|
141
|
+
/**
|
|
142
|
+
* Controls Same App Key usage.
|
|
143
|
+
*
|
|
144
|
+
* @platform iOS
|
|
145
|
+
*/
|
|
146
|
+
sameAppKeyEnabled?: boolean;
|
|
94
147
|
}
|
|
95
148
|
/**
|
|
96
149
|
* Contains the base configuration options for an ad.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"advertising.d.ts","sourceRoot":"","sources":["../src/advertising.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,oBAAY,UAAU;IACpB;;OAEG;IACH,KAAK,UAAU;IACf;;OAEG;IACH,SAAS,cAAc;IACvB;;OAEG;IACH,KAAK,UAAU;CAChB;AAED;;GAEG;AACH,oBAAY,YAAY;IACtB;;OAEG;IACH,GAAG,QAAQ;IACX;;OAEG;IACH,OAAO,YAAY;IACnB;;OAEG;IACH,WAAW,gBAAgB;CAC5B;AAED;;;GAGG;AACH,MAAM,WAAW,QAAQ;IACvB;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IACZ;;OAEG;IACH,IAAI,EAAE,YAAY,CAAC;CACpB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,MAAM;IACrB;;;;;;;;;OASG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;;OAMG;IACH,OAAO,EAAE,QAAQ,EAAE,CAAC;IAEpB;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,QAAQ,EAAE,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"advertising.d.ts","sourceRoot":"","sources":["../src/advertising.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,oBAAY,UAAU;IACpB;;OAEG;IACH,KAAK,UAAU;IACf;;OAEG;IACH,SAAS,cAAc;IACvB;;OAEG;IACH,KAAK,UAAU;CAChB;AAED;;GAEG;AACH,oBAAY,YAAY;IACtB;;OAEG;IACH,GAAG,QAAQ;IACX;;OAEG;IACH,OAAO,YAAY;IACnB;;OAEG;IACH,WAAW,gBAAgB;CAC5B;AAED;;;GAGG;AACH,MAAM,WAAW,QAAQ;IACvB;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IACZ;;OAEG;IACH,IAAI,EAAE,YAAY,CAAC;CACpB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,MAAM;IACrB;;;;;;;;;OASG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;;OAMG;IACH,OAAO,EAAE,QAAQ,EAAE,CAAC;IAEpB;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB;;OAEG;IACH,GAAG,CAAC,EAAE,oBAAoB,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;;;OAKG;IACH,oBAAoB,CAAC,EAAE,CAAC,QAAQ,EAAE,WAAW,KAAK,WAAW,GAAG,IAAI,CAAC;CACtE;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB;;OAEG;IACH,sBAAsB,EAAE,MAAM,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,EAAE;IACjB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ;;OAEG;IACH,QAAQ,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB;;OAEG;IACH,GAAG,EAAE,EAAE,EAAE,CAAC;IACV;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IACX;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;CACtB"}
|
package/build/advertising.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"advertising.js","sourceRoot":"","sources":["../src/advertising.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAN,IAAY,UAaX;AAbD,WAAY,UAAU;IACpB;;OAEG;IACH,6BAAe,CAAA;IACf;;OAEG;IACH,qCAAuB,CAAA;IACvB;;OAEG;IACH,6BAAe,CAAA;AACjB,CAAC,EAbW,UAAU,KAAV,UAAU,QAarB;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,YAaX;AAbD,WAAY,YAAY;IACtB;;OAEG;IACH,2BAAW,CAAA;IACX;;OAEG;IACH,mCAAmB,CAAA;IACnB;;OAEG;IACH,2CAA2B,CAAA;AAC7B,CAAC,EAbW,YAAY,KAAZ,YAAY,QAavB","sourcesContent":["/**\n * Quartiles that can be reached during an ad playback.\n */\nexport enum AdQuartile {\n /**\n * Fist ad quartile.\n */\n FIRST = 'first',\n /**\n * Mid ad quartile.\n */\n MID_POINT = 'mid_point',\n /**\n * Third ad quartile.\n */\n THIRD = 'third',\n}\n\n/**\n * The possible types an `AdSource` can be.\n */\nexport enum AdSourceType {\n /**\n * Google Interactive Media Ads.\n */\n IMA = 'ima',\n /**\n * Unknown ad source type.\n */\n UNKNOWN = 'unknown',\n /**\n * Progressive ad type.\n */\n PROGRESSIVE = 'progressive',\n}\n\n/**\n * Represents an ad source which can be assigned to an `AdItem`. An `AdItem` can have multiple `AdSource`s\n * as waterfalling option.\n */\nexport interface AdSource {\n /**\n * The ad tag / url to the ad manifest.\n */\n tag: string;\n /**\n * The `AdSourceType` of this `AdSource`.\n */\n type: AdSourceType;\n}\n\n/**\n * Represents an ad break which can be scheduled for playback.\n *\n * One single `AdItem` can have multiple `AdSource`s where all but the first act as fallback ad sources\n * if the first one fails to load. The start and end of an ad break are signaled via `AdBreakStartedEvent`\n * and `AdBreakFinishedEvent`.\n */\nexport interface AdItem {\n /**\n * The playback position at which the ad break is scheduled to start. Default value is \"pre\".\n *\n * Possible values are:\n * • \"pre\": pre-roll ad (for VoD and Live streaming)\n * • \"post\": post-roll ad (for VoD streaming only)\n * • fractional seconds: \"10\", \"12.5\" (mid-roll ad, for VoD and Live streaming)\n * • percentage of the entire video duration: \"25%\", \"50%\" (mid-roll ad, for VoD streaming only)\n * • timecode hh:mm:ss.mmm: \"00:10:30.000\", \"01:00:00.000\" (mid-roll ad, for VoD streaming only)\n */\n position?: string;\n /**\n * The `AdSource`s that make up this `AdItem`. The first ad source in this array is used as the main ad.\n * Subsequent ad sources act as a fallback, meaning that if the main ad source does not provide a\n * valid response, the subsequent ad sources will be utilized one after another.\n *\n * The fallback ad sources need to have the same `AdSourceType` as the main ad source.\n */\n sources: AdSource[];\n\n /**\n * The amount of seconds the ad manifest is loaded in advance\n * compared to when the ad break is scheduled for playback.\n *\n * Default value is 0.0\n *\n * @
|
|
1
|
+
{"version":3,"file":"advertising.js","sourceRoot":"","sources":["../src/advertising.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAN,IAAY,UAaX;AAbD,WAAY,UAAU;IACpB;;OAEG;IACH,6BAAe,CAAA;IACf;;OAEG;IACH,qCAAuB,CAAA;IACvB;;OAEG;IACH,6BAAe,CAAA;AACjB,CAAC,EAbW,UAAU,KAAV,UAAU,QAarB;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,YAaX;AAbD,WAAY,YAAY;IACtB;;OAEG;IACH,2BAAW,CAAA;IACX;;OAEG;IACH,mCAAmB,CAAA;IACnB;;OAEG;IACH,2CAA2B,CAAA;AAC7B,CAAC,EAbW,YAAY,KAAZ,YAAY,QAavB","sourcesContent":["/**\n * Quartiles that can be reached during an ad playback.\n */\nexport enum AdQuartile {\n /**\n * Fist ad quartile.\n */\n FIRST = 'first',\n /**\n * Mid ad quartile.\n */\n MID_POINT = 'mid_point',\n /**\n * Third ad quartile.\n */\n THIRD = 'third',\n}\n\n/**\n * The possible types an `AdSource` can be.\n */\nexport enum AdSourceType {\n /**\n * Google Interactive Media Ads.\n */\n IMA = 'ima',\n /**\n * Unknown ad source type.\n */\n UNKNOWN = 'unknown',\n /**\n * Progressive ad type.\n */\n PROGRESSIVE = 'progressive',\n}\n\n/**\n * Represents an ad source which can be assigned to an `AdItem`. An `AdItem` can have multiple `AdSource`s\n * as waterfalling option.\n */\nexport interface AdSource {\n /**\n * The ad tag / url to the ad manifest.\n */\n tag: string;\n /**\n * The `AdSourceType` of this `AdSource`.\n */\n type: AdSourceType;\n}\n\n/**\n * Represents an ad break which can be scheduled for playback.\n *\n * One single `AdItem` can have multiple `AdSource`s where all but the first act as fallback ad sources\n * if the first one fails to load. The start and end of an ad break are signaled via `AdBreakStartedEvent`\n * and `AdBreakFinishedEvent`.\n */\nexport interface AdItem {\n /**\n * The playback position at which the ad break is scheduled to start. Default value is \"pre\".\n *\n * Possible values are:\n * • \"pre\": pre-roll ad (for VoD and Live streaming)\n * • \"post\": post-roll ad (for VoD streaming only)\n * • fractional seconds: \"10\", \"12.5\" (mid-roll ad, for VoD and Live streaming)\n * • percentage of the entire video duration: \"25%\", \"50%\" (mid-roll ad, for VoD streaming only)\n * • timecode hh:mm:ss.mmm: \"00:10:30.000\", \"01:00:00.000\" (mid-roll ad, for VoD streaming only)\n */\n position?: string;\n /**\n * The `AdSource`s that make up this `AdItem`. The first ad source in this array is used as the main ad.\n * Subsequent ad sources act as a fallback, meaning that if the main ad source does not provide a\n * valid response, the subsequent ad sources will be utilized one after another.\n *\n * The fallback ad sources need to have the same `AdSourceType` as the main ad source.\n */\n sources: AdSource[];\n\n /**\n * The amount of seconds the ad manifest is loaded in advance\n * compared to when the ad break is scheduled for playback.\n *\n * Default value is 0.0\n *\n * @platform Android\n */\n preloadOffset?: number;\n}\n\n/**\n * Contains configuration values regarding the ads which should be played back by the player.\n */\nexport interface AdvertisingConfig {\n /**\n * The ad items that are scheduled when a new playback session is started via `Player.load()`.\n */\n schedule: AdItem[];\n /**\n * Configuration to customize Google IMA SDK integration.\n */\n ima?: ImaAdvertisingConfig;\n}\n\n/**\n * Configuration options applied to Google IMA SDK before initialization.\n */\nexport interface ImaAdvertisingConfig {\n /**\n * Invoked before the IMA SDK initializes, allowing mutation of the SDK settings.\n *\n * @param settings - Current IMA settings received from the native SDK.\n * @returns The settings object to apply. If omitted, the (mutated) `settings` argument is used.\n */\n beforeInitialization?: (settings: ImaSettings) => ImaSettings | void;\n}\n\n/**\n * Represents Google IMA SDK wide settings.\n */\nexport interface ImaSettings {\n /**\n * Publisher Provided Identification (PPID) sent with ad requests.\n */\n ppid?: string;\n /**\n * Language identifier in IETF BCP 47 format.\n */\n language: string;\n /**\n * Maximum allowed wrapper redirects. Default is `4`.\n */\n maxRedirects: number;\n /**\n * Enables background audio playback. Defaults to `false`.\n *\n * @platform iOS, tvOS\n */\n enableBackgroundPlayback?: boolean;\n /**\n * Player version identifier reported to IMA.\n */\n playerVersion?: string;\n /**\n * Session identifier used for frequency capping.\n */\n sessionId?: string;\n /**\n * Controls Same App Key usage.\n *\n * @platform iOS\n */\n sameAppKeyEnabled?: boolean;\n}\n\n/**\n * Contains the base configuration options for an ad.\n */\nexport interface AdConfig {\n /**\n * Specifies how many seconds of the main video content should be replaced by ad break(s).\n */\n replaceContentDuration: number;\n}\n\n/**\n * Holds various additional ad data.\n */\nexport interface AdData {\n /**\n * The average bitrate of the progressive media file as defined in the VAST response.\n */\n bitrate?: number;\n /**\n * The maximum bitrate of the streaming media file as defined in the VAST response.\n */\n maxBitrate?: number;\n /**\n * The MIME type of the media file or creative as defined in the VAST response.\n */\n mimeType?: string;\n /**\n * The minimum bitrate of the streaming media file as defined in the VAST response.\n */\n minBitrate?: number;\n}\n\n/**\n * Defines basic properties available for every ad type.\n */\nexport interface Ad {\n /**\n * The url the user should be redirected to when clicking the ad.\n */\n clickThroughUrl?: string;\n /**\n * Holds various additional `AdData`.\n */\n data?: AdData;\n /**\n * The height of the ad.\n */\n height: number;\n /**\n * Identifier for the ad. This might be autogenerated.\n */\n id?: string;\n /**\n * Determines whether an ad is linear, i.e. playback of main content needs to be paused for the ad.\n */\n isLinear: boolean;\n /**\n * The corresponding media file url for the ad.\n */\n mediaFileUrl?: string;\n /**\n * The width of the ad.\n */\n width: number;\n}\n\n/**\n * Contains information about an ad break.\n */\nexport interface AdBreak {\n /**\n * The ads scheduled for this `AdBreak`.\n */\n ads: Ad[];\n /**\n * The id of the corresponding `AdBreakConfig`. This will be auto-generated.\n */\n id: string;\n /**\n * The time in seconds in the media timeline the `AdBreak` is scheduled for.\n */\n scheduleTime: number;\n}\n"]}
|
package/build/audioSession.d.ts
CHANGED
|
@@ -11,21 +11,21 @@
|
|
|
11
11
|
* - `record`: The category for recording audio while also silencing playback audio.
|
|
12
12
|
* - `soloAmbient`: The default audio session category.
|
|
13
13
|
*
|
|
14
|
-
* @
|
|
14
|
+
* @platform iOS
|
|
15
15
|
* @see https://developer.apple.com/documentation/avfaudio/avaudiosession/category
|
|
16
16
|
*/
|
|
17
17
|
export type AudioSessionCategory = 'ambient' | 'multiRoute' | 'playAndRecord' | 'playback' | 'record' | 'soloAmbient';
|
|
18
18
|
/**
|
|
19
19
|
* An object that communicates to the system how you intend to use audio in your app.
|
|
20
20
|
*
|
|
21
|
-
* @
|
|
21
|
+
* @platform iOS
|
|
22
22
|
* @see https://developer.apple.com/documentation/avfaudio/avaudiosession
|
|
23
23
|
*/
|
|
24
24
|
export declare const AudioSession: {
|
|
25
25
|
/**
|
|
26
26
|
* Sets the audio session's category.
|
|
27
27
|
*
|
|
28
|
-
* @
|
|
28
|
+
* @platform iOS
|
|
29
29
|
* @see https://developer.apple.com/documentation/avfaudio/avaudiosession/1616583-setcategory
|
|
30
30
|
*/
|
|
31
31
|
setCategory: (category: AudioSessionCategory) => Promise<void>;
|
package/build/audioSession.js
CHANGED
|
@@ -2,14 +2,14 @@ import AudioSessionModule from './modules/AudioSessionModule';
|
|
|
2
2
|
/**
|
|
3
3
|
* An object that communicates to the system how you intend to use audio in your app.
|
|
4
4
|
*
|
|
5
|
-
* @
|
|
5
|
+
* @platform iOS
|
|
6
6
|
* @see https://developer.apple.com/documentation/avfaudio/avaudiosession
|
|
7
7
|
*/
|
|
8
8
|
export const AudioSession = {
|
|
9
9
|
/**
|
|
10
10
|
* Sets the audio session's category.
|
|
11
11
|
*
|
|
12
|
-
* @
|
|
12
|
+
* @platform iOS
|
|
13
13
|
* @see https://developer.apple.com/documentation/avfaudio/avaudiosession/1616583-setcategory
|
|
14
14
|
*/
|
|
15
15
|
setCategory: async (category) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audioSession.js","sourceRoot":"","sources":["../src/audioSession.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,MAAM,8BAA8B,CAAC;AA0B9D;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B;;;;;OAKG;IACH,WAAW,EAAE,KAAK,EAAE,QAA8B,EAAiB,EAAE;QACnE,IAAI,kBAAkB,EAAE,CAAC;YACvB,MAAM,kBAAkB,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;CACF,CAAC","sourcesContent":["import AudioSessionModule from './modules/AudioSessionModule';\n\n/**\n * An audio session category defines a set of audio behaviors.\n * Choose a category that most accurately describes the audio behavior you require.\n *\n * Note the `playback` category is required in order to properly enable picture in picture support.\n *\n * - `ambient`: The category for an app in which sound playback is nonprimary — that is, your app also works with the sound turned off.\n * - `multiRoute`: The category for routing distinct streams of audio data to different output devices at the same time.\n * - `playAndRecord`: The category for recording (input) and playback (output) of audio, such as for a Voice over Internet Protocol (VoIP) app.\n * - `playback`: The category for playing recorded music or other sounds that are central to the successful use of your app.\n * - `record`: The category for recording audio while also silencing playback audio.\n * - `soloAmbient`: The default audio session category.\n *\n * @
|
|
1
|
+
{"version":3,"file":"audioSession.js","sourceRoot":"","sources":["../src/audioSession.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,MAAM,8BAA8B,CAAC;AA0B9D;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B;;;;;OAKG;IACH,WAAW,EAAE,KAAK,EAAE,QAA8B,EAAiB,EAAE;QACnE,IAAI,kBAAkB,EAAE,CAAC;YACvB,MAAM,kBAAkB,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;CACF,CAAC","sourcesContent":["import AudioSessionModule from './modules/AudioSessionModule';\n\n/**\n * An audio session category defines a set of audio behaviors.\n * Choose a category that most accurately describes the audio behavior you require.\n *\n * Note the `playback` category is required in order to properly enable picture in picture support.\n *\n * - `ambient`: The category for an app in which sound playback is nonprimary — that is, your app also works with the sound turned off.\n * - `multiRoute`: The category for routing distinct streams of audio data to different output devices at the same time.\n * - `playAndRecord`: The category for recording (input) and playback (output) of audio, such as for a Voice over Internet Protocol (VoIP) app.\n * - `playback`: The category for playing recorded music or other sounds that are central to the successful use of your app.\n * - `record`: The category for recording audio while also silencing playback audio.\n * - `soloAmbient`: The default audio session category.\n *\n * @platform iOS\n * @see https://developer.apple.com/documentation/avfaudio/avaudiosession/category\n */\nexport type AudioSessionCategory =\n | 'ambient'\n | 'multiRoute'\n | 'playAndRecord'\n | 'playback'\n | 'record'\n | 'soloAmbient';\n\n/**\n * An object that communicates to the system how you intend to use audio in your app.\n *\n * @platform iOS\n * @see https://developer.apple.com/documentation/avfaudio/avaudiosession\n */\nexport const AudioSession = {\n /**\n * Sets the audio session's category.\n *\n * @platform iOS\n * @see https://developer.apple.com/documentation/avfaudio/avaudiosession/1616583-setcategory\n */\n setCategory: async (category: AudioSessionCategory): Promise<void> => {\n if (AudioSessionModule) {\n await AudioSessionModule.setCategory(category);\n }\n },\n};\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* The options to be used for initializing `BitmovinCastManager`
|
|
3
|
-
* @
|
|
3
|
+
* @platform Android, iOS
|
|
4
4
|
*/
|
|
5
5
|
export interface BitmovinCastManagerOptions {
|
|
6
6
|
/**
|
|
@@ -19,7 +19,7 @@ export interface BitmovinCastManagerOptions {
|
|
|
19
19
|
* The `BitmovinCastManager` needs to be initialized by calling `BitmovinCastManager.initialize`
|
|
20
20
|
* before `Player` creation to enable casting features.
|
|
21
21
|
*
|
|
22
|
-
* @
|
|
22
|
+
* @platform Android, iOS
|
|
23
23
|
*/
|
|
24
24
|
export declare const BitmovinCastManager: {
|
|
25
25
|
/**
|
|
@@ -43,7 +43,7 @@ export declare const BitmovinCastManager: {
|
|
|
43
43
|
* Make sure to call this method on every Android Activity switch.
|
|
44
44
|
*
|
|
45
45
|
* @returns A promise that resolves when the context was updated successfully
|
|
46
|
-
* @
|
|
46
|
+
* @platform Android
|
|
47
47
|
*/
|
|
48
48
|
updateContext: () => Promise<void>;
|
|
49
49
|
/**
|
|
@@ -5,7 +5,7 @@ import BitmovinCastManagerModule from './modules/BitmovinCastManagerModule';
|
|
|
5
5
|
* The `BitmovinCastManager` needs to be initialized by calling `BitmovinCastManager.initialize`
|
|
6
6
|
* before `Player` creation to enable casting features.
|
|
7
7
|
*
|
|
8
|
-
* @
|
|
8
|
+
* @platform Android, iOS
|
|
9
9
|
*/
|
|
10
10
|
export const BitmovinCastManager = {
|
|
11
11
|
/**
|
|
@@ -39,7 +39,7 @@ export const BitmovinCastManager = {
|
|
|
39
39
|
* Make sure to call this method on every Android Activity switch.
|
|
40
40
|
*
|
|
41
41
|
* @returns A promise that resolves when the context was updated successfully
|
|
42
|
-
* @
|
|
42
|
+
* @platform Android
|
|
43
43
|
*/
|
|
44
44
|
updateContext: async () => {
|
|
45
45
|
if (Platform.OS === 'ios') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bitmovinCastManager.js","sourceRoot":"","sources":["../src/bitmovinCastManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,yBAAyB,MAAM,qCAAqC,CAAC;AAmB5E;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC;;;OAGG;IACH,aAAa,EAAE,KAAK,IAAsB,EAAE;QAC1C,IAAI,QAAQ,CAAC,EAAE,KAAK,KAAK,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;YAC3C,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,yBAAyB,CAAC,aAAa,EAAE,CAAC;IACnD,CAAC;IAED;;;;;;;;;OASG;IACH,UAAU,EAAE,KAAK,EACf,UAA6C,IAAI,EAClC,EAAE;QACjB,IAAI,QAAQ,CAAC,EAAE,KAAK,KAAK,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;YAC3C,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;QAC3B,CAAC;QACD,OAAO,yBAAyB,CAAC,qBAAqB,CACpD,OAAO,IAAI,SAAS,CACrB,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,aAAa,EAAE,KAAK,IAAmB,EAAE;QACvC,IAAI,QAAQ,CAAC,EAAE,KAAK,KAAK,EAAE,CAAC;YAC1B,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;QAC3B,CAAC;QACD,OAAO,yBAAyB,CAAC,aAAa,EAAE,EAAE,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAC1E,CAAC;IAED;;;;;;OAMG;IACH,WAAW,EAAE,CAAC,OAAe,EAAE,mBAAkC,IAAI,EAAE,EAAE;QACvE,IAAI,QAAQ,CAAC,EAAE,KAAK,KAAK,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;YAC3C,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;QAC3B,CAAC;QACD,OAAO,yBAAyB,CAAC,WAAW,CAC1C,OAAO,EACP,gBAAgB,IAAI,SAAS,CAC9B,CAAC;IACJ,CAAC;CACF,CAAC","sourcesContent":["import { Platform } from 'react-native';\nimport BitmovinCastManagerModule from './modules/BitmovinCastManagerModule';\n\n/**\n * The options to be used for initializing `BitmovinCastManager`\n * @
|
|
1
|
+
{"version":3,"file":"bitmovinCastManager.js","sourceRoot":"","sources":["../src/bitmovinCastManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,yBAAyB,MAAM,qCAAqC,CAAC;AAmB5E;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC;;;OAGG;IACH,aAAa,EAAE,KAAK,IAAsB,EAAE;QAC1C,IAAI,QAAQ,CAAC,EAAE,KAAK,KAAK,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;YAC3C,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,yBAAyB,CAAC,aAAa,EAAE,CAAC;IACnD,CAAC;IAED;;;;;;;;;OASG;IACH,UAAU,EAAE,KAAK,EACf,UAA6C,IAAI,EAClC,EAAE;QACjB,IAAI,QAAQ,CAAC,EAAE,KAAK,KAAK,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;YAC3C,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;QAC3B,CAAC;QACD,OAAO,yBAAyB,CAAC,qBAAqB,CACpD,OAAO,IAAI,SAAS,CACrB,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,aAAa,EAAE,KAAK,IAAmB,EAAE;QACvC,IAAI,QAAQ,CAAC,EAAE,KAAK,KAAK,EAAE,CAAC;YAC1B,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;QAC3B,CAAC;QACD,OAAO,yBAAyB,CAAC,aAAa,EAAE,EAAE,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAC1E,CAAC;IAED;;;;;;OAMG;IACH,WAAW,EAAE,CAAC,OAAe,EAAE,mBAAkC,IAAI,EAAE,EAAE;QACvE,IAAI,QAAQ,CAAC,EAAE,KAAK,KAAK,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;YAC3C,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;QAC3B,CAAC;QACD,OAAO,yBAAyB,CAAC,WAAW,CAC1C,OAAO,EACP,gBAAgB,IAAI,SAAS,CAC9B,CAAC;IACJ,CAAC;CACF,CAAC","sourcesContent":["import { Platform } from 'react-native';\nimport BitmovinCastManagerModule from './modules/BitmovinCastManagerModule';\n\n/**\n * The options to be used for initializing `BitmovinCastManager`\n * @platform Android, iOS\n */\nexport interface BitmovinCastManagerOptions {\n /**\n * ID of receiver application.\n * Using `null` value will result in using the default application ID\n */\n applicationId?: string | null;\n /**\n * A custom message namespace to be used for communication between sender and receiver.\n * Using `null` value will result in using the default message namespace\n */\n messageNamespace?: string | null;\n}\n\n/**\n * Singleton providing access to GoogleCast related features.\n * The `BitmovinCastManager` needs to be initialized by calling `BitmovinCastManager.initialize`\n * before `Player` creation to enable casting features.\n *\n * @platform Android, iOS\n */\nexport const BitmovinCastManager = {\n /**\n * Returns whether the `BitmovinCastManager` is initialized.\n * @returns A promise that resolves with a boolean indicating whether the `BitmovinCastManager` is initialized\n */\n isInitialized: async (): Promise<boolean> => {\n if (Platform.OS === 'ios' && Platform.isTV) {\n return false;\n }\n return BitmovinCastManagerModule.isInitialized();\n },\n\n /**\n * Initialize `BitmovinCastManager` based on the provided `BitmovinCastManagerOptions`.\n * This method needs to be called before `Player` creation to enable casting features.\n * If no options are provided, the default options will be used.\n *\n * IMPORTANT: This should only be called when the Google Cast SDK is available in the application.\n *\n * @param options The options to be used for initializing `BitmovinCastManager`\n * @returns A promise that resolves when the `BitmovinCastManager` was initialized successfully\n */\n initialize: async (\n options: BitmovinCastManagerOptions | null = null\n ): Promise<void> => {\n if (Platform.OS === 'ios' && Platform.isTV) {\n return Promise.resolve();\n }\n return BitmovinCastManagerModule.initializeCastManager(\n options || undefined\n );\n },\n\n /**\n * Must be called in every Android Activity to update the context to the current one.\n * Make sure to call this method on every Android Activity switch.\n *\n * @returns A promise that resolves when the context was updated successfully\n * @platform Android\n */\n updateContext: async (): Promise<void> => {\n if (Platform.OS === 'ios') {\n return Promise.resolve();\n }\n return BitmovinCastManagerModule.updateContext?.() || Promise.resolve();\n },\n\n /**\n * Sends the given message to the cast receiver.\n *\n * @param message The message to be sent\n * @param messageNamespace The message namespace to be used, in case of null the default message namespace will be used\n * @returns A promise that resolves when the message was sent successfully\n */\n sendMessage: (message: string, messageNamespace: string | null = null) => {\n if (Platform.OS === 'ios' && Platform.isTV) {\n return Promise.resolve();\n }\n return BitmovinCastManagerModule.sendMessage(\n message,\n messageNamespace || undefined\n );\n },\n};\n"]}
|
package/build/bufferConfig.d.ts
CHANGED
|
@@ -26,7 +26,7 @@ export interface BufferConfig {
|
|
|
26
26
|
*
|
|
27
27
|
* Default is `5` seconds.
|
|
28
28
|
*
|
|
29
|
-
* @
|
|
29
|
+
* @platform Android
|
|
30
30
|
*/
|
|
31
31
|
restartThreshold?: number;
|
|
32
32
|
/**
|
|
@@ -35,7 +35,7 @@ export interface BufferConfig {
|
|
|
35
35
|
*
|
|
36
36
|
* Default is `2.5` seconds.
|
|
37
37
|
*
|
|
38
|
-
* @
|
|
38
|
+
* @platform Android
|
|
39
39
|
*/
|
|
40
40
|
startupThreshold?: number;
|
|
41
41
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bufferConfig.js","sourceRoot":"","sources":["../src/bufferConfig.ts"],"names":[],"mappings":"","sourcesContent":["/**\n * Configures buffer target levels for different MediaTypes.\n */\nexport interface BufferMediaTypeConfig {\n /**\n * The amount of data in seconds the player tries to buffer in advance.\n *\n * iOS and tvOS, only: If set to `0`, the player will choose an appropriate forward buffer duration suitable\n * for most use-cases.\n *\n * Default value is `0` on iOS and tvOS, `50` on Android\n */\n forwardDuration?: number;\n}\n\n/**\n * Player buffer config object to configure buffering behavior.\n */\nexport interface BufferConfig {\n /**\n * Configures various settings for the audio and video buffer.\n */\n audioAndVideo?: BufferMediaTypeConfig;\n /**\n * Amount of seconds the player buffers before playback starts again after a stall. This value is\n * restricted to the maximum value of the buffer minus 0.5 seconds.\n *\n * Default is `5` seconds.\n *\n * @
|
|
1
|
+
{"version":3,"file":"bufferConfig.js","sourceRoot":"","sources":["../src/bufferConfig.ts"],"names":[],"mappings":"","sourcesContent":["/**\n * Configures buffer target levels for different MediaTypes.\n */\nexport interface BufferMediaTypeConfig {\n /**\n * The amount of data in seconds the player tries to buffer in advance.\n *\n * iOS and tvOS, only: If set to `0`, the player will choose an appropriate forward buffer duration suitable\n * for most use-cases.\n *\n * Default value is `0` on iOS and tvOS, `50` on Android\n */\n forwardDuration?: number;\n}\n\n/**\n * Player buffer config object to configure buffering behavior.\n */\nexport interface BufferConfig {\n /**\n * Configures various settings for the audio and video buffer.\n */\n audioAndVideo?: BufferMediaTypeConfig;\n /**\n * Amount of seconds the player buffers before playback starts again after a stall. This value is\n * restricted to the maximum value of the buffer minus 0.5 seconds.\n *\n * Default is `5` seconds.\n *\n * @platform Android\n */\n restartThreshold?: number;\n /**\n * Amount of seconds the player buffers before playback starts. This value is restricted to the\n * maximum value of the buffer minus 0.5 seconds.\n *\n * Default is `2.5` seconds.\n *\n * @platform Android\n */\n startupThreshold?: number;\n}\n"]}
|
|
@@ -53,56 +53,56 @@ export type PlayerViewEvents = {
|
|
|
53
53
|
/**
|
|
54
54
|
* Event emitted when casting to a cast-compatible device is available.
|
|
55
55
|
*
|
|
56
|
-
* @
|
|
56
|
+
* @platform iOS, Android
|
|
57
57
|
*/
|
|
58
58
|
onCastAvailable?: (event: CastAvailableEvent) => void;
|
|
59
59
|
/**
|
|
60
60
|
* Event emitted when the playback on a cast-compatible device was paused.
|
|
61
61
|
*
|
|
62
|
-
* @
|
|
62
|
+
* @platform iOS, Android
|
|
63
63
|
*/
|
|
64
64
|
onCastPaused?: (event: CastPausedEvent) => void;
|
|
65
65
|
/**
|
|
66
66
|
* Event emitted when the playback on a cast-compatible device has finished.
|
|
67
67
|
*
|
|
68
|
-
* @
|
|
68
|
+
* @platform iOS, Android
|
|
69
69
|
*/
|
|
70
70
|
onCastPlaybackFinished?: (event: CastPlaybackFinishedEvent) => void;
|
|
71
71
|
/**
|
|
72
72
|
* Event emitted when playback on a cast-compatible device has started.
|
|
73
73
|
*
|
|
74
|
-
* @
|
|
74
|
+
* @platform iOS, Android
|
|
75
75
|
*/
|
|
76
76
|
onCastPlaying?: (event: CastPlayingEvent) => void;
|
|
77
77
|
/**
|
|
78
78
|
* Event emitted when the cast app is launched successfully.
|
|
79
79
|
*
|
|
80
|
-
* @
|
|
80
|
+
* @platform iOS, Android
|
|
81
81
|
*/
|
|
82
82
|
onCastStarted?: (event: CastStartedEvent) => void;
|
|
83
83
|
/**
|
|
84
84
|
* Event emitted when casting is initiated, but the user still needs to choose which device should be used.
|
|
85
85
|
*
|
|
86
|
-
* @
|
|
86
|
+
* @platform iOS, Android
|
|
87
87
|
*/
|
|
88
88
|
onCastStart?: (event: CastStartEvent) => void;
|
|
89
89
|
/**
|
|
90
90
|
* Event emitted when casting to a cast-compatible device is stopped.
|
|
91
91
|
*
|
|
92
|
-
* @
|
|
92
|
+
* @platform iOS, Android
|
|
93
93
|
*/
|
|
94
94
|
onCastStopped?: (event: CastStoppedEvent) => void;
|
|
95
95
|
/**
|
|
96
96
|
* Event emitted when the time update from the currently used cast-compatible device is received.
|
|
97
97
|
*
|
|
98
|
-
* @
|
|
98
|
+
* @platform iOS, Android
|
|
99
99
|
*/
|
|
100
100
|
onCastTimeUpdated?: (event: CastTimeUpdatedEvent) => void;
|
|
101
101
|
/**
|
|
102
102
|
* Event emitted when a cast-compatible device has been chosen and the player is waiting for the device to get ready for
|
|
103
103
|
* playback.
|
|
104
104
|
*
|
|
105
|
-
* @
|
|
105
|
+
* @platform iOS, Android
|
|
106
106
|
*/
|
|
107
107
|
onCastWaitingForDevice?: (event: CastWaitingForDeviceEvent) => void;
|
|
108
108
|
/**
|
|
@@ -128,25 +128,25 @@ export type PlayerViewEvents = {
|
|
|
128
128
|
/**
|
|
129
129
|
* Event emitted when fullscreen mode has been enabled.
|
|
130
130
|
*
|
|
131
|
-
* @
|
|
131
|
+
* @platform iOS, Android
|
|
132
132
|
*/
|
|
133
133
|
onFullscreenEnabled?: (event: FullscreenEnabledEvent) => void;
|
|
134
134
|
/**
|
|
135
135
|
* Event emitted when fullscreen mode has been disabled.
|
|
136
136
|
*
|
|
137
|
-
* @
|
|
137
|
+
* @platform iOS, Android
|
|
138
138
|
*/
|
|
139
139
|
onFullscreenDisabled?: (event: FullscreenDisabledEvent) => void;
|
|
140
140
|
/**
|
|
141
141
|
* Event emitted when fullscreen mode has been entered.
|
|
142
142
|
*
|
|
143
|
-
* @
|
|
143
|
+
* @platform iOS, Android
|
|
144
144
|
*/
|
|
145
145
|
onFullscreenEnter?: (event: FullscreenEnterEvent) => void;
|
|
146
146
|
/**
|
|
147
147
|
* Event emitted when fullscreen mode has been exited.
|
|
148
148
|
*
|
|
149
|
-
* @
|
|
149
|
+
* @platform iOS, Android
|
|
150
150
|
*/
|
|
151
151
|
onFullscreenExit?: (event: FullscreenExitEvent) => void;
|
|
152
152
|
/**
|
|
@@ -168,7 +168,7 @@ export type PlayerViewEvents = {
|
|
|
168
168
|
/**
|
|
169
169
|
* Event emitted when the player entered Picture in Picture mode.
|
|
170
170
|
*
|
|
171
|
-
* @
|
|
171
|
+
* @platform iOS
|
|
172
172
|
*/
|
|
173
173
|
onPictureInPictureEntered?: (event: PictureInPictureEnteredEvent) => void;
|
|
174
174
|
/**
|
|
@@ -178,7 +178,7 @@ export type PlayerViewEvents = {
|
|
|
178
178
|
/**
|
|
179
179
|
* Event emitted when the player exited Picture in Picture mode.
|
|
180
180
|
*
|
|
181
|
-
* @
|
|
181
|
+
* @platform iOS
|
|
182
182
|
*/
|
|
183
183
|
onPictureInPictureExited?: (event: PictureInPictureExitedEvent) => void;
|
|
184
184
|
/**
|
|
@@ -191,7 +191,7 @@ export type PlayerViewEvents = {
|
|
|
191
191
|
onPlaybackFinished?: (event: PlaybackFinishedEvent) => void;
|
|
192
192
|
/**
|
|
193
193
|
* Emitted when the player transitions from one playback speed to another.
|
|
194
|
-
* @
|
|
194
|
+
* @platform iOS, tvOS
|
|
195
195
|
*/
|
|
196
196
|
onPlaybackSpeedChanged?: (event: PlaybackSpeedChangedEvent) => void;
|
|
197
197
|
/**
|