react-native-theoplayer 9.2.0 → 9.4.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 (163) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/android/build.gradle +2 -2
  3. package/android/src/main/java/com/theoplayer/media/MediaPlaybackService.kt +7 -11
  4. package/android/src/main/java/com/theoplayer/presentation/PipConfig.kt +7 -0
  5. package/android/src/main/java/com/theoplayer/presentation/PipConfigAdapter.kt +7 -1
  6. package/android/src/main/java/com/theoplayer/presentation/PipUtils.kt +11 -1
  7. package/android/src/main/java/com/theoplayer/presentation/PresentationManager.kt +1 -1
  8. package/android/src/main/java/com/theoplayer/track/TextTrackStyleAdapter.kt +8 -0
  9. package/app.plugin.js +2 -46
  10. package/ios/THEOplayerRCTMainEventHandler.swift +2 -2
  11. package/ios/THEOplayerRCTPlayerAPI.swift +14 -1
  12. package/lib/commonjs/api/backgroundAudio/BackgroundAudioConfiguration.js.map +1 -1
  13. package/lib/commonjs/api/cache/CachingTaskParameters.js +1 -2
  14. package/lib/commonjs/api/cache/CachingTaskParameters.js.map +1 -1
  15. package/lib/commonjs/api/source/SourceDescription.js +1 -2
  16. package/lib/commonjs/api/source/SourceDescription.js.map +1 -1
  17. package/lib/commonjs/api/source/ads/Ads.js.map +1 -1
  18. package/lib/commonjs/api/source/cmcd/CmcdConfiguration.js.map +1 -1
  19. package/lib/commonjs/api/track/TextTrackStyle.js.map +1 -1
  20. package/lib/commonjs/internal/THEOplayerView.js +4 -4
  21. package/lib/commonjs/internal/THEOplayerView.js.map +1 -1
  22. package/lib/commonjs/internal/adapter/WebEventForwarder.js +4 -4
  23. package/lib/commonjs/internal/adapter/WebEventForwarder.js.map +1 -1
  24. package/lib/commonjs/internal/adapter/event/PlayerEvents.js +15 -1
  25. package/lib/commonjs/internal/adapter/event/PlayerEvents.js.map +1 -1
  26. package/lib/commonjs/manifest.json +1 -1
  27. package/lib/commonjs/plugins/expo/withTHEOplayer.js +13 -0
  28. package/lib/commonjs/plugins/expo/withTHEOplayer.js.map +1 -0
  29. package/lib/commonjs/plugins/expo/withTHEOplayerAndroid.js +57 -0
  30. package/lib/commonjs/plugins/expo/withTHEOplayerAndroid.js.map +1 -0
  31. package/lib/commonjs/plugins/typedoc-platform-icons/package-lock.json +237 -0
  32. package/lib/commonjs/plugins/typedoc-platform-icons/package.json +20 -0
  33. package/lib/commonjs/plugins/typedoc-platform-icons/src/index.js +96 -0
  34. package/lib/commonjs/plugins/typedoc-platform-icons/src/index.js.map +1 -0
  35. package/lib/commonjs/plugins/typedoc-platform-icons/tsconfig.json +24 -0
  36. package/lib/module/api/backgroundAudio/BackgroundAudioConfiguration.js.map +1 -1
  37. package/lib/module/api/cache/CachingTaskParameters.js +1 -2
  38. package/lib/module/api/cache/CachingTaskParameters.js.map +1 -1
  39. package/lib/module/api/source/SourceDescription.js +1 -2
  40. package/lib/module/api/source/SourceDescription.js.map +1 -1
  41. package/lib/module/api/source/ads/Ads.js.map +1 -1
  42. package/lib/module/api/source/cmcd/CmcdConfiguration.js.map +1 -1
  43. package/lib/module/api/track/TextTrackStyle.js.map +1 -1
  44. package/lib/module/internal/THEOplayerView.js +5 -5
  45. package/lib/module/internal/THEOplayerView.js.map +1 -1
  46. package/lib/module/internal/adapter/WebEventForwarder.js +5 -5
  47. package/lib/module/internal/adapter/WebEventForwarder.js.map +1 -1
  48. package/lib/module/internal/adapter/event/PlayerEvents.js +12 -0
  49. package/lib/module/internal/adapter/event/PlayerEvents.js.map +1 -1
  50. package/lib/module/manifest.json +1 -1
  51. package/lib/module/plugins/expo/withTHEOplayer.js +9 -0
  52. package/lib/module/plugins/expo/withTHEOplayer.js.map +1 -0
  53. package/lib/module/plugins/expo/withTHEOplayerAndroid.js +52 -0
  54. package/lib/module/plugins/expo/withTHEOplayerAndroid.js.map +1 -0
  55. package/lib/module/plugins/typedoc-platform-icons/package-lock.json +237 -0
  56. package/lib/module/plugins/typedoc-platform-icons/package.json +20 -0
  57. package/lib/module/plugins/typedoc-platform-icons/src/index.js +92 -0
  58. package/lib/module/plugins/typedoc-platform-icons/src/index.js.map +1 -0
  59. package/lib/module/plugins/typedoc-platform-icons/tsconfig.json +24 -0
  60. package/lib/typescript/api/THEOplayerView.d.ts +1 -2
  61. package/lib/typescript/api/THEOplayerView.d.ts.map +1 -1
  62. package/lib/typescript/api/abr/ABRConfiguration.d.ts +8 -12
  63. package/lib/typescript/api/abr/ABRConfiguration.d.ts.map +1 -1
  64. package/lib/typescript/api/ads/AdsConfiguration.d.ts +5 -5
  65. package/lib/typescript/api/ads/AdsConfiguration.d.ts.map +1 -1
  66. package/lib/typescript/api/ads/GoogleImaAd.d.ts +2 -4
  67. package/lib/typescript/api/ads/GoogleImaAd.d.ts.map +1 -1
  68. package/lib/typescript/api/ads/GoogleImaConfiguration.d.ts +4 -1
  69. package/lib/typescript/api/ads/GoogleImaConfiguration.d.ts.map +1 -1
  70. package/lib/typescript/api/ads/Omid.d.ts +1 -0
  71. package/lib/typescript/api/ads/Omid.d.ts.map +1 -1
  72. package/lib/typescript/api/backgroundAudio/BackgroundAudioConfiguration.d.ts +4 -2
  73. package/lib/typescript/api/backgroundAudio/BackgroundAudioConfiguration.d.ts.map +1 -1
  74. package/lib/typescript/api/cache/CachingTask.d.ts +2 -1
  75. package/lib/typescript/api/cache/CachingTask.d.ts.map +1 -1
  76. package/lib/typescript/api/cache/CachingTaskParameters.d.ts +10 -9
  77. package/lib/typescript/api/cache/CachingTaskParameters.d.ts.map +1 -1
  78. package/lib/typescript/api/config/PlayerConfiguration.d.ts +9 -11
  79. package/lib/typescript/api/config/PlayerConfiguration.d.ts.map +1 -1
  80. package/lib/typescript/api/event/AdEvent.d.ts +4 -8
  81. package/lib/typescript/api/event/AdEvent.d.ts.map +1 -1
  82. package/lib/typescript/api/event/PlayerEvent.d.ts +13 -2
  83. package/lib/typescript/api/event/PlayerEvent.d.ts.map +1 -1
  84. package/lib/typescript/api/media/MediaControlConfiguration.d.ts +2 -4
  85. package/lib/typescript/api/media/MediaControlConfiguration.d.ts.map +1 -1
  86. package/lib/typescript/api/millicast/MillicastConnectOptions.d.ts +4 -0
  87. package/lib/typescript/api/millicast/MillicastConnectOptions.d.ts.map +1 -1
  88. package/lib/typescript/api/pip/PiPConfiguration.d.ts +10 -1
  89. package/lib/typescript/api/pip/PiPConfiguration.d.ts.map +1 -1
  90. package/lib/typescript/api/playback/PlaybackSettingsAPI.d.ts +3 -6
  91. package/lib/typescript/api/playback/PlaybackSettingsAPI.d.ts.map +1 -1
  92. package/lib/typescript/api/player/THEOplayer.d.ts +5 -9
  93. package/lib/typescript/api/player/THEOplayer.d.ts.map +1 -1
  94. package/lib/typescript/api/source/SourceDescription.d.ts +12 -27
  95. package/lib/typescript/api/source/SourceDescription.d.ts.map +1 -1
  96. package/lib/typescript/api/source/ads/Ads.d.ts +0 -1
  97. package/lib/typescript/api/source/ads/Ads.d.ts.map +1 -1
  98. package/lib/typescript/api/source/ads/TheoAdDescription.d.ts +3 -3
  99. package/lib/typescript/api/source/ads/ssai/GoogleDAIConfiguration.d.ts +2 -1
  100. package/lib/typescript/api/source/ads/ssai/GoogleDAIConfiguration.d.ts.map +1 -1
  101. package/lib/typescript/api/source/cmcd/CmcdConfiguration.d.ts +5 -10
  102. package/lib/typescript/api/source/cmcd/CmcdConfiguration.d.ts.map +1 -1
  103. package/lib/typescript/api/source/dash/DashPlaybackConfiguration.d.ts +10 -16
  104. package/lib/typescript/api/source/dash/DashPlaybackConfiguration.d.ts.map +1 -1
  105. package/lib/typescript/api/source/hls/HlsPlaybackConfiguration.d.ts +0 -3
  106. package/lib/typescript/api/source/hls/HlsPlaybackConfiguration.d.ts.map +1 -1
  107. package/lib/typescript/api/theoads/TheoAdsAPI.d.ts +1 -2
  108. package/lib/typescript/api/theoads/TheoAdsAPI.d.ts.map +1 -1
  109. package/lib/typescript/api/theolive/TheoLiveConfiguration.d.ts +4 -8
  110. package/lib/typescript/api/theolive/TheoLiveConfiguration.d.ts.map +1 -1
  111. package/lib/typescript/api/track/TextTrackStyle.d.ts +11 -9
  112. package/lib/typescript/api/track/TextTrackStyle.d.ts.map +1 -1
  113. package/lib/typescript/internal/THEOplayerView.d.ts.map +1 -1
  114. package/lib/typescript/internal/adapter/WebEventForwarder.d.ts.map +1 -1
  115. package/lib/typescript/internal/adapter/event/PlayerEvents.d.ts +9 -3
  116. package/lib/typescript/internal/adapter/event/PlayerEvents.d.ts.map +1 -1
  117. package/lib/typescript/internal/adapter/event/native/NativePlayerEvent.d.ts +12 -0
  118. package/lib/typescript/internal/adapter/event/native/NativePlayerEvent.d.ts.map +1 -1
  119. package/lib/typescript/plugins/expo/withTHEOplayer.d.ts +4 -0
  120. package/lib/typescript/plugins/expo/withTHEOplayer.d.ts.map +1 -0
  121. package/lib/typescript/plugins/expo/withTHEOplayerAndroid.d.ts +8 -0
  122. package/lib/typescript/plugins/expo/withTHEOplayerAndroid.d.ts.map +1 -0
  123. package/lib/typescript/plugins/typedoc-platform-icons/src/index.d.ts +3 -0
  124. package/lib/typescript/plugins/typedoc-platform-icons/src/index.d.ts.map +1 -0
  125. package/package.json +3 -3
  126. package/src/api/THEOplayerView.ts +1 -2
  127. package/src/api/abr/ABRConfiguration.ts +8 -12
  128. package/src/api/ads/AdsConfiguration.ts +5 -5
  129. package/src/api/ads/GoogleImaAd.ts +2 -4
  130. package/src/api/ads/GoogleImaConfiguration.ts +6 -3
  131. package/src/api/ads/Omid.ts +1 -0
  132. package/src/api/backgroundAudio/BackgroundAudioConfiguration.ts +4 -2
  133. package/src/api/cache/CachingTask.ts +2 -1
  134. package/src/api/cache/CachingTaskParameters.ts +10 -9
  135. package/src/api/config/PlayerConfiguration.ts +9 -11
  136. package/src/api/event/AdEvent.ts +4 -8
  137. package/src/api/event/PlayerEvent.ts +15 -2
  138. package/src/api/media/MediaControlConfiguration.ts +2 -4
  139. package/src/api/millicast/MillicastConnectOptions.ts +5 -1
  140. package/src/api/pip/PiPConfiguration.ts +11 -1
  141. package/src/api/playback/PlaybackSettingsAPI.ts +3 -6
  142. package/src/api/player/THEOplayer.ts +5 -9
  143. package/src/api/source/SourceDescription.ts +12 -27
  144. package/src/api/source/ads/Ads.ts +0 -1
  145. package/src/api/source/ads/TheoAdDescription.ts +3 -3
  146. package/src/api/source/ads/ssai/GoogleDAIConfiguration.ts +2 -1
  147. package/src/api/source/cmcd/CmcdConfiguration.ts +5 -10
  148. package/src/api/source/dash/DashPlaybackConfiguration.ts +10 -16
  149. package/src/api/source/hls/HlsPlaybackConfiguration.ts +0 -3
  150. package/src/api/theoads/TheoAdsAPI.ts +1 -2
  151. package/src/api/theolive/TheoLiveConfiguration.ts +4 -8
  152. package/src/api/track/TextTrackStyle.ts +11 -9
  153. package/src/internal/THEOplayerView.tsx +10 -6
  154. package/src/internal/adapter/WebEventForwarder.ts +8 -4
  155. package/src/internal/adapter/event/PlayerEvents.ts +17 -2
  156. package/src/internal/adapter/event/native/NativePlayerEvent.ts +14 -0
  157. package/src/manifest.json +1 -1
  158. package/src/plugins/expo/withTHEOplayer.ts +9 -0
  159. package/src/plugins/expo/withTHEOplayerAndroid.ts +58 -0
  160. package/src/plugins/typedoc-platform-icons/package-lock.json +237 -0
  161. package/src/plugins/typedoc-platform-icons/package.json +20 -0
  162. package/src/plugins/typedoc-platform-icons/src/index.tsx +90 -0
  163. package/src/plugins/typedoc-platform-icons/tsconfig.json +24 -0
