react-native-theoplayer 8.10.0 → 8.11.1
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 +17 -1
- package/lib/commonjs/internal/THEOplayerView.web.js +2 -11
- package/lib/commonjs/internal/THEOplayerView.web.js.map +1 -1
- package/lib/commonjs/internal/adapter/web/WebPresentationModeManager.js +6 -2
- package/lib/commonjs/internal/adapter/web/WebPresentationModeManager.js.map +1 -1
- package/lib/commonjs/manifest.json +1 -1
- package/lib/module/internal/THEOplayerView.web.js +2 -11
- package/lib/module/internal/THEOplayerView.web.js.map +1 -1
- package/lib/module/internal/adapter/web/WebPresentationModeManager.js +6 -2
- package/lib/module/internal/adapter/web/WebPresentationModeManager.js.map +1 -1
- package/lib/module/manifest.json +1 -1
- package/lib/typescript/api/config/PlayerConfiguration.d.ts +1 -0
- package/lib/typescript/api/config/PlayerConfiguration.d.ts.map +1 -1
- package/lib/typescript/internal/THEOplayerView.web.d.ts.map +1 -1
- package/lib/typescript/internal/adapter/web/WebPresentationModeManager.d.ts.map +1 -1
- package/package.json +1 -1
- package/react-native-theoplayer.podspec +1 -2
- package/src/api/config/PlayerConfiguration.ts +1 -0
- package/src/internal/THEOplayerView.web.tsx +2 -12
- package/src/internal/adapter/web/WebPresentationModeManager.ts +6 -2
- package/src/manifest.json +1 -1
- package/lib/commonjs/internal/utils/ServiceWorkerUtils.js +0 -44
- package/lib/commonjs/internal/utils/ServiceWorkerUtils.js.map +0 -1
- package/lib/module/internal/utils/ServiceWorkerUtils.js +0 -36
- package/lib/module/internal/utils/ServiceWorkerUtils.js.map +0 -1
- package/lib/typescript/internal/utils/ServiceWorkerUtils.d.ts +0 -4
- package/lib/typescript/internal/utils/ServiceWorkerUtils.d.ts.map +0 -1
- package/src/internal/utils/ServiceWorkerUtils.ts +0 -39
package/CHANGELOG.md
CHANGED
|
@@ -5,9 +5,25 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.1.0/)
|
|
6
6
|
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [8.11.1] - 24-12-18
|
|
9
|
+
|
|
10
|
+
### Fixed
|
|
11
|
+
|
|
12
|
+
- Fixed the picture-in-picture presentationMode for THEOlive sources on Web.
|
|
13
|
+
|
|
14
|
+
### Changed
|
|
15
|
+
|
|
16
|
+
- Deprecated the use of the `enableTHEOlive` flag in `PlayerConfiguration` as THEOlive support is always enabled.
|
|
17
|
+
|
|
18
|
+
## [8.11.0] - 24-12-13
|
|
19
|
+
|
|
20
|
+
### Added
|
|
21
|
+
|
|
22
|
+
- Added support for THEOlive on tvOS.
|
|
23
|
+
|
|
8
24
|
## [8.10.0] - 24-12-06
|
|
9
25
|
|
|
10
|
-
|
|
26
|
+
### Added
|
|
11
27
|
|
|
12
28
|
- Added support for THEOlive on iOS.
|
|
13
29
|
|
|
@@ -7,7 +7,6 @@ exports.THEOplayerView = THEOplayerView;
|
|
|
7
7
|
var _react = _interopRequireWildcard(require("react"));
|
|
8
8
|
var _theoplayer = require("theoplayer");
|
|
9
9
|
var _THEOplayerWebAdapter = require("./adapter/THEOplayerWebAdapter");
|
|
10
|
-
var _ServiceWorkerUtils = require("./utils/ServiceWorkerUtils");
|
|
11
10
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
12
11
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
13
12
|
function THEOplayerView(props) {
|
|
@@ -18,14 +17,6 @@ function THEOplayerView(props) {
|
|
|
18
17
|
const player = (0, _react.useRef)(null);
|
|
19
18
|
const adapter = (0, _react.useRef)(null);
|
|
20
19
|
const container = (0, _react.useRef)(null);
|
|
21
|
-
const preparePlayer = async adapter => {
|
|
22
|
-
if (config?.enableTHEOlive == true && (0, _ServiceWorkerUtils.browserCanPlayHLSAndHasNoMSE)()) {
|
|
23
|
-
await (0, _ServiceWorkerUtils.registerServiceWorker)(props.config?.libraryLocation);
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
// Notify the player is ready
|
|
27
|
-
props.onPlayerReady?.(adapter);
|
|
28
|
-
};
|
|
29
20
|
(0, _react.useEffect)(() => {
|
|
30
21
|
// Create player inside container.
|
|
31
22
|
if (container.current) {
|
|
@@ -66,8 +57,8 @@ function THEOplayerView(props) {
|
|
|
66
57
|
// @ts-ignore
|
|
67
58
|
window.nativePlayer = player;
|
|
68
59
|
|
|
69
|
-
//
|
|
70
|
-
|
|
60
|
+
// Notify the player is ready
|
|
61
|
+
props.onPlayerReady?.(adapter.current);
|
|
71
62
|
}
|
|
72
63
|
|
|
73
64
|
// Clean-up
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_theoplayer","_THEOplayerWebAdapter","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_theoplayer","_THEOplayerWebAdapter","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","THEOplayerView","props","config","children","player","useRef","adapter","container","useEffect","current","chromeless","undefined","ads","googleIma","ima","useNativeIma","language","ui","updatedConfig","allowNativeFullscreen","ChromelessPlayer","Player","fluid","THEOplayerWebAdapter","window","nativePlayer","onPlayerReady","onPlayerDestroy","destroy","createElement","Fragment","ref","style","styles","className","display","position","width","height","maxHeight","maxWidth","aspectRatio"],"sourceRoot":"../../../src","sources":["internal/THEOplayerView.web.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -60,8 +60,12 @@ class WebPresentationModeManager {
|
|
|
60
60
|
prepareForPresentationModeChanges() {
|
|
61
61
|
const elements = this._player.element.children;
|
|
62
62
|
for (const element of Array.from(elements)) {
|
|
63
|
-
if (element.tagName === 'VIDEO'
|
|
64
|
-
|
|
63
|
+
if (element.tagName === 'VIDEO') {
|
|
64
|
+
const videoElement = element;
|
|
65
|
+
if (videoElement.src !== null && videoElement.src !== '' || videoElement.srcObject !== null) {
|
|
66
|
+
this._element = videoElement;
|
|
67
|
+
break;
|
|
68
|
+
}
|
|
65
69
|
}
|
|
66
70
|
}
|
|
67
71
|
// listen for pip updates on element
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNativeTheoplayer","require","_PlayerEvents","_FullscreenAPI","_CommonUtils","WebPresentationModeManager","_presentationMode","PresentationMode","inline","_element","undefined","constructor","player","eventForwarder","_player","_eventForwarder","presentationMode","prepareForPresentationModeChanges","fullscreenAPI","fullscreen","appElement","document","getElementById","promise","requestFullscreen_","then","noOp","pip","requestPictureInPicture","exitFullscreen_","exitPictureInPicture","webkitEnterFullscreen","webkitSetPresentationMode","elements","element","children","Array","from","tagName","
|
|
1
|
+
{"version":3,"names":["_reactNativeTheoplayer","require","_PlayerEvents","_FullscreenAPI","_CommonUtils","WebPresentationModeManager","_presentationMode","PresentationMode","inline","_element","undefined","constructor","player","eventForwarder","_player","_eventForwarder","presentationMode","prepareForPresentationModeChanges","fullscreenAPI","fullscreen","appElement","document","getElementById","promise","requestFullscreen_","then","noOp","pip","requestPictureInPicture","exitFullscreen_","exitPictureInPicture","webkitEnterFullscreen","webkitSetPresentationMode","elements","element","children","Array","from","tagName","videoElement","src","srcObject","onenterpictureinpicture","updatePresentationMode","onleavepictureinpicture","addEventListener","fullscreenchange_","fullscreenerror_","newPresentationMode","fullscreenElement_","pictureInPictureElement","previousPresentationMode","dispatchEvent","DefaultPresentationModeChangeEvent","exports"],"sourceRoot":"../../../../../src","sources":["internal/adapter/web/WebPresentationModeManager.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":"8.
|
|
1
|
+
{"version":"8.11.1","buildDate":"2024-12-18T14:55:55.810Z"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import React, { useEffect, useRef } from 'react';
|
|
2
2
|
import { Player, ChromelessPlayer } from 'theoplayer';
|
|
3
3
|
import { THEOplayerWebAdapter } from './adapter/THEOplayerWebAdapter';
|
|
4
|
-
import { registerServiceWorker, browserCanPlayHLSAndHasNoMSE } from './utils/ServiceWorkerUtils';
|
|
5
4
|
export function THEOplayerView(props) {
|
|
6
5
|
const {
|
|
7
6
|
config,
|
|
@@ -10,14 +9,6 @@ export function THEOplayerView(props) {
|
|
|
10
9
|
const player = useRef(null);
|
|
11
10
|
const adapter = useRef(null);
|
|
12
11
|
const container = useRef(null);
|
|
13
|
-
const preparePlayer = async adapter => {
|
|
14
|
-
if (config?.enableTHEOlive == true && browserCanPlayHLSAndHasNoMSE()) {
|
|
15
|
-
await registerServiceWorker(props.config?.libraryLocation);
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
// Notify the player is ready
|
|
19
|
-
props.onPlayerReady?.(adapter);
|
|
20
|
-
};
|
|
21
12
|
useEffect(() => {
|
|
22
13
|
// Create player inside container.
|
|
23
14
|
if (container.current) {
|
|
@@ -58,8 +49,8 @@ export function THEOplayerView(props) {
|
|
|
58
49
|
// @ts-ignore
|
|
59
50
|
window.nativePlayer = player;
|
|
60
51
|
|
|
61
|
-
//
|
|
62
|
-
|
|
52
|
+
// Notify the player is ready
|
|
53
|
+
props.onPlayerReady?.(adapter.current);
|
|
63
54
|
}
|
|
64
55
|
|
|
65
56
|
// Clean-up
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useEffect","useRef","Player","ChromelessPlayer","THEOplayerWebAdapter","
|
|
1
|
+
{"version":3,"names":["React","useEffect","useRef","Player","ChromelessPlayer","THEOplayerWebAdapter","THEOplayerView","props","config","children","player","adapter","container","current","chromeless","undefined","ads","googleIma","ima","useNativeIma","language","ui","updatedConfig","allowNativeFullscreen","fluid","window","nativePlayer","onPlayerReady","onPlayerDestroy","destroy","createElement","Fragment","ref","style","styles","className","display","position","width","height","maxHeight","maxWidth","aspectRatio"],"sourceRoot":"../../../src","sources":["internal/THEOplayerView.web.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -54,8 +54,12 @@ export class WebPresentationModeManager {
|
|
|
54
54
|
prepareForPresentationModeChanges() {
|
|
55
55
|
const elements = this._player.element.children;
|
|
56
56
|
for (const element of Array.from(elements)) {
|
|
57
|
-
if (element.tagName === 'VIDEO'
|
|
58
|
-
|
|
57
|
+
if (element.tagName === 'VIDEO') {
|
|
58
|
+
const videoElement = element;
|
|
59
|
+
if (videoElement.src !== null && videoElement.src !== '' || videoElement.srcObject !== null) {
|
|
60
|
+
this._element = videoElement;
|
|
61
|
+
break;
|
|
62
|
+
}
|
|
59
63
|
}
|
|
60
64
|
}
|
|
61
65
|
// listen for pip updates on element
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["PresentationMode","DefaultPresentationModeChangeEvent","fullscreenAPI","noOp","WebPresentationModeManager","_presentationMode","inline","_element","undefined","constructor","player","eventForwarder","_player","_eventForwarder","presentationMode","prepareForPresentationModeChanges","fullscreen","appElement","document","getElementById","promise","requestFullscreen_","then","pip","requestPictureInPicture","exitFullscreen_","exitPictureInPicture","webkitEnterFullscreen","webkitSetPresentationMode","elements","element","children","Array","from","tagName","
|
|
1
|
+
{"version":3,"names":["PresentationMode","DefaultPresentationModeChangeEvent","fullscreenAPI","noOp","WebPresentationModeManager","_presentationMode","inline","_element","undefined","constructor","player","eventForwarder","_player","_eventForwarder","presentationMode","prepareForPresentationModeChanges","fullscreen","appElement","document","getElementById","promise","requestFullscreen_","then","pip","requestPictureInPicture","exitFullscreen_","exitPictureInPicture","webkitEnterFullscreen","webkitSetPresentationMode","elements","element","children","Array","from","tagName","videoElement","src","srcObject","onenterpictureinpicture","updatePresentationMode","onleavepictureinpicture","addEventListener","fullscreenchange_","fullscreenerror_","newPresentationMode","fullscreenElement_","pictureInPictureElement","previousPresentationMode","dispatchEvent"],"sourceRoot":"../../../../../src","sources":["internal/adapter/web/WebPresentationModeManager.ts"],"mappings":"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","ignoreList":[]}
|
package/lib/module/manifest.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":"8.
|
|
1
|
+
{"version":"8.11.1","buildDate":"2024-12-18T14:55:55.810Z"}
|
|
@@ -90,6 +90,7 @@ export interface PlayerConfiguration {
|
|
|
90
90
|
* Sets whether support for THEOlive sources should be enabled.
|
|
91
91
|
*
|
|
92
92
|
* @defaultValue `false`.
|
|
93
|
+
* @deprecated: THEOlive support is always enabled, there is no need to explicitly enable it.
|
|
93
94
|
*/
|
|
94
95
|
enableTHEOlive?: boolean;
|
|
95
96
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlayerConfiguration.d.ts","sourceRoot":"","sources":["../../../../src/api/config/PlayerConfiguration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AACpF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7D,MAAM,WAAW,mBAAmB;IAClC;;;;;;;;;OASG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE,0BAA0B,CAAC;IAE3C;;OAEG;IACH,GAAG,CAAC,EAAE,gBAAgB,CAAC;IAEvB;;OAEG;IACH,IAAI,CAAC,EAAE,iBAAiB,CAAC;IAEzB;;OAEG;IACH,EAAE,CAAC,EAAE,eAAe,CAAC;IAErB;;OAEG;IACH,YAAY,CAAC,EAAE,yBAAyB,CAAC;IAEzC;;OAEG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAE1B;;OAEG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAE7B;;;;;OAKG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAE9B;;OAEG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;IAEhC;;;;;OAKG;IACH,QAAQ,CAAC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IAEjD;;;;;;;;OAQG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;;;;;;OAQG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB
|
|
1
|
+
{"version":3,"file":"PlayerConfiguration.d.ts","sourceRoot":"","sources":["../../../../src/api/config/PlayerConfiguration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AACpF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7D,MAAM,WAAW,mBAAmB;IAClC;;;;;;;;;OASG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE,0BAA0B,CAAC;IAE3C;;OAEG;IACH,GAAG,CAAC,EAAE,gBAAgB,CAAC;IAEvB;;OAEG;IACH,IAAI,CAAC,EAAE,iBAAiB,CAAC;IAEzB;;OAEG;IACH,EAAE,CAAC,EAAE,eAAe,CAAC;IAErB;;OAEG;IACH,YAAY,CAAC,EAAE,yBAAyB,CAAC;IAEzC;;OAEG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAE1B;;OAEG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAE7B;;;;;OAKG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAE9B;;OAEG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;IAEhC;;;;;OAKG;IACH,QAAQ,CAAC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IAEjD;;;;;;;;OAQG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;;;;;;OAQG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;;;;OAKG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,0BAA0B,GAAG,MAAM,GAAG,KAAK,GAAG,SAAS,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"THEOplayerView.web.d.ts","sourceRoot":"","sources":["../../../src/internal/THEOplayerView.web.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4B,MAAM,OAAO,CAAC;AACjD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"THEOplayerView.web.d.ts","sourceRoot":"","sources":["../../../src/internal/THEOplayerView.web.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4B,MAAM,OAAO,CAAC;AACjD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAInE,wBAAgB,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,qBAwEjF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebPresentationModeManager.d.ts","sourceRoot":"","sources":["../../../../../src/internal/adapter/web/WebPresentationModeManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAI9E,qBAAa,0BAA0B;IACrC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmB;IAC3C,OAAO,CAAC,iBAAiB,CAA6C;IACtE,OAAO,CAAC,QAAQ,CAA2C;IAC3D,OAAO,CAAC,eAAe,CAAyC;gBAEpD,MAAM,EAAE,gBAAgB,EAAE,cAAc,EAAE,sBAAsB,CAAC,cAAc,CAAC;IAK5F,IAAI,gBAAgB,IAAI,gBAAgB,CAEvC;IAED,IAAI,gBAAgB,CAAC,gBAAgB,EAAE,gBAAgB,EAwCtD;IAED,OAAO,CAAC,iCAAiC;
|
|
1
|
+
{"version":3,"file":"WebPresentationModeManager.d.ts","sourceRoot":"","sources":["../../../../../src/internal/adapter/web/WebPresentationModeManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAI9E,qBAAa,0BAA0B;IACrC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmB;IAC3C,OAAO,CAAC,iBAAiB,CAA6C;IACtE,OAAO,CAAC,QAAQ,CAA2C;IAC3D,OAAO,CAAC,eAAe,CAAyC;gBAEpD,MAAM,EAAE,gBAAgB,EAAE,cAAc,EAAE,sBAAsB,CAAC,cAAc,CAAC;IAK5F,IAAI,gBAAgB,IAAI,gBAAgB,CAEvC;IAED,IAAI,gBAAgB,CAAC,gBAAgB,EAAE,gBAAgB,EAwCtD;IAED,OAAO,CAAC,iCAAiC;IA2BzC,OAAO,CAAC,sBAAsB,CAe5B;CACH"}
|
package/package.json
CHANGED
|
@@ -37,8 +37,7 @@ Pod::Spec.new do |s|
|
|
|
37
37
|
|
|
38
38
|
# THEOlive Dependency
|
|
39
39
|
puts "Adding THEOplayer-Integration-THEOlive"
|
|
40
|
-
s.
|
|
41
|
-
s.ios.dependency "THEOliveSDK", "~> 3.18.4"
|
|
40
|
+
s.dependency "THEOplayer-Integration-THEOlive", "~> 8.6", ">= 8.6.3"
|
|
42
41
|
|
|
43
42
|
# Feature based dependencies
|
|
44
43
|
if theofeatures.include?("GOOGLE_IMA")
|
|
@@ -104,6 +104,7 @@ export interface PlayerConfiguration {
|
|
|
104
104
|
* Sets whether support for THEOlive sources should be enabled.
|
|
105
105
|
*
|
|
106
106
|
* @defaultValue `false`.
|
|
107
|
+
* @deprecated: THEOlive support is always enabled, there is no need to explicitly enable it.
|
|
107
108
|
*/
|
|
108
109
|
enableTHEOlive?: boolean;
|
|
109
110
|
}
|
|
@@ -2,7 +2,6 @@ import React, { useEffect, useRef } from 'react';
|
|
|
2
2
|
import type { THEOplayerViewProps } from 'react-native-theoplayer';
|
|
3
3
|
import { Player, ChromelessPlayer, PlayerConfiguration } from 'theoplayer';
|
|
4
4
|
import { THEOplayerWebAdapter } from './adapter/THEOplayerWebAdapter';
|
|
5
|
-
import { registerServiceWorker, browserCanPlayHLSAndHasNoMSE } from './utils/ServiceWorkerUtils';
|
|
6
5
|
|
|
7
6
|
export function THEOplayerView(props: React.PropsWithChildren<THEOplayerViewProps>) {
|
|
8
7
|
const { config, children } = props;
|
|
@@ -10,15 +9,6 @@ export function THEOplayerView(props: React.PropsWithChildren<THEOplayerViewProp
|
|
|
10
9
|
const adapter = useRef<THEOplayerWebAdapter | null>(null);
|
|
11
10
|
const container = useRef<null | HTMLDivElement>(null);
|
|
12
11
|
|
|
13
|
-
const preparePlayer = async (adapter: THEOplayerWebAdapter) => {
|
|
14
|
-
if (config?.enableTHEOlive == true && browserCanPlayHLSAndHasNoMSE()) {
|
|
15
|
-
await registerServiceWorker(props.config?.libraryLocation);
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
// Notify the player is ready
|
|
19
|
-
props.onPlayerReady?.(adapter);
|
|
20
|
-
};
|
|
21
|
-
|
|
22
12
|
useEffect(() => {
|
|
23
13
|
// Create player inside container.
|
|
24
14
|
if (container.current) {
|
|
@@ -59,8 +49,8 @@ export function THEOplayerView(props: React.PropsWithChildren<THEOplayerViewProp
|
|
|
59
49
|
// @ts-ignore
|
|
60
50
|
window.nativePlayer = player;
|
|
61
51
|
|
|
62
|
-
//
|
|
63
|
-
|
|
52
|
+
// Notify the player is ready
|
|
53
|
+
props.onPlayerReady?.(adapter.current);
|
|
64
54
|
}
|
|
65
55
|
|
|
66
56
|
// Clean-up
|
|
@@ -66,8 +66,12 @@ export class WebPresentationModeManager {
|
|
|
66
66
|
private prepareForPresentationModeChanges() {
|
|
67
67
|
const elements = this._player.element.children;
|
|
68
68
|
for (const element of Array.from(elements)) {
|
|
69
|
-
if (element.tagName === 'VIDEO'
|
|
70
|
-
|
|
69
|
+
if (element.tagName === 'VIDEO') {
|
|
70
|
+
const videoElement = element as HTMLVideoElement;
|
|
71
|
+
if ((videoElement.src !== null && videoElement.src !== '') || videoElement.srcObject !== null) {
|
|
72
|
+
this._element = videoElement;
|
|
73
|
+
break;
|
|
74
|
+
}
|
|
71
75
|
}
|
|
72
76
|
}
|
|
73
77
|
// listen for pip updates on element
|
package/src/manifest.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":"8.
|
|
1
|
+
{"version":"8.11.1","buildDate":"2024-12-18T14:55:55.810Z"}
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.browserCanPlayHLSAndHasNoMSE = browserCanPlayHLSAndHasNoMSE;
|
|
7
|
-
exports.maybeUnregisterServiceWorker = maybeUnregisterServiceWorker;
|
|
8
|
-
exports.registerServiceWorker = registerServiceWorker;
|
|
9
|
-
function browserCanPlayHLSAndHasNoMSE() {
|
|
10
|
-
const videoElement = document.createElement('video');
|
|
11
|
-
const canPlayHls = videoElement && videoElement.canPlayType && videoElement.canPlayType('application/vnd.apple.mpegURL') !== '';
|
|
12
|
-
// @ts-ignore
|
|
13
|
-
const canPlayMse = Boolean(window.MediaSource || window.WebKitMediaSource || window.ManagedMediaSource);
|
|
14
|
-
return canPlayHls && !canPlayMse;
|
|
15
|
-
}
|
|
16
|
-
async function registerServiceWorker(libraryLocation) {
|
|
17
|
-
if ('serviceWorker' in navigator) {
|
|
18
|
-
try {
|
|
19
|
-
const serviceWorkerName = 'theoplayer.sw.js';
|
|
20
|
-
const serviceWorkerPath = libraryLocation ? (libraryLocation.endsWith('/') ? libraryLocation : `${libraryLocation}/`) + serviceWorkerName : serviceWorkerName;
|
|
21
|
-
const serviceWorkerScope = libraryLocation ? libraryLocation.endsWith('/') ? libraryLocation : `${libraryLocation}/` : '/';
|
|
22
|
-
|
|
23
|
-
// unregister beforehand to solve an issue when doing a hard reload of the page causing the service worker to not intercept the manifests.
|
|
24
|
-
await maybeUnregisterServiceWorker(serviceWorkerPath);
|
|
25
|
-
await navigator.serviceWorker.register(serviceWorkerPath, {
|
|
26
|
-
scope: serviceWorkerScope
|
|
27
|
-
});
|
|
28
|
-
//console.log('Successfully registered server worker');
|
|
29
|
-
} catch (error) {
|
|
30
|
-
console.error(`Service worker registration failed: ${error}`);
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
async function maybeUnregisterServiceWorker(serviceWorkerPath) {
|
|
35
|
-
if ('serviceWorker' in navigator) {
|
|
36
|
-
try {
|
|
37
|
-
const registration = await navigator.serviceWorker.getRegistration(serviceWorkerPath);
|
|
38
|
-
await registration?.unregister();
|
|
39
|
-
} catch (error) {
|
|
40
|
-
console.error(`Service worker unregistration failed: ${error}`);
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
//# sourceMappingURL=ServiceWorkerUtils.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["browserCanPlayHLSAndHasNoMSE","videoElement","document","createElement","canPlayHls","canPlayType","canPlayMse","Boolean","window","MediaSource","WebKitMediaSource","ManagedMediaSource","registerServiceWorker","libraryLocation","navigator","serviceWorkerName","serviceWorkerPath","endsWith","serviceWorkerScope","maybeUnregisterServiceWorker","serviceWorker","register","scope","error","console","registration","getRegistration","unregister"],"sourceRoot":"../../../../src","sources":["internal/utils/ServiceWorkerUtils.ts"],"mappings":";;;;;;;;AAAO,SAASA,4BAA4BA,CAAA,EAAG;EAC7C,MAAMC,YAAY,GAAGC,QAAQ,CAACC,aAAa,CAAC,OAAO,CAAC;EACpD,MAAMC,UAAU,GAAGH,YAAY,IAAIA,YAAY,CAACI,WAAW,IAAIJ,YAAY,CAACI,WAAW,CAAC,+BAA+B,CAAC,KAAK,EAAE;EAC/H;EACA,MAAMC,UAAU,GAAGC,OAAO,CAACC,MAAM,CAACC,WAAW,IAAID,MAAM,CAACE,iBAAiB,IAAIF,MAAM,CAACG,kBAAkB,CAAC;EACvG,OAAOP,UAAU,IAAI,CAACE,UAAU;AAClC;AAEO,eAAeM,qBAAqBA,CAACC,eAAwB,EAAiB;EACnF,IAAI,eAAe,IAAIC,SAAS,EAAE;IAChC,IAAI;MACF,MAAMC,iBAAiB,GAAG,kBAAkB;MAC5C,MAAMC,iBAAiB,GAAGH,eAAe,GACrC,CAACA,eAAe,CAACI,QAAQ,CAAC,GAAG,CAAC,GAAGJ,eAAe,GAAG,GAAGA,eAAe,GAAG,IAAIE,iBAAiB,GAC7FA,iBAAiB;MACrB,MAAMG,kBAAkB,GAAGL,eAAe,GAAIA,eAAe,CAACI,QAAQ,CAAC,GAAG,CAAC,GAAGJ,eAAe,GAAG,GAAGA,eAAe,GAAG,GAAI,GAAG;;MAE5H;MACA,MAAMM,4BAA4B,CAACH,iBAAiB,CAAC;MACrD,MAAMF,SAAS,CAACM,aAAa,CAACC,QAAQ,CAACL,iBAAiB,EAAE;QACxDM,KAAK,EAAEJ;MACT,CAAC,CAAC;MACF;IACF,CAAC,CAAC,OAAOK,KAAK,EAAE;MACdC,OAAO,CAACD,KAAK,CAAC,uCAAuCA,KAAK,EAAE,CAAC;IAC/D;EACF;AACF;AAEO,eAAeJ,4BAA4BA,CAACH,iBAA0B,EAAiB;EAC5F,IAAI,eAAe,IAAIF,SAAS,EAAE;IAChC,IAAI;MACF,MAAMW,YAAY,GAAG,MAAMX,SAAS,CAACM,aAAa,CAACM,eAAe,CAACV,iBAAiB,CAAC;MACrF,MAAMS,YAAY,EAAEE,UAAU,CAAC,CAAC;IAClC,CAAC,CAAC,OAAOJ,KAAK,EAAE;MACdC,OAAO,CAACD,KAAK,CAAC,yCAAyCA,KAAK,EAAE,CAAC;IACjE;EACF;AACF","ignoreList":[]}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
export function browserCanPlayHLSAndHasNoMSE() {
|
|
2
|
-
const videoElement = document.createElement('video');
|
|
3
|
-
const canPlayHls = videoElement && videoElement.canPlayType && videoElement.canPlayType('application/vnd.apple.mpegURL') !== '';
|
|
4
|
-
// @ts-ignore
|
|
5
|
-
const canPlayMse = Boolean(window.MediaSource || window.WebKitMediaSource || window.ManagedMediaSource);
|
|
6
|
-
return canPlayHls && !canPlayMse;
|
|
7
|
-
}
|
|
8
|
-
export async function registerServiceWorker(libraryLocation) {
|
|
9
|
-
if ('serviceWorker' in navigator) {
|
|
10
|
-
try {
|
|
11
|
-
const serviceWorkerName = 'theoplayer.sw.js';
|
|
12
|
-
const serviceWorkerPath = libraryLocation ? (libraryLocation.endsWith('/') ? libraryLocation : `${libraryLocation}/`) + serviceWorkerName : serviceWorkerName;
|
|
13
|
-
const serviceWorkerScope = libraryLocation ? libraryLocation.endsWith('/') ? libraryLocation : `${libraryLocation}/` : '/';
|
|
14
|
-
|
|
15
|
-
// unregister beforehand to solve an issue when doing a hard reload of the page causing the service worker to not intercept the manifests.
|
|
16
|
-
await maybeUnregisterServiceWorker(serviceWorkerPath);
|
|
17
|
-
await navigator.serviceWorker.register(serviceWorkerPath, {
|
|
18
|
-
scope: serviceWorkerScope
|
|
19
|
-
});
|
|
20
|
-
//console.log('Successfully registered server worker');
|
|
21
|
-
} catch (error) {
|
|
22
|
-
console.error(`Service worker registration failed: ${error}`);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
export async function maybeUnregisterServiceWorker(serviceWorkerPath) {
|
|
27
|
-
if ('serviceWorker' in navigator) {
|
|
28
|
-
try {
|
|
29
|
-
const registration = await navigator.serviceWorker.getRegistration(serviceWorkerPath);
|
|
30
|
-
await registration?.unregister();
|
|
31
|
-
} catch (error) {
|
|
32
|
-
console.error(`Service worker unregistration failed: ${error}`);
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
//# sourceMappingURL=ServiceWorkerUtils.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["browserCanPlayHLSAndHasNoMSE","videoElement","document","createElement","canPlayHls","canPlayType","canPlayMse","Boolean","window","MediaSource","WebKitMediaSource","ManagedMediaSource","registerServiceWorker","libraryLocation","navigator","serviceWorkerName","serviceWorkerPath","endsWith","serviceWorkerScope","maybeUnregisterServiceWorker","serviceWorker","register","scope","error","console","registration","getRegistration","unregister"],"sourceRoot":"../../../../src","sources":["internal/utils/ServiceWorkerUtils.ts"],"mappings":"AAAA,OAAO,SAASA,4BAA4BA,CAAA,EAAG;EAC7C,MAAMC,YAAY,GAAGC,QAAQ,CAACC,aAAa,CAAC,OAAO,CAAC;EACpD,MAAMC,UAAU,GAAGH,YAAY,IAAIA,YAAY,CAACI,WAAW,IAAIJ,YAAY,CAACI,WAAW,CAAC,+BAA+B,CAAC,KAAK,EAAE;EAC/H;EACA,MAAMC,UAAU,GAAGC,OAAO,CAACC,MAAM,CAACC,WAAW,IAAID,MAAM,CAACE,iBAAiB,IAAIF,MAAM,CAACG,kBAAkB,CAAC;EACvG,OAAOP,UAAU,IAAI,CAACE,UAAU;AAClC;AAEA,OAAO,eAAeM,qBAAqBA,CAACC,eAAwB,EAAiB;EACnF,IAAI,eAAe,IAAIC,SAAS,EAAE;IAChC,IAAI;MACF,MAAMC,iBAAiB,GAAG,kBAAkB;MAC5C,MAAMC,iBAAiB,GAAGH,eAAe,GACrC,CAACA,eAAe,CAACI,QAAQ,CAAC,GAAG,CAAC,GAAGJ,eAAe,GAAG,GAAGA,eAAe,GAAG,IAAIE,iBAAiB,GAC7FA,iBAAiB;MACrB,MAAMG,kBAAkB,GAAGL,eAAe,GAAIA,eAAe,CAACI,QAAQ,CAAC,GAAG,CAAC,GAAGJ,eAAe,GAAG,GAAGA,eAAe,GAAG,GAAI,GAAG;;MAE5H;MACA,MAAMM,4BAA4B,CAACH,iBAAiB,CAAC;MACrD,MAAMF,SAAS,CAACM,aAAa,CAACC,QAAQ,CAACL,iBAAiB,EAAE;QACxDM,KAAK,EAAEJ;MACT,CAAC,CAAC;MACF;IACF,CAAC,CAAC,OAAOK,KAAK,EAAE;MACdC,OAAO,CAACD,KAAK,CAAC,uCAAuCA,KAAK,EAAE,CAAC;IAC/D;EACF;AACF;AAEA,OAAO,eAAeJ,4BAA4BA,CAACH,iBAA0B,EAAiB;EAC5F,IAAI,eAAe,IAAIF,SAAS,EAAE;IAChC,IAAI;MACF,MAAMW,YAAY,GAAG,MAAMX,SAAS,CAACM,aAAa,CAACM,eAAe,CAACV,iBAAiB,CAAC;MACrF,MAAMS,YAAY,EAAEE,UAAU,CAAC,CAAC;IAClC,CAAC,CAAC,OAAOJ,KAAK,EAAE;MACdC,OAAO,CAACD,KAAK,CAAC,yCAAyCA,KAAK,EAAE,CAAC;IACjE;EACF;AACF","ignoreList":[]}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
export declare function browserCanPlayHLSAndHasNoMSE(): boolean;
|
|
2
|
-
export declare function registerServiceWorker(libraryLocation?: string): Promise<void>;
|
|
3
|
-
export declare function maybeUnregisterServiceWorker(serviceWorkerPath?: string): Promise<void>;
|
|
4
|
-
//# sourceMappingURL=ServiceWorkerUtils.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ServiceWorkerUtils.d.ts","sourceRoot":"","sources":["../../../../src/internal/utils/ServiceWorkerUtils.ts"],"names":[],"mappings":"AAAA,wBAAgB,4BAA4B,YAM3C;AAED,wBAAsB,qBAAqB,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAmBnF;AAED,wBAAsB,4BAA4B,CAAC,iBAAiB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAS5F"}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
export function browserCanPlayHLSAndHasNoMSE() {
|
|
2
|
-
const videoElement = document.createElement('video');
|
|
3
|
-
const canPlayHls = videoElement && videoElement.canPlayType && videoElement.canPlayType('application/vnd.apple.mpegURL') !== '';
|
|
4
|
-
// @ts-ignore
|
|
5
|
-
const canPlayMse = Boolean(window.MediaSource || window.WebKitMediaSource || window.ManagedMediaSource);
|
|
6
|
-
return canPlayHls && !canPlayMse;
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
export async function registerServiceWorker(libraryLocation?: string): Promise<void> {
|
|
10
|
-
if ('serviceWorker' in navigator) {
|
|
11
|
-
try {
|
|
12
|
-
const serviceWorkerName = 'theoplayer.sw.js';
|
|
13
|
-
const serviceWorkerPath = libraryLocation
|
|
14
|
-
? (libraryLocation.endsWith('/') ? libraryLocation : `${libraryLocation}/`) + serviceWorkerName
|
|
15
|
-
: serviceWorkerName;
|
|
16
|
-
const serviceWorkerScope = libraryLocation ? (libraryLocation.endsWith('/') ? libraryLocation : `${libraryLocation}/`) : '/';
|
|
17
|
-
|
|
18
|
-
// unregister beforehand to solve an issue when doing a hard reload of the page causing the service worker to not intercept the manifests.
|
|
19
|
-
await maybeUnregisterServiceWorker(serviceWorkerPath);
|
|
20
|
-
await navigator.serviceWorker.register(serviceWorkerPath, {
|
|
21
|
-
scope: serviceWorkerScope,
|
|
22
|
-
});
|
|
23
|
-
//console.log('Successfully registered server worker');
|
|
24
|
-
} catch (error) {
|
|
25
|
-
console.error(`Service worker registration failed: ${error}`);
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
export async function maybeUnregisterServiceWorker(serviceWorkerPath?: string): Promise<void> {
|
|
31
|
-
if ('serviceWorker' in navigator) {
|
|
32
|
-
try {
|
|
33
|
-
const registration = await navigator.serviceWorker.getRegistration(serviceWorkerPath);
|
|
34
|
-
await registration?.unregister();
|
|
35
|
-
} catch (error) {
|
|
36
|
-
console.error(`Service worker unregistration failed: ${error}`);
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
}
|