react-native-theoplayer 9.5.0 → 9.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +14 -0
- package/android/build.gradle +126 -156
- package/android/src/main/java/com/theoplayer/PlayerConfigAdapter.kt +8 -1
- package/ios/THEOplayerRCTBridge.m +15 -0
- package/ios/THEOplayerRCTDebug.swift +3 -0
- package/ios/THEOplayerRCTTrackMetadataAggregator.swift +4 -0
- package/ios/THEOplayerRCTView.swift +11 -2
- package/ios/ads/THEOplayerRCTSourceDescriptionBuilder+Ads.swift +1 -1
- package/ios/theoAds/THEOplayerRCTSourceDescriptionBuilder+TheoAds.swift +2 -2
- package/ios/theoAds/THEOplayerRCTView+TheoAds.swift +4 -4
- package/ios/theolive/THEOplayerRCTTHEOliveAPI.swift +85 -0
- package/ios/theolive/THEOplayerRCTView+THEOlive.swift +28 -0
- package/ios/theolive/THEOplayerRCTView+THEOliveConfig.swift +21 -0
- package/lib/commonjs/api/player/THEOplayer.js.map +1 -1
- package/lib/commonjs/api/theolive/TheoLiveAPI.js +2 -0
- package/lib/commonjs/api/theolive/TheoLiveAPI.js.map +1 -0
- package/lib/commonjs/api/theolive/barrel.js +11 -0
- package/lib/commonjs/api/theolive/barrel.js.map +1 -1
- package/lib/commonjs/api/track/MediaTrack.js.map +1 -1
- package/lib/commonjs/api/track/TextTrack.js.map +1 -1
- package/lib/commonjs/internal/adapter/THEOplayerAdapter.js +5 -0
- package/lib/commonjs/internal/adapter/THEOplayerAdapter.js.map +1 -1
- package/lib/commonjs/internal/adapter/THEOplayerWebAdapter.js +5 -0
- package/lib/commonjs/internal/adapter/THEOplayerWebAdapter.js.map +1 -1
- package/lib/commonjs/internal/adapter/theolive/TheoLiveNativeAdapter.js +34 -0
- package/lib/commonjs/internal/adapter/theolive/TheoLiveNativeAdapter.js.map +1 -0
- package/lib/commonjs/internal/adapter/theolive/TheoLiveWebAdapter.js +30 -0
- package/lib/commonjs/internal/adapter/theolive/TheoLiveWebAdapter.js.map +1 -0
- package/lib/commonjs/manifest.json +1 -1
- package/lib/module/api/player/THEOplayer.js.map +1 -1
- package/lib/module/api/theolive/TheoLiveAPI.js +2 -0
- package/lib/module/api/theolive/TheoLiveAPI.js.map +1 -0
- package/lib/module/api/theolive/barrel.js +1 -0
- package/lib/module/api/theolive/barrel.js.map +1 -1
- package/lib/module/api/track/MediaTrack.js.map +1 -1
- package/lib/module/api/track/TextTrack.js.map +1 -1
- package/lib/module/internal/adapter/THEOplayerAdapter.js +5 -0
- package/lib/module/internal/adapter/THEOplayerAdapter.js.map +1 -1
- package/lib/module/internal/adapter/THEOplayerWebAdapter.js +5 -0
- package/lib/module/internal/adapter/THEOplayerWebAdapter.js.map +1 -1
- package/lib/module/internal/adapter/theolive/TheoLiveNativeAdapter.js +29 -0
- package/lib/module/internal/adapter/theolive/TheoLiveNativeAdapter.js.map +1 -0
- package/lib/module/internal/adapter/theolive/TheoLiveWebAdapter.js +25 -0
- package/lib/module/internal/adapter/theolive/TheoLiveWebAdapter.js.map +1 -0
- package/lib/module/manifest.json +1 -1
- package/lib/typescript/api/ads/GoogleImaConfiguration.d.ts +8 -0
- package/lib/typescript/api/ads/GoogleImaConfiguration.d.ts.map +1 -1
- package/lib/typescript/api/player/THEOplayer.d.ts +5 -0
- package/lib/typescript/api/player/THEOplayer.d.ts.map +1 -1
- package/lib/typescript/api/theolive/TheoLiveAPI.d.ts +41 -0
- package/lib/typescript/api/theolive/TheoLiveAPI.d.ts.map +1 -0
- package/lib/typescript/api/theolive/TheoLiveConfiguration.d.ts +14 -0
- package/lib/typescript/api/theolive/TheoLiveConfiguration.d.ts.map +1 -1
- package/lib/typescript/api/theolive/barrel.d.ts +1 -0
- package/lib/typescript/api/theolive/barrel.d.ts.map +1 -1
- package/lib/typescript/api/track/MediaTrack.d.ts +6 -0
- package/lib/typescript/api/track/MediaTrack.d.ts.map +1 -1
- package/lib/typescript/api/track/TextTrack.d.ts +6 -0
- package/lib/typescript/api/track/TextTrack.d.ts.map +1 -1
- package/lib/typescript/internal/adapter/THEOplayerAdapter.d.ts +3 -1
- package/lib/typescript/internal/adapter/THEOplayerAdapter.d.ts.map +1 -1
- package/lib/typescript/internal/adapter/THEOplayerWebAdapter.d.ts +3 -2
- package/lib/typescript/internal/adapter/THEOplayerWebAdapter.d.ts.map +1 -1
- package/lib/typescript/internal/adapter/theolive/TheoLiveNativeAdapter.d.ts +8 -0
- package/lib/typescript/internal/adapter/theolive/TheoLiveNativeAdapter.d.ts.map +1 -0
- package/lib/typescript/internal/adapter/theolive/TheoLiveWebAdapter.d.ts +9 -0
- package/lib/typescript/internal/adapter/theolive/TheoLiveWebAdapter.d.ts.map +1 -0
- package/package.json +1 -1
- package/react-native-theoplayer.podspec +11 -11
- package/src/api/ads/GoogleImaConfiguration.ts +10 -0
- package/src/api/player/THEOplayer.ts +6 -0
- package/src/api/theolive/TheoLiveAPI.ts +47 -0
- package/src/api/theolive/TheoLiveConfiguration.ts +17 -0
- package/src/api/theolive/barrel.ts +1 -0
- package/src/api/track/MediaTrack.ts +7 -0
- package/src/api/track/TextTrack.ts +7 -0
- package/src/internal/adapter/THEOplayerAdapter.ts +8 -0
- package/src/internal/adapter/THEOplayerWebAdapter.ts +9 -1
- package/src/internal/adapter/theolive/TheoLiveNativeAdapter.ts +29 -0
- package/src/internal/adapter/theolive/TheoLiveWebAdapter.ts +25 -0
- package/src/manifest.json +1 -1
|
@@ -46,6 +46,13 @@ export interface MediaTrack extends Track {
|
|
|
46
46
|
*/
|
|
47
47
|
readonly label: string;
|
|
48
48
|
|
|
49
|
+
/**
|
|
50
|
+
* The unlocalized label of the media track, as extracted from the manifest.
|
|
51
|
+
*
|
|
52
|
+
* @platform ios
|
|
53
|
+
*/
|
|
54
|
+
readonly unlocalizedLabel?: string;
|
|
55
|
+
|
|
49
56
|
/**
|
|
50
57
|
* The language of the media track.
|
|
51
58
|
*/
|
|
@@ -83,6 +83,13 @@ export interface TextTrack extends Track {
|
|
|
83
83
|
*/
|
|
84
84
|
readonly kind: TextTrackKind;
|
|
85
85
|
|
|
86
|
+
/**
|
|
87
|
+
* The unlocalized label of the text track, as extracted from the manifest.
|
|
88
|
+
*
|
|
89
|
+
* @platform ios
|
|
90
|
+
*/
|
|
91
|
+
readonly unlocalizedLabel?: string;
|
|
92
|
+
|
|
86
93
|
/**
|
|
87
94
|
* The label of the text track.
|
|
88
95
|
*/
|
|
@@ -20,6 +20,7 @@ import {
|
|
|
20
20
|
SourceDescription,
|
|
21
21
|
TextTrack,
|
|
22
22
|
TheoAdsAPI,
|
|
23
|
+
TheoLiveAPI,
|
|
23
24
|
THEOplayer,
|
|
24
25
|
THEOplayerView,
|
|
25
26
|
TimeUpdateEvent,
|
|
@@ -48,6 +49,7 @@ import type { NativePlayerState } from './NativePlayerState';
|
|
|
48
49
|
import { EventBroadcastAdapter } from './broadcast/EventBroadcastAdapter';
|
|
49
50
|
import { DefaultNativePlayerState } from './DefaultNativePlayerState';
|
|
50
51
|
import { THEOAdsNativeAdapter } from './theoads/THEOAdsNativeAdapter';
|
|
52
|
+
import { TheoLiveNativeAdapter } from './theolive/TheoLiveNativeAdapter';
|
|
51
53
|
|
|
52
54
|
const NativePlayerModule = NativeModules.THEORCTPlayerModule;
|
|
53
55
|
|
|
@@ -59,6 +61,7 @@ export class THEOplayerAdapter extends DefaultEventDispatcher<PlayerEventMap> im
|
|
|
59
61
|
private readonly _castAdapter: THEOplayerNativeCastAdapter;
|
|
60
62
|
private readonly _abrAdapter: AbrAdapter;
|
|
61
63
|
private readonly _textTrackStyleAdapter: TextTrackStyleAdapter;
|
|
64
|
+
private readonly _theoliveAdapter: TheoLiveNativeAdapter;
|
|
62
65
|
private _externalEventRouter: EventBroadcastAPI | undefined = undefined;
|
|
63
66
|
private _playerVersion!: PlayerVersion;
|
|
64
67
|
|
|
@@ -71,6 +74,7 @@ export class THEOplayerAdapter extends DefaultEventDispatcher<PlayerEventMap> im
|
|
|
71
74
|
this._castAdapter = new THEOplayerNativeCastAdapter(this, this._view);
|
|
72
75
|
this._abrAdapter = new AbrAdapter(this._view);
|
|
73
76
|
this._textTrackStyleAdapter = new TextTrackStyleAdapter(this._view);
|
|
77
|
+
this._theoliveAdapter = new TheoLiveNativeAdapter(this._view);
|
|
74
78
|
|
|
75
79
|
this.addEventListener(PlayerEventType.LOADED_METADATA, this.onLoadedMetadata);
|
|
76
80
|
this.addEventListener(PlayerEventType.PAUSE, this.onPause);
|
|
@@ -210,6 +214,10 @@ export class THEOplayerAdapter extends DefaultEventDispatcher<PlayerEventMap> im
|
|
|
210
214
|
return this._theoAdsAdapter;
|
|
211
215
|
}
|
|
212
216
|
|
|
217
|
+
get theolive(): TheoLiveAPI {
|
|
218
|
+
return this._theoliveAdapter;
|
|
219
|
+
}
|
|
220
|
+
|
|
213
221
|
set autoplay(autoplay: boolean) {
|
|
214
222
|
this._state.autoplay = autoplay;
|
|
215
223
|
NativePlayerModule.setAutoplay(this._view.nativeHandle, autoplay);
|
|
@@ -2,6 +2,7 @@ import { DefaultEventDispatcher } from './event/DefaultEventDispatcher';
|
|
|
2
2
|
import {
|
|
3
3
|
AdsAPI,
|
|
4
4
|
AspectRatio,
|
|
5
|
+
BackgroundAudioConfiguration,
|
|
5
6
|
CastAPI,
|
|
6
7
|
CmcdConfiguration,
|
|
7
8
|
CmcdTransmissionMode,
|
|
@@ -17,6 +18,7 @@ import {
|
|
|
17
18
|
TextTrack,
|
|
18
19
|
TextTrackStyle,
|
|
19
20
|
TheoAdsAPI,
|
|
21
|
+
TheoLiveAPI,
|
|
20
22
|
THEOplayer,
|
|
21
23
|
} from 'react-native-theoplayer';
|
|
22
24
|
import { THEOplayerWebAdsAdapter } from './ads/THEOplayerWebAdsAdapter';
|
|
@@ -27,7 +29,6 @@ import { findNativeQualitiesByUid, fromNativeMediaTrackList } from './web/TrackU
|
|
|
27
29
|
import type { ABRConfiguration, SourceDescription } from 'src/api/barrel';
|
|
28
30
|
import { WebEventForwarder } from './WebEventForwarder';
|
|
29
31
|
import type { PiPConfiguration } from 'src/api/pip/PiPConfiguration';
|
|
30
|
-
import type { BackgroundAudioConfiguration } from 'src/api/backgroundAudio/BackgroundAudioConfiguration';
|
|
31
32
|
import { WebPresentationModeManager } from './web/WebPresentationModeManager';
|
|
32
33
|
import { WebMediaSession } from './web/WebMediaSession';
|
|
33
34
|
import { BaseEvent } from './event/BaseEvent';
|
|
@@ -36,6 +37,7 @@ import { TextTrackState } from './NativePlayerState';
|
|
|
36
37
|
import { DefaultTextTrackState } from './DefaultTextTrackState';
|
|
37
38
|
import { THEOAdsWebAdapter } from './theoads/THEOAdsWebAdapter';
|
|
38
39
|
import { CMCDConnector, Configuration, createCMCDConnector, TransmissionMode } from '@theoplayer/cmcd-connector-web';
|
|
40
|
+
import { TheoLiveWebAdapter } from './theolive/TheoLiveWebAdapter';
|
|
39
41
|
|
|
40
42
|
const defaultBackgroundAudioConfiguration: BackgroundAudioConfiguration = {
|
|
41
43
|
enabled: false,
|
|
@@ -51,6 +53,7 @@ export class THEOplayerWebAdapter extends DefaultEventDispatcher<PlayerEventMap>
|
|
|
51
53
|
private readonly _theoAdsAdapter: THEOAdsWebAdapter;
|
|
52
54
|
private readonly _textTrackState: TextTrackState;
|
|
53
55
|
private readonly _presentationModeManager: WebPresentationModeManager;
|
|
56
|
+
private readonly _theoliveAdapter: TheoLiveWebAdapter;
|
|
54
57
|
private _player: NativeChromelessPlayer | undefined;
|
|
55
58
|
private _eventForwarder: WebEventForwarder | undefined;
|
|
56
59
|
private _mediaSession: WebMediaSession | undefined = undefined;
|
|
@@ -66,6 +69,7 @@ export class THEOplayerWebAdapter extends DefaultEventDispatcher<PlayerEventMap>
|
|
|
66
69
|
this._adsAdapter = new THEOplayerWebAdsAdapter(this._player);
|
|
67
70
|
this._castAdapter = new THEOplayerWebCastAdapter(this._player);
|
|
68
71
|
this._theoAdsAdapter = new THEOAdsWebAdapter(this._player);
|
|
72
|
+
this._theoliveAdapter = new TheoLiveWebAdapter(this._player);
|
|
69
73
|
this._textTrackState = new DefaultTextTrackState(this);
|
|
70
74
|
this._eventForwarder = new WebEventForwarder(this._player, this);
|
|
71
75
|
this._presentationModeManager = new WebPresentationModeManager(this._player, this);
|
|
@@ -363,6 +367,10 @@ export class THEOplayerWebAdapter extends DefaultEventDispatcher<PlayerEventMap>
|
|
|
363
367
|
return this._castAdapter;
|
|
364
368
|
}
|
|
365
369
|
|
|
370
|
+
public get theolive(): TheoLiveAPI {
|
|
371
|
+
return this._theoliveAdapter;
|
|
372
|
+
}
|
|
373
|
+
|
|
366
374
|
public get version(): PlayerVersion {
|
|
367
375
|
return {
|
|
368
376
|
version: nativeVersion,
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { HespLatencies, TheoLiveAPI, THEOplayerView } from 'react-native-theoplayer';
|
|
2
|
+
import { NativeModules, Platform } from 'react-native';
|
|
3
|
+
|
|
4
|
+
const NativeTheoLiveModule = NativeModules.THEORCTTHEOliveModule;
|
|
5
|
+
|
|
6
|
+
export class TheoLiveNativeAdapter implements TheoLiveAPI {
|
|
7
|
+
constructor(private _player: THEOplayerView) {}
|
|
8
|
+
|
|
9
|
+
get currentLatency(): Promise<number> {
|
|
10
|
+
if (Platform.OS === 'ios') {
|
|
11
|
+
return NativeTheoLiveModule.currentLatency(this._player.nativeHandle);
|
|
12
|
+
}
|
|
13
|
+
// TODO: implement for Android
|
|
14
|
+
return Promise.resolve(-1);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
get latencies(): Promise<HespLatencies> {
|
|
18
|
+
if (Platform.OS === 'ios') {
|
|
19
|
+
return NativeTheoLiveModule.latencies(this._player.nativeHandle);
|
|
20
|
+
}
|
|
21
|
+
// TODO: implement for Android
|
|
22
|
+
return Promise.resolve({
|
|
23
|
+
engineLatency: -1,
|
|
24
|
+
distributionLatency: -1,
|
|
25
|
+
playerLatency: -1,
|
|
26
|
+
theoliveLatency: -1,
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { HespLatencies, TheoLiveAPI } from 'react-native-theoplayer';
|
|
2
|
+
import type { ChromelessPlayer } from 'theoplayer';
|
|
3
|
+
|
|
4
|
+
export class TheoLiveWebAdapter implements TheoLiveAPI {
|
|
5
|
+
constructor(private _player: ChromelessPlayer) {}
|
|
6
|
+
|
|
7
|
+
get currentLatency(): Promise<number> {
|
|
8
|
+
const currentLatency = this._player.latency.currentLatency;
|
|
9
|
+
return currentLatency ? Promise.resolve(currentLatency) : Promise.reject<number>('latency not available');
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
get latencies(): Promise<HespLatencies> {
|
|
13
|
+
const webLatencies = this._player.hesp?.latencies;
|
|
14
|
+
if (webLatencies) {
|
|
15
|
+
return Promise.resolve({
|
|
16
|
+
engineLatency: webLatencies?.engine,
|
|
17
|
+
distributionLatency: webLatencies?.distribution,
|
|
18
|
+
playerLatency: webLatencies?.player,
|
|
19
|
+
theoliveLatency: webLatencies?.theolive,
|
|
20
|
+
});
|
|
21
|
+
} else {
|
|
22
|
+
return Promise.reject<HespLatencies>('latencies not available');
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
package/src/manifest.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":"9.
|
|
1
|
+
{"version":"9.7.0","buildDate":"2025-07-01T14:45:04.561Z"}
|