react-native-theoplayer 7.2.0 → 7.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.
- package/CHANGELOG.md +22 -0
- package/android/build.gradle +1 -1
- package/android/gradle/wrapper/gradle-wrapper.jar +0 -0
- package/android/gradle/wrapper/gradle-wrapper.properties +1 -1
- package/android/src/main/java/com/theoplayer/PlayerEventEmitter.kt +6 -5
- package/android/src/main/java/com/theoplayer/ReactTHEOplayerContext.kt +6 -4
- package/android/src/main/java/com/theoplayer/ReactTHEOplayerView.kt +7 -8
- package/ios/THEOplayerRCTPlayerAPI.swift +28 -3
- package/ios/THEOplayerRCTView.swift +7 -0
- package/ios/backgroundAudio/THEOplayerRCTRemoteCommandsManager.swift +12 -4
- package/ios/backgroundAudio/THEOplayerRCTView+MediaControlConfig.swift +23 -0
- package/ios/cache/THEOplayerRCTCachingParametersBuilder.swift +1 -1
- package/lib/commonjs/api/abr/ABRConfiguration.js.map +1 -1
- package/lib/commonjs/api/barrel.js +22 -11
- package/lib/commonjs/api/barrel.js.map +1 -1
- package/lib/commonjs/api/resolution/Resolution.js +2 -0
- package/lib/commonjs/api/resolution/Resolution.js.map +1 -0
- package/lib/commonjs/api/resolution/barrel.js +17 -0
- package/lib/commonjs/api/resolution/barrel.js.map +1 -0
- package/lib/commonjs/internal/THEOplayerView.js +27 -2
- package/lib/commonjs/internal/THEOplayerView.js.map +1 -1
- package/lib/commonjs/internal/adapter/THEOplayerAdapter.js +1 -1
- package/lib/commonjs/internal/adapter/THEOplayerAdapter.js.map +1 -1
- package/lib/commonjs/internal/adapter/abr/AbrAdapter.js +17 -1
- package/lib/commonjs/internal/adapter/abr/AbrAdapter.js.map +1 -1
- package/lib/commonjs/internal/poster/Poster.js +31 -0
- package/lib/commonjs/internal/poster/Poster.js.map +1 -0
- package/lib/module/api/abr/ABRConfiguration.js.map +1 -1
- package/lib/module/api/barrel.js +1 -0
- package/lib/module/api/barrel.js.map +1 -1
- package/lib/module/api/resolution/Resolution.js +2 -0
- package/lib/module/api/resolution/Resolution.js.map +1 -0
- package/lib/module/api/resolution/barrel.js +2 -0
- package/lib/module/api/resolution/barrel.js.map +1 -0
- package/lib/module/internal/THEOplayerView.js +27 -2
- package/lib/module/internal/THEOplayerView.js.map +1 -1
- package/lib/module/internal/adapter/THEOplayerAdapter.js +1 -1
- package/lib/module/internal/adapter/THEOplayerAdapter.js.map +1 -1
- package/lib/module/internal/adapter/abr/AbrAdapter.js +17 -1
- package/lib/module/internal/adapter/abr/AbrAdapter.js.map +1 -1
- package/lib/module/internal/poster/Poster.js +23 -0
- package/lib/module/internal/poster/Poster.js.map +1 -0
- package/lib/typescript/api/abr/ABRConfiguration.d.ts +23 -0
- package/lib/typescript/api/abr/ABRConfiguration.d.ts.map +1 -1
- package/lib/typescript/api/barrel.d.ts +1 -0
- package/lib/typescript/api/barrel.d.ts.map +1 -1
- package/lib/typescript/api/media/MediaControlConfiguration.d.ts +2 -8
- package/lib/typescript/api/media/MediaControlConfiguration.d.ts.map +1 -1
- package/lib/typescript/api/player/THEOplayer.d.ts +1 -4
- package/lib/typescript/api/player/THEOplayer.d.ts.map +1 -1
- package/lib/typescript/api/resolution/Resolution.d.ts +5 -0
- package/lib/typescript/api/resolution/Resolution.d.ts.map +1 -0
- package/lib/typescript/api/resolution/barrel.d.ts +2 -0
- package/lib/typescript/api/resolution/barrel.d.ts.map +1 -0
- package/lib/typescript/api/source/SourceDescription.d.ts +0 -1
- package/lib/typescript/api/source/SourceDescription.d.ts.map +1 -1
- package/lib/typescript/internal/THEOplayerView.d.ts +5 -0
- package/lib/typescript/internal/THEOplayerView.d.ts.map +1 -1
- package/lib/typescript/internal/adapter/abr/AbrAdapter.d.ts +7 -1
- package/lib/typescript/internal/adapter/abr/AbrAdapter.d.ts.map +1 -1
- package/lib/typescript/internal/poster/Poster.d.ts +5 -0
- package/lib/typescript/internal/poster/Poster.d.ts.map +1 -0
- package/package.json +4 -4
- package/react-native-theoplayer.podspec +5 -5
- package/src/api/abr/ABRConfiguration.ts +26 -0
- package/src/api/barrel.ts +1 -0
- package/src/api/media/MediaControlConfiguration.ts +2 -8
- package/src/api/player/THEOplayer.ts +1 -4
- package/src/api/resolution/Resolution.ts +5 -0
- package/src/api/resolution/barrel.ts +1 -0
- package/src/api/source/SourceDescription.ts +0 -1
- package/src/internal/THEOplayerView.tsx +22 -1
- package/src/internal/adapter/THEOplayerAdapter.ts +1 -1
- package/src/internal/adapter/abr/AbrAdapter.ts +23 -1
- package/src/internal/poster/Poster.tsx +14 -0
|
@@ -12,7 +12,7 @@ import type { PresentationMode } from '../presentation/PresentationMode';
|
|
|
12
12
|
import type { PiPConfiguration } from '../pip/PiPConfiguration';
|
|
13
13
|
import type { BackgroundAudioConfiguration } from '../backgroundAudio/BackgroundAudioConfiguration';
|
|
14
14
|
import type { PlayerVersion } from './PlayerVersion';
|
|
15
|
-
import type { EventBroadcastAPI } from
|
|
15
|
+
import type { EventBroadcastAPI } from '../broadcast/EventBroadcastAPI';
|
|
16
16
|
export type PreloadType = 'none' | 'metadata' | 'auto' | '';
|
|
17
17
|
/**
|
|
18
18
|
* Specifies an aspect ratio for the player.
|
|
@@ -36,9 +36,6 @@ export type NativeHandleType = unknown;
|
|
|
36
36
|
export interface THEOplayer extends EventDispatcher<PlayerEventMap> {
|
|
37
37
|
/**
|
|
38
38
|
* The player's adaptive bitrate (ABR) configuration.
|
|
39
|
-
*
|
|
40
|
-
* @remarks
|
|
41
|
-
* <br/> - This property is supported on Android & Web platforms only.
|
|
42
39
|
*/
|
|
43
40
|
readonly abr: ABRConfiguration | undefined;
|
|
44
41
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"THEOplayer.d.ts","sourceRoot":"","sources":["../../../../src/api/player/THEOplayer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,iDAAiD,CAAC;AACpG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAExE,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,UAAU,GAAG,MAAM,GAAG,EAAE,CAAC;AAE5D;;;;;;;;;GASG;AACH,oBAAY,WAAW;IACrB,GAAG,QAAQ;IACX,IAAI,SAAS;IACb,WAAW,eAAe;CAC3B;AAED,MAAM,MAAM,gBAAgB,GAAG,OAAO,CAAC;AAEvC;;GAEG;AACH,MAAM,WAAW,UAAW,SAAQ,eAAe,CAAC,cAAc,CAAC;IACjE
|
|
1
|
+
{"version":3,"file":"THEOplayer.d.ts","sourceRoot":"","sources":["../../../../src/api/player/THEOplayer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Resolution.d.ts","sourceRoot":"","sources":["../../../../src/api/resolution/Resolution.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAEvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"barrel.d.ts","sourceRoot":"","sources":["../../../../src/api/resolution/barrel.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SourceDescription.d.ts","sourceRoot":"","sources":["../../../../src/api/source/SourceDescription.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAClF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAC/E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,KAAK,EAAE,kCAAkC,EAAE,MAAM,+CAA+C,CAAC;AACxG,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAE7E,MAAM,MAAM,MAAM,GAAG,WAAW,CAAC;AAEjC;;;;;;;GAOG;AACH,MAAM,MAAM,OAAO,GAAG,MAAM,GAAG,MAAM,EAAE,CAAC;AAExC;;;;;;;;;;GAUG;AACH,MAAM,MAAM,kBAAkB,GAAG,EAAE,GAAG,WAAW,GAAG,iBAAiB,CAAC;AAEtE;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,GAAG,CAAC,EAAE,aAAa,EAAE,CAAC;IAEtB;;OAEG;IACH,iBAAiB,CAAC,EAAE,gBAAgB,CAAC;IAErC
|
|
1
|
+
{"version":3,"file":"SourceDescription.d.ts","sourceRoot":"","sources":["../../../../src/api/source/SourceDescription.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAClF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAC/E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,KAAK,EAAE,kCAAkC,EAAE,MAAM,+CAA+C,CAAC;AACxG,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAE7E,MAAM,MAAM,MAAM,GAAG,WAAW,CAAC;AAEjC;;;;;;;GAOG;AACH,MAAM,MAAM,OAAO,GAAG,MAAM,GAAG,MAAM,EAAE,CAAC;AAExC;;;;;;;;;;GAUG;AACH,MAAM,MAAM,kBAAkB,GAAG,EAAE,GAAG,WAAW,GAAG,iBAAiB,CAAC;AAEtE;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,GAAG,CAAC,EAAE,aAAa,EAAE,CAAC;IAEtB;;OAEG;IACH,iBAAiB,CAAC,EAAE,gBAAgB,CAAC;IAErC;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,oBAAoB,EAAE,CAAC;IAEpC;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,mBAAmB,CAAC;IAE/B;;OAEG;IACH,SAAS,CAAC,EAAE,oBAAoB,EAAE,CAAC;CACpC;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAkB,SAAQ,mBAAmB;IAC5D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6CG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;;;;;;;;;;OAYG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IAEZ;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;;OAKG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;;OAIG;IAEH,EAAE,CAAC,EAAE,MAAM,CAAC;IAEZ;;;;;;;OAOG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;;;;;OAQG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;;;GAIG;AACH,MAAM,WAAW,UAAU;IAEzB;;;;OAIG;IACH,WAAW,CAAC,EAAE,kBAAkB,CAAC;IAEjC;;;;;;;;OAQG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;;;;;;OAQG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,yBAAyB,CAAC;IAEjC;;;;;;OAMG;IACH,GAAG,CAAC,EAAE,wBAAwB,CAAC;CAChC;AAED;;;;GAIG;AACH,MAAM,WAAW,WAAY,SAAQ,UAAU;IAC7C;;;;;;OAMG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;;;;;;;;OASG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,gBAAgB,CAAC;IAErC;;;;;OAKG;IACH,IAAI,CAAC,EAAE,kCAAkC,CAAC;CAC3C"}
|
|
@@ -5,6 +5,8 @@ interface THEOplayerRCTViewState {
|
|
|
5
5
|
error?: PlayerError;
|
|
6
6
|
presentationMode?: PresentationMode | undefined;
|
|
7
7
|
screenSize: ScaledSize;
|
|
8
|
+
posterActive: boolean;
|
|
9
|
+
poster: string | undefined;
|
|
8
10
|
}
|
|
9
11
|
export declare class THEOplayerView extends PureComponent<React.PropsWithChildren<THEOplayerViewProps>, THEOplayerRCTViewState> {
|
|
10
12
|
private readonly _root;
|
|
@@ -47,6 +49,9 @@ export declare class THEOplayerView extends PureComponent<React.PropsWithChildre
|
|
|
47
49
|
private _onCastEvent;
|
|
48
50
|
private _onPresentationModeChange;
|
|
49
51
|
private _onResize;
|
|
52
|
+
private _updatePoster;
|
|
53
|
+
private _showPoster;
|
|
54
|
+
private _hidePoster;
|
|
50
55
|
render(): JSX.Element;
|
|
51
56
|
}
|
|
52
57
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"THEOplayerView.d.ts","sourceRoot":"","sources":["../../../src/internal/THEOplayerView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAc7C,OAAO,KAAK,EAAE,UAAU,EAAuB,MAAM,cAAc,CAAC;AACpE,OAAO,EAAuC,WAAW,EAAE,gBAAgB,EAAgB,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"THEOplayerView.d.ts","sourceRoot":"","sources":["../../../src/internal/THEOplayerView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAc7C,OAAO,KAAK,EAAE,UAAU,EAAuB,MAAM,cAAc,CAAC;AACpE,OAAO,EAAuC,WAAW,EAAE,gBAAgB,EAAgB,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AA2FhJ,UAAU,sBAAsB;IAC9B,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,gBAAgB,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;IAChD,UAAU,EAAE,UAAU,CAAC;IACvB,YAAY,EAAE,OAAO,CAAC;IACtB,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5B;AAID,qBAAa,cAAe,SAAQ,aAAa,CAAC,KAAK,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,EAAE,sBAAsB,CAAC;IACrH,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAiD;IACvE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoB;IAC5C,OAAO,CAAC,kBAAkB,CAAC,CAAkC;IAE7D,OAAO,CAAC,MAAM,CAAC,YAAY,CAMzB;gBAEU,KAAK,EAAE,mBAAmB;IAOtC,iBAAiB;IAIjB,oBAAoB;IAkBpB,IAAW,YAAY,IAAI,MAAM,CAEhC;IAED,OAAO,CAAC,KAAK;IAOb,OAAO,CAAC,oBAAoB,CAE1B;IAEF,OAAO,CAAC,oBAAoB,CAK1B;IAEF,OAAO,CAAC,eAAe,CAKrB;IAEF,OAAO,CAAC,YAAY,CAElB;IAEF,OAAO,CAAC,aAAa,CAEnB;IAEF,OAAO,CAAC,iBAAiB,CAavB;IAEF,OAAO,CAAC,eAAe,CAErB;IAEF,OAAO,CAAC,QAAQ,CAId;IAEF,OAAO,CAAC,WAAW,CAEjB;IAEF,OAAO,CAAC,UAAU,CAEhB;IAEF,OAAO,CAAC,OAAO,CAGb;IAEF,OAAO,CAAC,UAAU,CAEhB;IAEF,OAAO,CAAC,QAAQ,CAEd;IAEF,OAAO,CAAC,UAAU,CAEhB;IAEF,OAAO,CAAC,SAAS,CAEf;IAEF,OAAO,CAAC,UAAU,CAEhB;IAEF,OAAO,CAAC,QAAQ,CAEd;IAEF,OAAO,CAAC,kBAAkB,CAExB;IAEF,OAAO,CAAC,aAAa,CAEnB;IAEF,OAAO,CAAC,iBAAiB,CAEvB;IAEF,OAAO,CAAC,aAAa,CAEnB;IAEF,OAAO,CAAC,kBAAkB,CAGxB;IAEF,OAAO,CAAC,qBAAqB,CAG3B;IAEF,OAAO,CAAC,iBAAiB,CAOvB;IAEF,OAAO,CAAC,YAAY;IAiBpB,OAAO,CAAC,sBAAsB,CAK5B;IAEF,OAAO,CAAC,kBAAkB,CAUxB;IAEF,OAAO,CAAC,UAAU,CAGhB;IAEF,OAAO,CAAC,YAAY,CAYlB;IAEF,OAAO,CAAC,yBAAyB,CAS/B;IAEF,OAAO,CAAC,SAAS,CAEf;IAEF,OAAO,CAAC,aAAa,CAEnB;IAEF,OAAO,CAAC,WAAW,CAEjB;IAEF,OAAO,CAAC,WAAW,CAEjB;IAEK,MAAM,IAAI,GAAG,CAAC,OAAO;CA6C7B"}
|
|
@@ -1,13 +1,19 @@
|
|
|
1
|
-
import type { ABRConfiguration, ABRStrategy, THEOplayerView } from 'react-native-theoplayer';
|
|
1
|
+
import type { ABRConfiguration, ABRStrategy, Resolution, THEOplayerView } from 'react-native-theoplayer';
|
|
2
2
|
export declare class AbrAdapter implements ABRConfiguration {
|
|
3
3
|
private readonly _view;
|
|
4
4
|
private _strategy;
|
|
5
5
|
private _targetBuffer;
|
|
6
|
+
private _preferredPeakBitRate;
|
|
7
|
+
private _preferredMaximumResolution;
|
|
6
8
|
constructor(view: THEOplayerView);
|
|
7
9
|
get strategy(): ABRStrategy | undefined;
|
|
8
10
|
set strategy(strategy: ABRStrategy | undefined);
|
|
9
11
|
get targetBuffer(): number | undefined;
|
|
10
12
|
set targetBuffer(targetBuffer: number | undefined);
|
|
13
|
+
get preferredPeakBitRate(): number | undefined;
|
|
14
|
+
set preferredPeakBitRate(preferredPeakBitRate: number | undefined);
|
|
15
|
+
get preferredMaximumResolution(): Resolution | undefined;
|
|
16
|
+
set preferredMaximumResolution(preferredMaximumResolution: Resolution | undefined);
|
|
11
17
|
private updateConfig;
|
|
12
18
|
}
|
|
13
19
|
//# sourceMappingURL=AbrAdapter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbrAdapter.d.ts","sourceRoot":"","sources":["../../../../../src/internal/adapter/abr/AbrAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"AbrAdapter.d.ts","sourceRoot":"","sources":["../../../../../src/internal/adapter/abr/AbrAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAKzG,qBAAa,UAAW,YAAW,gBAAgB;IACjD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAiB;IACvC,OAAO,CAAC,SAAS,CAA0B;IAC3C,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,qBAAqB,CAAqB;IAClD,OAAO,CAAC,2BAA2B,CAAyB;gBAEhD,IAAI,EAAE,cAAc;IAIhC,IAAI,QAAQ,IAAI,WAAW,GAAG,SAAS,CAEtC;IAED,IAAI,QAAQ,CAAC,QAAQ,EAAE,WAAW,GAAG,SAAS,EAG7C;IAED,IAAI,YAAY,IAAI,MAAM,GAAG,SAAS,CAErC;IAED,IAAI,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,EAGhD;IAED,IAAI,oBAAoB,IAAI,MAAM,GAAG,SAAS,CAE7C;IAED,IAAI,oBAAoB,CAAC,oBAAoB,EAAE,MAAM,GAAG,SAAS,EAGhE;IAED,IAAI,0BAA0B,IAAI,UAAU,GAAG,SAAS,CAEvD;IAED,IAAI,0BAA0B,CAAC,0BAA0B,EAAE,UAAU,GAAG,SAAS,EAGhF;IAED,OAAO,CAAC,YAAY;CAQrB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Poster.d.ts","sourceRoot":"","sources":["../../../../src/internal/poster/Poster.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,eAAO,MAAM,MAAM,UAAW;IAAE,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,sBAUxD,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-theoplayer",
|
|
3
|
-
"version": "7.
|
|
3
|
+
"version": "7.4.0",
|
|
4
4
|
"description": "A THEOplayer video component for react-native.",
|
|
5
5
|
"main": "lib/commonjs/index",
|
|
6
6
|
"module": "lib/module/index",
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
"registry": "https://registry.npmjs.org/"
|
|
48
48
|
},
|
|
49
49
|
"devDependencies": {
|
|
50
|
-
"@react-native/eslint-config": "0.
|
|
50
|
+
"@react-native/eslint-config": "^0.74.83",
|
|
51
51
|
"@types/react": "^18.2.24",
|
|
52
52
|
"@types/react-native": "^0.73.0",
|
|
53
53
|
"eslint": "^8.56.0",
|
|
@@ -55,9 +55,9 @@
|
|
|
55
55
|
"pod-install": "^0.1.39",
|
|
56
56
|
"prettier": "^3.2.5",
|
|
57
57
|
"react": "^18.2.0",
|
|
58
|
-
"react-native": "^0.
|
|
58
|
+
"react-native": "^0.74.1",
|
|
59
59
|
"react-native-builder-bob": "^0.23.2",
|
|
60
|
-
"theoplayer": "^7.
|
|
60
|
+
"theoplayer": "^7.4.1",
|
|
61
61
|
"typedoc": "^0.25.12",
|
|
62
62
|
"typedoc-plugin-external-resolver": "^1.0.3",
|
|
63
63
|
"typedoc-plugin-mdn-links": "^3.1.18",
|
|
@@ -32,23 +32,23 @@ Pod::Spec.new do |s|
|
|
|
32
32
|
s.dependency "React-Core"
|
|
33
33
|
|
|
34
34
|
# THEOplayer core Dependency
|
|
35
|
-
s.dependency "THEOplayerSDK-core", "~> 7.
|
|
35
|
+
s.dependency "THEOplayerSDK-core", "~> 7.4"
|
|
36
36
|
|
|
37
37
|
if theofeatures.include?("GOOGLE_IMA")
|
|
38
38
|
puts "Adding THEOplayer-Integration-GoogleIMA"
|
|
39
|
-
s.dependency "THEOplayer-Integration-GoogleIMA/Base", "~> 7.
|
|
40
|
-
s.dependency "THEOplayer-Integration-GoogleIMA/Dependencies", "~> 7.
|
|
39
|
+
s.dependency "THEOplayer-Integration-GoogleIMA/Base", "~> 7.4"
|
|
40
|
+
s.dependency "THEOplayer-Integration-GoogleIMA/Dependencies", "~> 7.4"
|
|
41
41
|
end
|
|
42
42
|
|
|
43
43
|
if theofeatures.include?("CHROMECAST")
|
|
44
44
|
puts "Adding THEOplayer-Integration-GoogleCast"
|
|
45
|
-
s.ios.dependency "THEOplayer-Integration-GoogleCast/Base", "~> 7.
|
|
45
|
+
s.ios.dependency "THEOplayer-Integration-GoogleCast/Base", "~> 7.4"
|
|
46
46
|
s.ios.dependency "google-cast-sdk-dynamic-xcframework", "~> 4.8"
|
|
47
47
|
end
|
|
48
48
|
|
|
49
49
|
if theofeatures.include?("SIDELOADED_TEXTTRACKS")
|
|
50
50
|
puts "Adding THEOplayer-Connector-SideloadedSubtitle"
|
|
51
|
-
s.dependency "THEOplayer-Connector-SideloadedSubtitle", "~> 7.
|
|
51
|
+
s.dependency "THEOplayer-Connector-SideloadedSubtitle", "~> 7.4"
|
|
52
52
|
end
|
|
53
53
|
|
|
54
54
|
end
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { Resolution } from '../resolution/Resolution';
|
|
2
|
+
|
|
1
3
|
/**
|
|
2
4
|
* The adaptive bitrate strategy of the first segment, represented by a value from the following list:
|
|
3
5
|
* <br/> - `'performance'`: The player will optimize ABR behavior to focus on the performance of the player. This strategy initiates playback with the lowest quality suitable for the device which means faster start-up time.
|
|
@@ -62,6 +64,8 @@ export interface ABRConfiguration {
|
|
|
62
64
|
* The adaptive bitrate strategy.
|
|
63
65
|
*
|
|
64
66
|
* @defaultValue `'bandwidth'`
|
|
67
|
+
* @remarks
|
|
68
|
+
* <br/> - This property is currently supported on Web and Android platforms only.
|
|
65
69
|
*/
|
|
66
70
|
strategy?: ABRStrategy;
|
|
67
71
|
|
|
@@ -104,4 +108,26 @@ export interface ABRConfiguration {
|
|
|
104
108
|
* <br/> - This property is currently supported on Web platforms only.
|
|
105
109
|
*/
|
|
106
110
|
readonly maxBufferLength?: number;
|
|
111
|
+
|
|
112
|
+
/**
|
|
113
|
+
* The desired limit of network bandwidth consumption for this item.
|
|
114
|
+
*
|
|
115
|
+
* Set preferredPeakBitRate to non-zero to indicate that the player should attempt to limit item playback to that bit rate, expressed in bits per second.
|
|
116
|
+
* If network bandwidth consumption cannot be lowered to meet the preferredPeakBitRate, it will be reduced as much as possible while continuing to play the item.
|
|
117
|
+
*
|
|
118
|
+
* @remarks
|
|
119
|
+
* <br/> - This property is supported on iOS platforms only.
|
|
120
|
+
*/
|
|
121
|
+
preferredPeakBitRate?: number;
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* A preferred upper limit on the resolution of the video to be downloaded (or otherwise transferred) and rendered by the player.
|
|
125
|
+
*
|
|
126
|
+
* The default value is (0,0), which indicates that the client enforces no limit on video resolution. Other values indicate a preferred maximum video resolution.
|
|
127
|
+
* It only applies to HTTP Live Streaming asset.
|
|
128
|
+
*
|
|
129
|
+
* @remarks
|
|
130
|
+
* <br/> - This property is supported on iOS platforms only.
|
|
131
|
+
*/
|
|
132
|
+
preferredMaximumResolution?: Resolution;
|
|
107
133
|
}
|
package/src/api/barrel.ts
CHANGED
|
@@ -12,6 +12,7 @@ export * from './media/barrel';
|
|
|
12
12
|
export * from './drm/barrel';
|
|
13
13
|
export * from './source/barrel';
|
|
14
14
|
export * from './timeranges/barrel';
|
|
15
|
+
export * from './resolution/barrel';
|
|
15
16
|
export * from './track/barrel';
|
|
16
17
|
export * from './ui/barrel';
|
|
17
18
|
export * from './utils/barrel';
|
|
@@ -27,20 +27,14 @@ export interface MediaControlConfiguration {
|
|
|
27
27
|
/**
|
|
28
28
|
* The amount of seconds the player will skip forward.
|
|
29
29
|
*
|
|
30
|
-
* @defaultValue 5
|
|
31
|
-
*
|
|
32
|
-
* @remarks
|
|
33
|
-
* <br/> - This property only applies to Web and Android.
|
|
30
|
+
* @defaultValue 5 on Web and android, 15 on iOS.
|
|
34
31
|
*/
|
|
35
32
|
readonly skipForwardInterval?: number;
|
|
36
33
|
|
|
37
34
|
/**
|
|
38
35
|
* The amount of seconds the player will skip backward.
|
|
39
36
|
*
|
|
40
|
-
* @defaultValue 5
|
|
41
|
-
*
|
|
42
|
-
* @remarks
|
|
43
|
-
* <br/> - This property only applies to Web and Android.
|
|
37
|
+
* @defaultValue 5 on Web and android, 15 on iOS.
|
|
44
38
|
*/
|
|
45
39
|
readonly skipBackwardInterval?: number;
|
|
46
40
|
}
|
|
@@ -12,7 +12,7 @@ import type { PresentationMode } from '../presentation/PresentationMode';
|
|
|
12
12
|
import type { PiPConfiguration } from '../pip/PiPConfiguration';
|
|
13
13
|
import type { BackgroundAudioConfiguration } from '../backgroundAudio/BackgroundAudioConfiguration';
|
|
14
14
|
import type { PlayerVersion } from './PlayerVersion';
|
|
15
|
-
import type { EventBroadcastAPI } from
|
|
15
|
+
import type { EventBroadcastAPI } from '../broadcast/EventBroadcastAPI';
|
|
16
16
|
|
|
17
17
|
export type PreloadType = 'none' | 'metadata' | 'auto' | '';
|
|
18
18
|
|
|
@@ -40,9 +40,6 @@ export type NativeHandleType = unknown;
|
|
|
40
40
|
export interface THEOplayer extends EventDispatcher<PlayerEventMap> {
|
|
41
41
|
/**
|
|
42
42
|
* The player's adaptive bitrate (ABR) configuration.
|
|
43
|
-
*
|
|
44
|
-
* @remarks
|
|
45
|
-
* <br/> - This property is supported on Android & Web platforms only.
|
|
46
43
|
*/
|
|
47
44
|
readonly abr: ABRConfiguration | undefined;
|
|
48
45
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './Resolution';
|
|
@@ -65,6 +65,7 @@ import type {
|
|
|
65
65
|
import type { NativeAdEvent } from './adapter/event/native/NativeAdEvent';
|
|
66
66
|
import { THEOplayerAdapter } from './adapter/THEOplayerAdapter';
|
|
67
67
|
import { getFullscreenSize } from './utils/Dimensions';
|
|
68
|
+
import { Poster } from './poster/Poster';
|
|
68
69
|
|
|
69
70
|
const INVALID_HANDLE = -1;
|
|
70
71
|
|
|
@@ -107,6 +108,8 @@ interface THEOplayerRCTViewState {
|
|
|
107
108
|
error?: PlayerError;
|
|
108
109
|
presentationMode?: PresentationMode | undefined;
|
|
109
110
|
screenSize: ScaledSize;
|
|
111
|
+
posterActive: boolean;
|
|
112
|
+
poster: string | undefined;
|
|
110
113
|
}
|
|
111
114
|
|
|
112
115
|
type THEOplayerViewNativeComponent = HostComponent<THEOplayerRCTViewProps>;
|
|
@@ -120,6 +123,8 @@ export class THEOplayerView extends PureComponent<React.PropsWithChildren<THEOpl
|
|
|
120
123
|
error: undefined,
|
|
121
124
|
presentationMode: PresentationMode.inline,
|
|
122
125
|
screenSize: getFullscreenSize(),
|
|
126
|
+
posterActive: false,
|
|
127
|
+
poster: undefined,
|
|
123
128
|
};
|
|
124
129
|
|
|
125
130
|
constructor(props: THEOplayerViewProps) {
|
|
@@ -176,6 +181,8 @@ export class THEOplayerView extends PureComponent<React.PropsWithChildren<THEOpl
|
|
|
176
181
|
private _onSourceChange = () => {
|
|
177
182
|
this.reset();
|
|
178
183
|
this._facade.dispatchEvent(new BaseEvent(PlayerEventType.SOURCE_CHANGE));
|
|
184
|
+
this._updatePoster();
|
|
185
|
+
this._showPoster();
|
|
179
186
|
};
|
|
180
187
|
|
|
181
188
|
private _onLoadStart = () => {
|
|
@@ -221,6 +228,7 @@ export class THEOplayerView extends PureComponent<React.PropsWithChildren<THEOpl
|
|
|
221
228
|
|
|
222
229
|
private _onPlay = () => {
|
|
223
230
|
this._facade.dispatchEvent(new BaseEvent(PlayerEventType.PLAY));
|
|
231
|
+
this._hidePoster();
|
|
224
232
|
};
|
|
225
233
|
|
|
226
234
|
private _onPlaying = () => {
|
|
@@ -352,9 +360,21 @@ export class THEOplayerView extends PureComponent<React.PropsWithChildren<THEOpl
|
|
|
352
360
|
this._facade.dispatchEvent(new DefaultResizeEvent(event.nativeEvent.width, event.nativeEvent.height));
|
|
353
361
|
};
|
|
354
362
|
|
|
363
|
+
private _updatePoster = () => {
|
|
364
|
+
this.setState({ poster: this._facade.source?.poster });
|
|
365
|
+
};
|
|
366
|
+
|
|
367
|
+
private _showPoster = () => {
|
|
368
|
+
this.setState({ posterActive: true });
|
|
369
|
+
};
|
|
370
|
+
|
|
371
|
+
private _hidePoster = () => {
|
|
372
|
+
this.setState({ posterActive: false });
|
|
373
|
+
};
|
|
374
|
+
|
|
355
375
|
public render(): JSX.Element {
|
|
356
376
|
const { config, style, children } = this.props;
|
|
357
|
-
const { presentationMode, screenSize: fullscreenSize } = this.state;
|
|
377
|
+
const { presentationMode, screenSize: fullscreenSize, posterActive, poster } = this.state;
|
|
358
378
|
|
|
359
379
|
return (
|
|
360
380
|
<View style={[styles.base, style, presentationMode === PresentationMode.fullscreen ? fullscreenSize : {}]}>
|
|
@@ -392,6 +412,7 @@ export class THEOplayerView extends PureComponent<React.PropsWithChildren<THEOpl
|
|
|
392
412
|
onNativePresentationModeChange={this._onPresentationModeChange}
|
|
393
413
|
onNativeResize={this._onResize}
|
|
394
414
|
/>
|
|
415
|
+
{posterActive && <Poster uri={poster} />}
|
|
395
416
|
{children}
|
|
396
417
|
</View>
|
|
397
418
|
);
|
|
@@ -198,7 +198,7 @@ export class THEOplayerAdapter extends DefaultEventDispatcher<PlayerEventMap> im
|
|
|
198
198
|
};
|
|
199
199
|
|
|
200
200
|
get abr(): ABRConfiguration | undefined {
|
|
201
|
-
return
|
|
201
|
+
return this._abrAdapter;
|
|
202
202
|
}
|
|
203
203
|
|
|
204
204
|
get ads(): AdsAPI {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ABRConfiguration, ABRStrategy, THEOplayerView } from 'react-native-theoplayer';
|
|
1
|
+
import type { ABRConfiguration, ABRStrategy, Resolution, THEOplayerView } from 'react-native-theoplayer';
|
|
2
2
|
import { NativeModules } from 'react-native';
|
|
3
3
|
|
|
4
4
|
const NativePlayerModule = NativeModules.THEORCTPlayerModule;
|
|
@@ -7,6 +7,8 @@ export class AbrAdapter implements ABRConfiguration {
|
|
|
7
7
|
private readonly _view: THEOplayerView;
|
|
8
8
|
private _strategy: ABRStrategy | undefined;
|
|
9
9
|
private _targetBuffer: number | undefined;
|
|
10
|
+
private _preferredPeakBitRate: number | undefined;
|
|
11
|
+
private _preferredMaximumResolution: Resolution | undefined;
|
|
10
12
|
|
|
11
13
|
constructor(view: THEOplayerView) {
|
|
12
14
|
this._view = view;
|
|
@@ -30,10 +32,30 @@ export class AbrAdapter implements ABRConfiguration {
|
|
|
30
32
|
this.updateConfig();
|
|
31
33
|
}
|
|
32
34
|
|
|
35
|
+
get preferredPeakBitRate(): number | undefined {
|
|
36
|
+
return this._preferredPeakBitRate;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
set preferredPeakBitRate(preferredPeakBitRate: number | undefined) {
|
|
40
|
+
this._preferredPeakBitRate = preferredPeakBitRate;
|
|
41
|
+
this.updateConfig();
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
get preferredMaximumResolution(): Resolution | undefined {
|
|
45
|
+
return this._preferredMaximumResolution;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
set preferredMaximumResolution(preferredMaximumResolution: Resolution | undefined) {
|
|
49
|
+
this._preferredMaximumResolution = preferredMaximumResolution;
|
|
50
|
+
this.updateConfig();
|
|
51
|
+
}
|
|
52
|
+
|
|
33
53
|
private updateConfig() {
|
|
34
54
|
NativePlayerModule.setABRConfig(this._view.nativeHandle, {
|
|
35
55
|
targetBuffer: this._targetBuffer,
|
|
36
56
|
strategy: this._strategy,
|
|
57
|
+
preferredPeakBitRate: this._preferredPeakBitRate,
|
|
58
|
+
preferredMaximumResolution: this._preferredMaximumResolution,
|
|
37
59
|
});
|
|
38
60
|
}
|
|
39
61
|
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Image, StyleSheet, View } from 'react-native';
|
|
3
|
+
|
|
4
|
+
export const Poster = (props: { uri: string | undefined }) => {
|
|
5
|
+
const { uri } = props;
|
|
6
|
+
if (!uri) {
|
|
7
|
+
return <></>;
|
|
8
|
+
}
|
|
9
|
+
return (
|
|
10
|
+
<View style={[StyleSheet.absoluteFill, { justifyContent: 'center' }]}>
|
|
11
|
+
<Image style={{ aspectRatio: 16 / 9 }} source={{ uri }} />
|
|
12
|
+
</View>
|
|
13
|
+
);
|
|
14
|
+
};
|