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.
Files changed (112) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/android/build.gradle +2 -2
  3. package/android/src/main/java/com/bitmovin/player/reactnative/PlayerModule.kt +47 -0
  4. package/android/src/main/java/com/bitmovin/player/reactnative/converter/JsonConverter.kt +32 -3
  5. package/build/adaptationConfig.d.ts +1 -1
  6. package/build/adaptationConfig.js.map +1 -1
  7. package/build/advertising.d.ts +54 -1
  8. package/build/advertising.d.ts.map +1 -1
  9. package/build/advertising.js.map +1 -1
  10. package/build/audioSession.d.ts +3 -3
  11. package/build/audioSession.js +2 -2
  12. package/build/audioSession.js.map +1 -1
  13. package/build/bitmovinCastManager.d.ts +3 -3
  14. package/build/bitmovinCastManager.js +2 -2
  15. package/build/bitmovinCastManager.js.map +1 -1
  16. package/build/bufferConfig.d.ts +2 -2
  17. package/build/bufferConfig.js.map +1 -1
  18. package/build/components/PlayerView/events.d.ts +16 -16
  19. package/build/components/PlayerView/events.js.map +1 -1
  20. package/build/components/PlayerView/nativeEvents.d.ts +16 -16
  21. package/build/components/PlayerView/nativeEvents.js.map +1 -1
  22. package/build/components/PlayerView/pictureInPictureConfig.d.ts +1 -1
  23. package/build/components/PlayerView/pictureInPictureConfig.js.map +1 -1
  24. package/build/components/PlayerView/playerViewConfig.d.ts +2 -2
  25. package/build/components/PlayerView/playerViewConfig.js.map +1 -1
  26. package/build/decoder/decoderConfig.d.ts +2 -2
  27. package/build/decoder/decoderConfig.js.map +1 -1
  28. package/build/drm/index.d.ts +2 -2
  29. package/build/drm/index.js.map +1 -1
  30. package/build/drm/widevineConfig.d.ts +5 -5
  31. package/build/drm/widevineConfig.js.map +1 -1
  32. package/build/events.d.ts +10 -10
  33. package/build/events.js.map +1 -1
  34. package/build/media.d.ts +4 -0
  35. package/build/media.d.ts.map +1 -1
  36. package/build/media.js.map +1 -1
  37. package/build/modules/PlayerModule.d.ts +12 -1
  38. package/build/modules/PlayerModule.d.ts.map +1 -1
  39. package/build/modules/PlayerModule.js.map +1 -1
  40. package/build/offline/offlineContentConfig.d.ts +1 -1
  41. package/build/offline/offlineContentConfig.js.map +1 -1
  42. package/build/offline/offlineContentManager.d.ts +2 -2
  43. package/build/offline/offlineContentManager.js +2 -2
  44. package/build/offline/offlineContentManager.js.map +1 -1
  45. package/build/offline/offlineContentManagerListener.d.ts +13 -13
  46. package/build/offline/offlineContentManagerListener.js +1 -1
  47. package/build/offline/offlineContentManagerListener.js.map +1 -1
  48. package/build/offline/offlineContentOptions.d.ts +2 -2
  49. package/build/offline/offlineContentOptions.js.map +1 -1
  50. package/build/offline/offlineDownloadRequest.d.ts +1 -1
  51. package/build/offline/offlineDownloadRequest.js.map +1 -1
  52. package/build/offline/offlineSourceOptions.d.ts +2 -2
  53. package/build/offline/offlineSourceOptions.js.map +1 -1
  54. package/build/offline/offlineState.d.ts +1 -1
  55. package/build/offline/offlineState.js +1 -1
  56. package/build/offline/offlineState.js.map +1 -1
  57. package/build/playbackConfig.d.ts +1 -1
  58. package/build/playbackConfig.js.map +1 -1
  59. package/build/player.d.ts +13 -11
  60. package/build/player.d.ts.map +1 -1
  61. package/build/player.js +42 -11
  62. package/build/player.js.map +1 -1
  63. package/build/source.d.ts +2 -2
  64. package/build/source.js +1 -1
  65. package/build/source.js.map +1 -1
  66. package/build/styleConfig.d.ts +5 -5
  67. package/build/styleConfig.js +1 -1
  68. package/build/styleConfig.js.map +1 -1
  69. package/build/subtitleFormat.d.ts +5 -5
  70. package/build/subtitleFormat.js +5 -5
  71. package/build/subtitleFormat.js.map +1 -1
  72. package/build/subtitleTrack.d.ts +1 -1
  73. package/build/subtitleTrack.js.map +1 -1
  74. package/build/tweaksConfig.d.ts +15 -15
  75. package/build/tweaksConfig.js.map +1 -1
  76. package/ios/PlayerModule.swift +40 -0
  77. package/ios/RCTConvert+BitmovinPlayer.swift +41 -0
  78. package/package.json +1 -1
  79. package/plugin/build/withBitmovinConfig.js +8 -2
  80. package/plugin/src/withAppGradleDependencies.ts +24 -21
  81. package/plugin/src/withBitmovinAndroidConfig.ts +4 -1
  82. package/plugin/src/withBitmovinConfig.ts +12 -3
  83. package/plugin/src/withBitmovinIosConfig.ts +4 -1
  84. package/src/adaptationConfig.ts +1 -1
  85. package/src/advertising.ts +56 -1
  86. package/src/audioSession.ts +3 -3
  87. package/src/bitmovinCastManager.ts +3 -3
  88. package/src/bufferConfig.ts +2 -2
  89. package/src/components/PlayerView/events.ts +16 -16
  90. package/src/components/PlayerView/nativeEvents.ts +16 -16
  91. package/src/components/PlayerView/pictureInPictureConfig.ts +1 -1
  92. package/src/components/PlayerView/playerViewConfig.ts +2 -2
  93. package/src/decoder/decoderConfig.ts +2 -2
  94. package/src/drm/index.ts +2 -2
  95. package/src/drm/widevineConfig.ts +5 -5
  96. package/src/events.ts +10 -10
  97. package/src/media.ts +4 -0
  98. package/src/modules/PlayerModule.ts +18 -2
  99. package/src/offline/offlineContentConfig.ts +1 -1
  100. package/src/offline/offlineContentManager.ts +2 -2
  101. package/src/offline/offlineContentManagerListener.ts +13 -13
  102. package/src/offline/offlineContentOptions.ts +2 -2
  103. package/src/offline/offlineDownloadRequest.ts +1 -1
  104. package/src/offline/offlineSourceOptions.ts +2 -2
  105. package/src/offline/offlineState.ts +1 -1
  106. package/src/playbackConfig.ts +1 -1
  107. package/src/player.ts +47 -12
  108. package/src/source.ts +2 -2
  109. package/src/styleConfig.ts +5 -5
  110. package/src/subtitleFormat.ts +5 -5
  111. package/src/subtitleTrack.ts +1 -1
  112. 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