@@ -12,11 +12,10 @@ export interface PlaybackSettingsAPI {
12
12
  * </ul>
13
13
  *
14
14
  * @experimental
15
+ *
15
16
  * @param {boolean} useFastStartup Whether fast startup is enabled.
16
17
  *
17
- * @remarks
18
- * - This API is experimental.
19
- * - This property is supported on Android platforms only.
18
+ * @platform android
20
19
  */
21
20
  useFastStartup(useFastStartup: boolean): void;
22
21
 
@@ -31,9 +30,7 @@ export interface PlaybackSettingsAPI {
31
30
  * @param {number} correctionMs The correction delay in milliseconds.
32
31
  * Positive values advance the audio, while negative values delay it.
33
32
  *
34
- * @remarks
35
- * - This API is experimental.
36
- * - This property is supported on Android platforms only.
33
+ * @platform android
37
34
  */
38
35
  setLipSyncCorrection(correctionMs: number): void;
39
36
  }
@@ -157,9 +157,6 @@ export interface THEOplayer extends EventDispatcher<PlayerEventMap> {
157
157
 
158
158
  /**
159
159
  * The text track style API.
160
- *
161
- * @remarks
162
- * Only available for Web.
163
160
  */
164
161
  readonly textTrackStyle: TextTrackStyle;
165
162
 
@@ -186,8 +183,7 @@ export interface THEOplayer extends EventDispatcher<PlayerEventMap> {
186
183
  /**
187
184
  * Used to set the aspect ratio of the player.
188
185
  *
189
- * @remarks
190
- * Only available for iOS and Android.
186
+ * @platform ios,android
191
187
  */
192
188
  aspectRatio: AspectRatio;
193
189
 
@@ -195,8 +191,8 @@ export interface THEOplayer extends EventDispatcher<PlayerEventMap> {
195
191
  * Specifies where the player is displaying the video.
196
192
  *
197
193
  * @defaultValue `SURFACE_VIEW`
198
- * @remarks
199
- * Only available for Android.
194
+ *
195
+ * @platform android
200
196
  */
201
197
  renderingTarget?: RenderingTarget;
202
198
 
@@ -204,8 +200,8 @@ export interface THEOplayer extends EventDispatcher<PlayerEventMap> {
204
200
  * Toggle the wake-lock on the player view. The screen will time out if disabled.
205
201
  *
206
202
  * @defaultValue `true`
207
- * @remarks
208
- * Only available on Android.
203
+ *
204
+ * @platform android
209
205
  */
210
206
  keepScreenOn: boolean;
211
207
 
@@ -54,8 +54,7 @@ export enum SourceIntegrationId {
54
54
  /**
55
55
  * The playback pipeline to use to play a stream.
56
56
  *
57
- * @remarks
58
- * <br/> - Available on Android only.
57
+ * @platform android
59
58
  */
60
59
  export enum PlaybackPipeline {
61
60
  LEGACY = 'legacy',
@@ -262,8 +261,7 @@ export interface TextTrackDescription {
262
261
  *
263
262
  * @internal
264
263
  *
265
- * @remarks
266
- * <br/> - Available on iOS.
264
+ * @platform ios
267
265
  */
268
266
  subtitlePTS?: string;
269
267
 
@@ -271,8 +269,10 @@ export interface TextTrackDescription {
271
269
  * The localTime that matches the PTS value that is used to sync the track with the video.
272
270
  *
273
271
  * @internal
272
+ *
273
+ * @platform ios
274
+ *
274
275
  * @remarks
275
- * <br/> - Available on iOS.
276
276
  * <br/> - Format: "HH:mm:mm:SSS"
277
277
  * <br/> - Default value is "00:00:00:000"
278
278
  */
@@ -304,8 +304,7 @@ export interface BaseSource {
304
304
  * The offset in seconds used to determine the live point.
305
305
  * This live point is the end of the manifest minus the provided offset.
306
306
  *
307
- * @remarks
308
- * <br/> - Available on Web and Android.
307
+ * @platform web,android
309
308
  *
310
309
  * @defaultValue Three times the segment's target duration.
311
310
  */
@@ -315,7 +314,6 @@ export interface BaseSource {
315
314
  * The URL of a time server used by the player to synchronise the time in DASH sources.
316
315
  *
317
316
  * @remarks
318
- * <br/> - Available since v2.47.0.
319
317
  * <br/> - The time server should return time in ISO-8601 format.
320
318
  * <br/> - Overrides the time server provided the DASH manifest's `<UTCTiming>`.
321
319
  * <br/> - Only this source will use the time server. Alternatively, for all source use {@link SourceConfiguration.timeServer}.
@@ -329,7 +327,6 @@ export interface BaseSource {
329
327
  *
330
328
  * @remarks
331
329
  * <br/> - This setting must be `true` when using Low-Latency CMAF with ABR.
332
- * <br/> - Available since v2.62.0.
333
330
  */
334
331
  lowLatency?: boolean;
335
332
 
@@ -337,7 +334,6 @@ export interface BaseSource {
337
334
  * The configuration for controlling playback of an MPEG-DASH stream.
338
335
  *
339
336
  * @remarks
340
- * <br/> - Available since v2.79.0.
341
337
  * <br/> - Ignored for non-DASH streams.
342
338
  */
343
339
  dash?: DashPlaybackConfiguration;
@@ -346,7 +342,6 @@ export interface BaseSource {
346
342
  * The configuration for controlling playback of an HLS stream.
347
343
  *
348
344
  * @remarks
349
- * <br/> - Available since v2.82.0.
350
345
  * <br/> - Ignored for non-HLS streams.
351
346
  */
352
347
  hls?: HlsPlaybackConfiguration;
@@ -355,9 +350,9 @@ export interface BaseSource {
355
350
  * The playback pipeline to use for this stream.
356
351
  *
357
352
  * @defaultValue [PlaybackPipeline.MEDIA3]
358
- * @since v9.0.0
359
- * @remarks
360
- * <br/> - Available on Android only.
353
+ * @since React Native THEOplayer SDK v9.0.0.
354
+ * @since Native THEOplayer SDK v9.0.0.
355
+ * @platform android
361
356
  */
362
357
  playbackPipeline?: PlaybackPipeline;
363
358
  }
@@ -373,7 +368,6 @@ export interface TypedSource extends BaseSource {
373
368
  *
374
369
  * @remarks
375
370
  * <br/> - Required if the `ssai` property is absent.
376
- * <br/> - Available since v2.4.0.
377
371
  */
378
372
  src?: string;
379
373
 
@@ -383,34 +377,25 @@ export interface TypedSource extends BaseSource {
383
377
  * <br/> - `'application/x-mpegURL'` or `'application/vnd.apple.mpegurl'`: The media resource is an HLS stream.
384
378
  * <br/> - `'video/mp4'`, `'video/webm'` and other formats: The media resource should use native HTML5 playback if supported by the browser.
385
379
  * <br/> - `'application/vnd.theo.hesp+json'`: The media resource is an HESP stream.
386
- *
387
- * @remarks
388
- * <br/> - Available since v2.4.0.
389
380
  */
390
381
  type?: string;
391
382
 
392
383
  /**
393
384
  * The content protection parameters for the media resource.
394
- *
395
- * @remarks
396
- * <br/> - Available since v2.15.0.
397
385
  */
398
386
  contentProtection?: DRMConfiguration;
399
387
 
400
388
  /**
401
389
  * The headers included in the request when retrieving the resource.
402
390
  *
403
- * @remarks
404
- * <br/> - Available on iOS and Android.
405
- * <br/> - Available since v7.9.0.
391
+ * @platform ios,android
392
+ *
393
+ * @since React Native THEOplayer SDK v7.9.0.
406
394
  */
407
395
  headers?: { [key: string]: string };
408
396
 
409
397
  /**
410
398
  * The Server-side Ad Insertion parameters for the media resource.
411
- *
412
- * @remarks
413
- * <br/> - Available since v2.12.0.
414
399
  */
415
400
  ssai?: ServerSideAdInsertionConfiguration;
416
401
  }
@@ -78,7 +78,6 @@ export interface AdDescription {
78
78
  * @remarks
79
79
  * <br/> - A timestamp which is not in the playback window will result in the ad break not being started.
80
80
  * <br/> - VMAP resources will ignore this value as they contain an internal offset.
81
- * <br/> - Since 2.18, numbers are supported for the Google IMA integration, since 2.21 other formats as well.
82
81
  *
83
82
  * @defaultValue `'start'`
84
83
  *
@@ -75,9 +75,9 @@ export interface TheoAdDescription extends AdDescription {
75
75
  /**
76
76
  * The streamActivityMonitorId added to the GAM Pod stream request.
77
77
  *
78
- * @remarks
79
- * <br/> - Available since v8.17.0.
80
- * <br/> - Available on Web only.
78
+ * @platform web
79
+ *
80
+ * @since React Native THEOplayer SDK v8.17.0.
81
81
  */
82
82
  streamActivityMonitorId?: string;
83
83
 
@@ -71,10 +71,11 @@ export interface GoogleDAIConfiguration extends ServerSideAdInsertionConfigurati
71
71
  /**
72
72
  * The network code for the publisher making this stream request.
73
73
  *
74
+ * @platform web
75
+ *
74
76
  * @remarks
75
77
  * <br/> - See {@link https://developers.google.com/ad-manager/dynamic-ad-insertion/sdk/html5/reference/js/StreamRequest#networkCode}
76
78
  * for more information.
77
- * <br/> - Available on Web only.
78
79
  */
79
80
  networkCode?: string;
80
81
  }
@@ -6,16 +6,14 @@ export interface CmcdConfiguration {
6
6
  /**
7
7
  * The content ID parameter which should be passed as a CMCD value. If left empty, no content ID will be sent.
8
8
  *
9
- * @remarks
10
- * Web only
9
+ * @platform web
11
10
  */
12
11
  contentID?: string;
13
12
 
14
13
  /**
15
14
  * The session ID parameter which should be passed as a CMCD value. If left empty, a UUIDv4 will be generated when applying the configuration.
16
15
  *
17
- * @remarks
18
- * Web only
16
+ * @platform web
19
17
  */
20
18
  sessionID?: string;
21
19
 
@@ -23,8 +21,7 @@ export interface CmcdConfiguration {
23
21
  * A flag to indicate if request IDs should be sent or not.
24
22
  * When set to a truthy value, a UUIDv4 will be sent as a request id (`rid`) with every request to allow for request tracing.
25
23
  *
26
- * @remarks
27
- * Web only
24
+ * @platform web
28
25
  */
29
26
  sendRequestID?: boolean;
30
27
 
@@ -32,8 +29,7 @@ export interface CmcdConfiguration {
32
29
  * The target URI where client data is to be delivered in case the {@link transmissionMode} is set
33
30
  * to {@link CmcdTransmissionMode.JSON_OBJECT}.
34
31
  *
35
- * @remarks
36
- * Web only
32
+ * @platform web
37
33
  */
38
34
  jsonObjectTargetURI?: string;
39
35
 
@@ -42,8 +38,7 @@ export interface CmcdConfiguration {
42
38
  * Note custom keys MUST carry a hyphenated prefix to ensure that there will not be a namespace collision with future
43
39
  * revisions to the specification. Clients SHOULD use a reverse-DNS syntax when defining their own prefix.
44
40
  *
45
- * @remarks
46
- * Web only
41
+ * @platform web
47
42
  */
48
43
  customKeys?: {
49
44
  [key: string]: string | number | boolean;
@@ -15,17 +15,13 @@ export type SeamlessPeriodSwitchStrategy = 'auto' | 'always' | 'never';
15
15
  /**
16
16
  * Represents a configuration for controlling playback of an MPEG-DASH stream.
17
17
  *
18
- * @remarks
19
- * <br/> - Available since v2.79.0.
20
- *
21
18
  * @public
22
19
  */
23
20
  export interface DashPlaybackConfiguration {
24
21
  /**
25
22
  * Whether to seamlessly switch between DASH periods.
26
23
  *
27
- * @remarks
28
- * <br/> - Available on Web only.
24
+ * @platform web
29
25
  *
30
26
  * The player supports two strategies for handling a switch between two periods in an MPEG-DASH stream:
31
27
  * <br/> - <strong>Seamless</strong>: Once the player is done buffering the current period, it immediately starts buffering the next period.
@@ -49,9 +45,9 @@ export interface DashPlaybackConfiguration {
49
45
  * (Experimental) Whether the timescales of the media data need to be shifted,
50
46
  * in order to work around platform-specific issues on certain smart TV platforms.
51
47
  *
48
+ * @platform android
49
+ *
52
50
  * @remarks
53
- * <br/> - Available since v4.1.0.
54
- * <br/> - Available on Web only.
55
51
  * <br/> - On certain smart TV platforms (such as Tizen 2), playback issues may arise when
56
52
  * the timescale of the media data changes across periods or discontinuities.
57
53
  * In that case, the player may need to shift all the timescales first,
@@ -66,9 +62,9 @@ export interface DashPlaybackConfiguration {
66
62
  /**
67
63
  * (Experimental) The desired timescale to which the media data should be shifted.
68
64
  *
65
+ * @platform web
66
+ *
69
67
  * @remarks
70
- * <br/> - Available since v4.11.0.
71
- * <br/> - Available on Web only.
72
68
  * <br/> - When specified, if the player decides to shift the timescale (see {@link DashPlaybackConfiguration.needsTimescaleShifting}), the timescale will be set to the
73
69
  * given desired timescale.
74
70
  * <br/> - When not specified, if the player decides to shift timescale, the player will decide the timescale to which it should shift.
@@ -82,8 +78,7 @@ export interface DashPlaybackConfiguration {
82
78
  *
83
79
  * @internal
84
80
  *
85
- * @remarks
86
- * <br/> - Available on Web only.
81
+ * @platform web
87
82
  */
88
83
  forceSeekToSynchronize?: boolean;
89
84
 
@@ -91,9 +86,9 @@ export interface DashPlaybackConfiguration {
91
86
  * (Experimental) Force the player to ignore the availability window of individual segments in the MPD,
92
87
  * and instead consider every listed segment to be immediately available.
93
88
  *
89
+ * @platform web,android
90
+ *
94
91
  * @remarks
95
- * <br/> - Available since v5.2.0.
96
- * <br/> - Available on Web and Android.
97
92
  * <br/> - This only applies to livestreams (with `<MPD type="dynamic">`).
98
93
  * <br/> - This only applies to streams that use `<SegmentTimeline>`.
99
94
  */
@@ -102,10 +97,9 @@ export interface DashPlaybackConfiguration {
102
97
  /**
103
98
  * A flag to indicate whether timestamps of segmented WebVTT subtitles are relative to the segment start time.
104
99
  *
105
- * @remarks
106
- * <br/> - Available on Web only.
100
+ * @platform web
107
101
  *
108
- * @defaultValue `true`
102
+ * @defaultValue `true`
109
103
  */
110
104
  segmentRelativeVttTiming?: boolean;
111
105
  }
@@ -23,9 +23,6 @@ export type HlsDiscontinuityAlignment = 'auto' | 'playlist' | 'media';
23
23
  /**
24
24
  * Represents a configuration for controlling playback of an MPEG-DASH stream.
25
25
  *
26
- * @remarks
27
- * <br/> - Available since v2.82.0.
28
- *
29
26
  * @public
30
27
  */
31
28
  export interface HlsPlaybackConfiguration {
@@ -3,8 +3,7 @@ import { Interstitial } from './interstitial/Interstitial';
3
3
  /**
4
4
  * The THEOads API.
5
5
  *
6
- * @remarks
7
- * <br/> - Available since v8.17.0.
6
+ * @since React Native THEOplayer SDK v8.17.0.
8
7
  *
9
8
  * @category THEOads
10
9
  * @public
@@ -7,32 +7,28 @@ export interface TheoLiveConfiguration {
7
7
  /**
8
8
  * An id used to report usage analytics, if not explicitly given a random UUID is used.
9
9
  *
10
- * @remarks
11
- * <br/> - Available on Web and Android only.
10
+ * @platform web,android
12
11
  */
13
12
  readonly externalSessionId?: string;
14
13
 
15
14
  /**
16
15
  * Whether this player should fallback or not when it has a fallback configured.
17
16
  *
18
- * @remarks
19
- * <br/> - Available on Web only.
17
+ * @platform web
20
18
  */
21
19
  readonly fallbackEnabled?: boolean;
22
20
 
23
21
  /**
24
22
  * An optional header that can be passed during discovery.
25
23
  *
26
- * @remarks
27
- * <br/> - Available on Web only.
24
+ * @platform web
28
25
  */
29
26
  readonly discoveryHeader?: string;
30
27
 
31
28
  /**
32
29
  * Whether THEOlive analytics should be disabled or not.
33
30
  *
34
- * @remarks
35
- * <br/> - Available on Android only.
31
+ * @platform android
36
32
  *
37
33
  * @defaultValue `false`
38
34
  */
@@ -15,7 +15,7 @@ export interface TextTrackStyle {
15
15
  * @example
16
16
  * <br/> - `red` will set the color of the text to red.
17
17
  * <br/> - `#ff0000` will set the color of the text to red.
18
- * <br/> - Available on Web only: `rgba(255,0,0,0.5)` will set the color of the text to red, with 50% opacity.
18
+ * <br/> - Available for Web only: `rgba(255,0,0,0.5)` will set the color of the text to red, with 50% opacity.
19
19
  */
20
20
  fontColor: string | undefined;
21
21
 
@@ -36,21 +36,22 @@ export interface TextTrackStyle {
36
36
  * @example
37
37
  * <br/> - `red` will set the background color of the text track to red.
38
38
  * <br/> - `#ff0000` will set the background color of the text track to red.
39
- * <br/> - Available on Web only: `rgba(255,0,0,0.5)` will set the background color of the text track to red, with 50% opacity.
39
+ * <br/> - Available for Web only: `rgba(255,0,0,0.5)` will set the background color of the text track to red, with 50% opacity.
40
40
  */
41
41
  backgroundColor: string | undefined;
42
42
 
43
43
  /**
44
44
  * The window color for the text track.
45
45
  *
46
+ * @platform web,android
47
+ *
46
48
  * @remarks
47
49
  * <br/> - This targets the area covering the full width of the text track.
48
- * <br/> - Available on Web and Android only.
49
50
  *
50
51
  * @example
51
52
  * <br/> - `red` will set the background color of the window of the text track to red.
52
53
  * <br/> - `#ff0000` will set the background color of the window of the text track to red.
53
- * <br/> - Available on Web only: `rgba(255,0,0,0.5)` will set the background color of the window of the text track to red, with 50% opacity.
54
+ * <br/> - Available for Web only: `rgba(255,0,0,0.5)` will set the background color of the window of the text track to red, with 50% opacity.
54
55
  */
55
56
  windowColor: string | undefined;
56
57
 
@@ -60,15 +61,14 @@ export interface TextTrackStyle {
60
61
  * <br/> - `'dropshadow'`
61
62
  * <br/> - `'raised'`
62
63
  * <br/> - `'depressed'`
63
- * <br/> - `'uniform`
64
+ * <br/> - `'uniform'`
64
65
  */
65
66
  edgeStyle: EdgeStyle | undefined;
66
67
 
67
68
  /**
68
69
  * The edge color for the text track.
69
70
  *
70
- * @remarks
71
- * <br/> - Available on Android only.
71
+ * @platform android
72
72
  */
73
73
  edgeColor: string | undefined;
74
74
 
@@ -83,9 +83,10 @@ export interface TextTrackStyle {
83
83
  /**
84
84
  * The bottom margin of the area where subtitles are being rendered.
85
85
  *
86
+ * @platform web,android
87
+ *
86
88
  * @remarks
87
89
  * <br/> - The margin is in number of pixels.
88
- * <br/> - Available on Web only.
89
90
  */
90
91
  marginBottom: number | undefined;
91
92
  /**
@@ -98,10 +99,11 @@ export interface TextTrackStyle {
98
99
  /**
99
100
  * The right margin of the area where subtitles are being rendered.
100
101
  *
102
+ * @platform web,android
103
+ *
101
104
  * @remarks
102
105
  * <br/> - The margin is in number of pixels.
103
106
  * <br/> - Useful for pushing the subtitles left, so they don't overlap with the UI.
104
- * <br/> - Available on Web only.
105
107
  */
106
108
  marginRight: number | undefined;
107
109
  }
@@ -39,6 +39,8 @@ import {
39
39
  DefaultVolumeChangeEvent,
40
40
  DefaultTimeupdateEvent,
41
41
  DefaultResizeEvent,
42
+ DefaultSeekingEvent,
43
+ DefaultSeekedEvent,
42
44
  } from './adapter/event/PlayerEvents';
43
45
  import type { NativeCastEvent } from './adapter/event/native/NativeCastEvent';
44
46
  import type {
@@ -61,6 +63,8 @@ import type {
61
63
  NativeTimeUpdateEvent,
62
64
  NativeVolumeChangeEvent,
63
65
  NativeResizeEvent,
66
+ NativeSeekingEvent,
67
+ NativeSeekedEvent,
64
68
  } from './adapter/event/native/NativePlayerEvent';
65
69
  import type { NativeAdEvent } from './adapter/event/native/NativeAdEvent';
66
70
  import { THEOplayerAdapter } from './adapter/THEOplayerAdapter';
@@ -86,8 +90,8 @@ interface THEOplayerRCTViewProps {
86
90
  onNativePlay: () => void;
87
91
  onNativePlaying: () => void;
88
92
  onNativePause: () => void;
89
- onNativeSeeking: () => void;
90
- onNativeSeeked: () => void;
93
+ onNativeSeeking: (event: NativeSyntheticEvent<NativeSeekingEvent>) => void;
94
+ onNativeSeeked: (event: NativeSyntheticEvent<NativeSeekedEvent>) => void;
91
95
  onNativeEnded: () => void;
92
96
  onNativeWaiting: () => void;
93
97
  onNativeTimeUpdate: (event: NativeSyntheticEvent<NativeTimeUpdateEvent>) => void;
@@ -236,12 +240,12 @@ export class THEOplayerView extends PureComponent<React.PropsWithChildren<THEOpl
236
240
  this._facade.dispatchEvent(new BaseEvent(PlayerEventType.PAUSE));
237
241
  };
238
242
 
239
- private _onSeeking = () => {
240
- this._facade.dispatchEvent(new BaseEvent(PlayerEventType.SEEKING));
243
+ private _onSeeking = (event: NativeSyntheticEvent<NativeSeekingEvent>) => {
244
+ this._facade.dispatchEvent(new DefaultSeekingEvent(event.nativeEvent.currentTime));
241
245
  };
242
246
 
243
- private _onSeeked = () => {
244
- this._facade.dispatchEvent(new BaseEvent(PlayerEventType.SEEKED));
247
+ private _onSeeked = (event: NativeSyntheticEvent<NativeSeekedEvent>) => {
248
+ this._facade.dispatchEvent(new DefaultSeekedEvent(event.nativeEvent.currentTime));
245
249
  };
246
250
 
247
251
  private _onWaiting = () => {
@@ -10,6 +10,8 @@ import type {
10
10
  RateChangeEvent as NativeRateChangeEvent,
11
11
  ReadyStateChangeEvent as NativeReadyStateChangeEvent,
12
12
  RemoveTrackEvent,
13
+ SeekingEvent as NativeSeekingEvent,
14
+ SeekedEvent as NativeSeekedEvent,
13
15
  TextTrack as NativeTextTrack,
14
16
  TextTrackCue as NativeTextTrackCue,
15
17
  TimeUpdateEvent as NativeTimeUpdateEvent,
@@ -48,6 +50,8 @@ import {
48
50
  DefaultRateChangeEvent,
49
51
  DefaultReadyStateChangeEvent,
50
52
  DefaultResizeEvent,
53
+ DefaultSeekedEvent,
54
+ DefaultSeekingEvent,
51
55
  DefaultSegmentNotFoundEvent,
52
56
  DefaultTextTrackEvent,
53
57
  DefaultTextTrackListEvent,
@@ -211,12 +215,12 @@ export class WebEventForwarder {
211
215
  this._facade.dispatchEvent(new BaseEvent(PlayerEventType.PAUSE));
212
216
  };
213
217
 
214
- private readonly onSeeking = () => {
215
- this._facade.dispatchEvent(new BaseEvent(PlayerEventType.SEEKING));
218
+ private readonly onSeeking = (event: NativeSeekingEvent) => {
219
+ this._facade.dispatchEvent(new DefaultSeekingEvent(event.currentTime * 1e3));
216
220
  };
217
221
 
218
- private readonly onSeeked = () => {
219
- this._facade.dispatchEvent(new BaseEvent(PlayerEventType.SEEKED));
222
+ private readonly onSeeked = (event: NativeSeekedEvent) => {
223
+ this._facade.dispatchEvent(new DefaultSeekedEvent(event.currentTime * 1e3));
220
224
  };
221
225
 
222
226
  private readonly onEnded = () => {
@@ -12,6 +12,7 @@ import {
12
12
  ChromecastErrorEvent,
13
13
  DurationChangeEvent,
14
14
  ErrorEvent,
15
+ Interstitial,
15
16
  LoadedMetadataEvent,
16
17
  MediaTrack,
17
18
  MediaTrackEvent,
@@ -28,19 +29,21 @@ import {
28
29
  RateChangeEvent,
29
30
  ReadyStateChangeEvent,
30
31
  ResizeEvent,
32
+ SeekedEvent,
33
+ SeekingEvent,
31
34
  SegmentNotFoundEvent,
32
35
  TextTrack,
33
36
  TextTrackCue,
34
37
  TextTrackEvent,
35
38
  TextTrackEventType,
36
39
  TextTrackListEvent,
40
+ TheoAdsEvent,
41
+ TheoAdsEventType,
37
42
  TimeRange,
38
43
  TimeUpdateEvent,
39
44
  TrackListEventType,
40
45
  VolumeChangeEvent,
41
46
  } from 'react-native-theoplayer';
42
- import { TheoAdsEvent, TheoAdsEventType } from '../../../api/event/TheoAdsEvent';
43
- import { Interstitial } from '../../../api/theoads/interstitial/Interstitial';
44
47
 
45
48
  export class DefaultLoadedMetadataEvent extends BaseEvent<PlayerEventType.LOADED_METADATA> implements LoadedMetadataEvent {
46
49
  constructor(
@@ -136,6 +139,18 @@ export class DefaultSegmentNotFoundEvent extends BaseEvent<PlayerEventType.SEGME
136
139
  }
137
140
  }
138
141
 
142
+ export class DefaultSeekingEvent extends BaseEvent<PlayerEventType.SEEKING> implements SeekingEvent {
143
+ constructor(public readonly currentTime: number) {
144
+ super(PlayerEventType.SEEKING);
145
+ }
146
+ }
147
+
148
+ export class DefaultSeekedEvent extends BaseEvent<PlayerEventType.SEEKED> implements SeekedEvent {
149
+ constructor(public readonly currentTime: number) {
150
+ super(PlayerEventType.SEEKED);
151
+ }
152
+ }
153
+
139
154
  export class DefaultTextTrackListEvent extends BaseEvent<PlayerEventType.TEXT_TRACK_LIST> implements TextTrackListEvent {
140
155
  constructor(
141
156
  public subType: TrackListEventType,
@@ -68,6 +68,20 @@ export interface NativeReadyStateChangeEvent {
68
68
  readonly readyState: number;
69
69
  }
70
70
 
71
+ export interface NativeSeekingEvent {
72
+ /**
73
+ * The player's currentTime.
74
+ */
75
+ readonly currentTime: number;
76
+ }
77
+
78
+ export interface NativeSeekedEvent {
79
+ /**
80
+ * The player's currentTime.
81
+ */
82
+ readonly currentTime: number;
83
+ }
84
+
71
85
  export interface NativePresentationModeChangeEvent {
72
86
  /**
73
87
  * The player's new presentation mode.
package/src/manifest.json CHANGED
@@ -1 +1 @@
1
- {"version":"9.2.0","buildDate":"2025-05-20T14:26:14.067Z"}
1
+ {"version":"9.4.0","buildDate":"2025-06-12T09:31:27.640Z"}
@@ -0,0 +1,9 @@
1
+ import { ConfigPlugin } from '@expo/config-plugins';
2
+ import { withAndroidTHEOplayer } from './withTHEOplayerAndroid';
3
+
4
+ const withTHEOplayerAndroidWrapper: ConfigPlugin = (config, props: any) => {
5
+ // Apply Android modifications
6
+ return withAndroidTHEOplayer(config, props);
7
+ };
8
+
9
+ export default withTHEOplayerAndroidWrapper;