@@ -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.128.0+jason'
112
- implementation 'com.bitmovin.player:player-media-session:3.128.0+jason'
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
- return AdvertisingConfig(
191
- getArray("schedule")?.toMapList()?.mapNotNull { it?.toAdItem() } ?: return null,
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
- * @remarks Platform: Android
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 * @remarks 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"]}
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"]}
@@ -79,7 +79,7 @@ export interface AdItem {
79
79
  *
80
80
  * Default value is 0.0
81
81
  *
82
- * @remarks Platform: Android
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;CACpB;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"}
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"}
@@ -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 * @remarks 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\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"]}
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"]}
@@ -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
- * @remarks Platform: iOS
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
- * @remarks Platform: iOS
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
- * @remarks Platform: iOS
28
+ * @platform iOS
29
29
  * @see https://developer.apple.com/documentation/avfaudio/avaudiosession/1616583-setcategory
30
30
  */
31
31
  setCategory: (category: AudioSessionCategory) => Promise<void>;
@@ -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
- * @remarks Platform: iOS
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
- * @remarks Platform: iOS
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 * @remarks 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 * @remarks 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 * @remarks 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
+ {"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
- * @remarks Platform: Android, iOS
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
- * @remarks Platform: Android, iOS
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
- * @remarks Platform: Android
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
- * @remarks Platform: Android, iOS
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
- * @remarks Platform: Android
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 * @remarks 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 * @remarks 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 * @remarks 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"]}
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"]}
@@ -26,7 +26,7 @@ export interface BufferConfig {
26
26
  *
27
27
  * Default is `5` seconds.
28
28
  *
29
- * @remarks Platform: Android
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
- * @remarks Platform: Android
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 * @remarks 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 * @remarks Platform: Android\n */\n startupThreshold?: number;\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
- * @remarks Platform: iOS, Android
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
- * @remarks Platform: iOS, Android
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
- * @remarks Platform: iOS, Android
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
- * @remarks Platform: iOS, Android
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
- * @remarks Platform: iOS, Android
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
- * @remarks Platform: iOS, Android
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
- * @remarks Platform: iOS, Android
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
- * @remarks Platform: iOS, Android
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
- * @remarks Platform: iOS, Android
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
- * @remarks Platform: iOS, Android
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
- * @remarks Platform: iOS, Android
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
- * @remarks Platform: iOS, Android
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
- * @remarks Platform: iOS, Android
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
- * @remarks Platform: iOS
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
- * @remarks Platform: iOS
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
- * @remarks Platform: iOS, tvOS
194
+ * @platform iOS, tvOS
195
195
  */
196
196
  onPlaybackSpeedChanged?: (event: PlaybackSpeedChangedEvent) => void;
197
197
  /**