rx-player 4.2.0-dev.2024100200 → 4.2.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/.vscode/settings.json +9 -0
- package/CHANGELOG.md +8 -1
- package/VERSION +1 -1
- package/dist/commonjs/__GENERATED_CODE/embedded_dash_wasm.d.ts.map +1 -1
- package/dist/commonjs/__GENERATED_CODE/embedded_dash_wasm.js +1 -1
- package/dist/commonjs/core/segment_sinks/segment_buffers_store.d.ts.map +1 -1
- package/dist/commonjs/experimental/tools/mediaCapabilitiesProber/probers/DRMInfos.d.ts.map +1 -1
- package/dist/commonjs/experimental/tools/mediaCapabilitiesProber/probers/DRMInfos.js +85 -8
- package/dist/commonjs/main_thread/api/debug/modules/general_info.js +1 -1
- package/dist/commonjs/main_thread/api/public_api.js +2 -2
- package/dist/commonjs/main_thread/decrypt/create_or_load_session.d.ts.map +1 -1
- package/dist/commonjs/main_thread/decrypt/create_or_load_session.js +4 -1
- package/dist/commonjs/main_thread/decrypt/find_key_system.d.ts.map +1 -1
- package/dist/commonjs/main_thread/decrypt/find_key_system.js +3 -0
- package/dist/commonjs/main_thread/decrypt/get_media_keys.d.ts.map +1 -1
- package/dist/commonjs/main_thread/decrypt/get_media_keys.js +2 -1
- package/dist/commonjs/main_thread/init/media_source_content_initializer.d.ts +11 -1
- package/dist/commonjs/main_thread/init/media_source_content_initializer.d.ts.map +1 -1
- package/dist/commonjs/main_thread/init/media_source_content_initializer.js +23 -11
- package/dist/commonjs/main_thread/init/multi_thread_content_initializer.d.ts +2 -1
- package/dist/commonjs/main_thread/init/multi_thread_content_initializer.d.ts.map +1 -1
- package/dist/commonjs/main_thread/init/multi_thread_content_initializer.js +9 -5
- package/dist/commonjs/main_thread/init/utils/initial_seek_and_play.d.ts.map +1 -1
- package/dist/commonjs/main_thread/init/utils/initial_seek_and_play.js +3 -7
- package/dist/commonjs/main_thread/text_displayer/native/native_text_displayer.d.ts +1 -0
- package/dist/commonjs/main_thread/text_displayer/native/native_text_displayer.d.ts.map +1 -1
- package/dist/commonjs/main_thread/text_displayer/native/native_text_displayer.js +19 -16
- package/dist/commonjs/public_types.d.ts +54 -2
- package/dist/commonjs/public_types.d.ts.map +1 -1
- package/dist/commonjs/utils/sync_or_async.d.ts.map +1 -1
- package/dist/commonjs/utils/sync_or_async.js +3 -1
- package/dist/es2017/__GENERATED_CODE/embedded_dash_wasm.d.ts.map +1 -1
- package/dist/es2017/__GENERATED_CODE/embedded_dash_wasm.js +1 -1
- package/dist/es2017/core/segment_sinks/segment_buffers_store.d.ts.map +1 -1
- package/dist/es2017/experimental/tools/mediaCapabilitiesProber/probers/DRMInfos.d.ts.map +1 -1
- package/dist/es2017/experimental/tools/mediaCapabilitiesProber/probers/DRMInfos.js +36 -7
- package/dist/es2017/main_thread/api/debug/modules/general_info.js +1 -1
- package/dist/es2017/main_thread/api/public_api.js +2 -2
- package/dist/es2017/main_thread/decrypt/create_or_load_session.d.ts.map +1 -1
- package/dist/es2017/main_thread/decrypt/create_or_load_session.js +4 -1
- package/dist/es2017/main_thread/decrypt/find_key_system.d.ts.map +1 -1
- package/dist/es2017/main_thread/decrypt/find_key_system.js +3 -0
- package/dist/es2017/main_thread/decrypt/get_media_keys.d.ts.map +1 -1
- package/dist/es2017/main_thread/decrypt/get_media_keys.js +2 -1
- package/dist/es2017/main_thread/init/media_source_content_initializer.d.ts +11 -1
- package/dist/es2017/main_thread/init/media_source_content_initializer.d.ts.map +1 -1
- package/dist/es2017/main_thread/init/media_source_content_initializer.js +23 -11
- package/dist/es2017/main_thread/init/multi_thread_content_initializer.d.ts +2 -1
- package/dist/es2017/main_thread/init/multi_thread_content_initializer.d.ts.map +1 -1
- package/dist/es2017/main_thread/init/multi_thread_content_initializer.js +9 -5
- package/dist/es2017/main_thread/init/utils/initial_seek_and_play.d.ts.map +1 -1
- package/dist/es2017/main_thread/init/utils/initial_seek_and_play.js +3 -7
- package/dist/es2017/main_thread/text_displayer/native/native_text_displayer.d.ts +1 -0
- package/dist/es2017/main_thread/text_displayer/native/native_text_displayer.d.ts.map +1 -1
- package/dist/es2017/main_thread/text_displayer/native/native_text_displayer.js +19 -16
- package/dist/es2017/public_types.d.ts +54 -2
- package/dist/es2017/public_types.d.ts.map +1 -1
- package/dist/es2017/utils/sync_or_async.d.ts.map +1 -1
- package/dist/es2017/utils/sync_or_async.js +3 -1
- package/dist/mpd-parser.wasm +0 -0
- package/dist/rx-player.js +60 -31
- package/dist/rx-player.min.js +17 -17
- package/package.json +1 -1
- package/src/__GENERATED_CODE/embedded_dash_wasm.ts +1 -1
- package/src/core/segment_sinks/segment_buffers_store.ts +6 -2
- package/src/experimental/tools/mediaCapabilitiesProber/probers/DRMInfos.ts +39 -7
- package/src/main_thread/api/debug/modules/general_info.ts +1 -1
- package/src/main_thread/api/public_api.ts +2 -2
- package/src/main_thread/decrypt/create_or_load_session.ts +6 -1
- package/src/main_thread/decrypt/find_key_system.ts +3 -0
- package/src/main_thread/decrypt/get_media_keys.ts +1 -0
- package/src/main_thread/init/media_source_content_initializer.ts +50 -17
- package/src/main_thread/init/multi_thread_content_initializer.ts +15 -7
- package/src/main_thread/init/utils/initial_seek_and_play.ts +3 -7
- package/src/main_thread/text_displayer/native/native_text_displayer.ts +22 -18
- package/src/public_types.ts +54 -3
- package/src/utils/sync_or_async.ts +5 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"segment_buffers_store.d.ts","sourceRoot":"","sources":["../../../../src/core/segment_sinks/segment_buffers_store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAMvD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAElE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAEtE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,KAAK,EAAiB,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAI9E,0EAA0E;AAC1E,KAAK,sBAAsB,GAAG,OAAO,GAAG,OAAO,CAAC;AAEhD;;;;GAIG;AACH,MAAM,WAAW,sBAAuB,SAAQ,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC;IAC3E,KAAK,EAAE,qBAAqB,CAAC;CAC9B;AAED;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,MAAM,CAAC,OAAO,GAAG,OAAO,GAAG,MAAM,EAAE,yBAAyB,CAAC,CAAC;CAC7E;AAED,UAAU,yBAAyB;IACjC,UAAU,EAAE,WAAW,CAAC;IACxB,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,gBAAgB,EAAE,sBAAsB,EAAE,GAAG,SAAS,CAAC;CACxD;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,OAAO,OAAO,iBAAiB;IACpC;;;;;;;;OAQG;IACH,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,UAAU,IAAI,sBAAsB;IAIzE,kEAAkE;IAClE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAwB;IAErD;;;;;OAKG;IACH,OAAO,CAAC,wBAAwB,
|
|
1
|
+
{"version":3,"file":"segment_buffers_store.d.ts","sourceRoot":"","sources":["../../../../src/core/segment_sinks/segment_buffers_store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAMvD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAElE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAEtE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,KAAK,EAAiB,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAI9E,0EAA0E;AAC1E,KAAK,sBAAsB,GAAG,OAAO,GAAG,OAAO,CAAC;AAEhD;;;;GAIG;AACH,MAAM,WAAW,sBAAuB,SAAQ,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC;IAC3E,KAAK,EAAE,qBAAqB,CAAC;CAC9B;AAED;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,MAAM,CAAC,OAAO,GAAG,OAAO,GAAG,MAAM,EAAE,yBAAyB,CAAC,CAAC;CAC7E;AAED,UAAU,yBAAyB;IACjC,UAAU,EAAE,WAAW,CAAC;IACxB,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,gBAAgB,EAAE,sBAAsB,EAAE,GAAG,SAAS,CAAC;CACxD;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,OAAO,OAAO,iBAAiB;IACpC;;;;;;;;OAQG;IACH,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,UAAU,IAAI,sBAAsB;IAIzE,kEAAkE;IAClE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAwB;IAErD;;;;;OAKG;IACH,OAAO,CAAC,wBAAwB,CAI9B;IAEF;;;;OAIG;IACH,OAAO,CAAC,8BAA8B,CAAoB;IAE1D,OAAO,CAAC,cAAc,CAAiC;IAEvD,OAAO,CAAC,SAAS,CAAU;IAE3B;;;OAGG;gBAED,WAAW,EAAE,qBAAqB,EAClC,QAAQ,EAAE,OAAO,EACjB,sBAAsB,EAAE,uBAAuB,GAAG,IAAI;IASxD;;;;OAIG;IACI,cAAc,IAAI,WAAW,EAAE;IAQtC;;;;OAIG;IACI,oBAAoB,IAAI,WAAW,EAAE;IAI5C;;;;;;;;;;;;;;;;;;;;;OAqBG;IACI,SAAS,CACd,UAAU,EAAE,WAAW,GAErB;QAAE,IAAI,EAAE,aAAa,CAAC;QAAC,KAAK,EAAE,WAAW,CAAA;KAAE,GAC3C;QAAE,IAAI,EAAE,eAAe,CAAA;KAAE,GACzB;QAAE,IAAI,EAAE,UAAU,CAAA;KAAE;IAWxB;;;;;;;;;;;;;;;OAeG;IACI,oBAAoB,CAAC,gBAAgB,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IA2BhF;;;;;;OAMG;IACI,kBAAkB,CAAC,UAAU,EAAE,WAAW,GAAG,IAAI;IAgBxD;;;;;;;;;;;OAWG;IACI,iBAAiB,CAAC,UAAU,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,GAAG,WAAW;IAwD7E;;;OAGG;IACI,kBAAkB,CAAC,UAAU,EAAE,WAAW,GAAG,IAAI;IAYxD;;OAEG;IACI,UAAU,IAAI,IAAI;IAQzB;;;OAGG;IACH,OAAO,CAAC,uBAAuB;IAqB/B,OAAO,CAAC,+BAA+B;IAehC,sBAAsB,IAAI,mBAAmB;CASrD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DRMInfos.d.ts","sourceRoot":"","sources":["../../../../../../src/experimental/tools/mediaCapabilitiesProber/probers/DRMInfos.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;
|
|
1
|
+
{"version":3,"file":"DRMInfos.d.ts","sourceRoot":"","sources":["../../../../../../src/experimental/tools/mediaCapabilitiesProber/probers/DRMInfos.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAUH,OAAO,KAAK,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,2BAA2B,EAAE,CAAC;CAC9C;AAED;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,aAAa,CACnC,WAAW,EAAE,mBAAmB,GAC/B,OAAO,CAAC,CAAC,YAAY,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAgEhD"}
|
|
@@ -14,9 +14,47 @@
|
|
|
14
14
|
* See the License for the specific language governing permissions and
|
|
15
15
|
* limitations under the License.
|
|
16
16
|
*/
|
|
17
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
18
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
19
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
20
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
21
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
22
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
23
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
24
|
+
});
|
|
25
|
+
};
|
|
26
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
27
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
28
|
+
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
29
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
30
|
+
function step(op) {
|
|
31
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
32
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
33
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
34
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
35
|
+
switch (op[0]) {
|
|
36
|
+
case 0: case 1: t = op; break;
|
|
37
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
38
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
39
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
40
|
+
default:
|
|
41
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
42
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
43
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
44
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
45
|
+
if (t[2]) _.ops.pop();
|
|
46
|
+
_.trys.pop(); continue;
|
|
47
|
+
}
|
|
48
|
+
op = body.call(thisArg, _);
|
|
49
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
50
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
51
|
+
}
|
|
52
|
+
};
|
|
17
53
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
54
|
exports.default = probeDRMInfos;
|
|
55
|
+
var can_rely_on_request_media_key_system_access_1 = require("../../../../compat/can_rely_on_request_media_key_system_access");
|
|
19
56
|
var eme_1 = require("../../../../compat/eme");
|
|
57
|
+
var generate_init_data_1 = require("../../../../compat/generate_init_data");
|
|
20
58
|
var is_null_or_undefined_1 = require("../../../../utils/is_null_or_undefined");
|
|
21
59
|
var log_1 = require("../log");
|
|
22
60
|
var types_1 = require("../types");
|
|
@@ -25,6 +63,7 @@ var types_1 = require("../types");
|
|
|
25
63
|
* @returns {Promise}
|
|
26
64
|
*/
|
|
27
65
|
function probeDRMInfos(mediaConfig) {
|
|
66
|
+
var _this = this;
|
|
28
67
|
var keySystem = mediaConfig.keySystem;
|
|
29
68
|
if ((0, is_null_or_undefined_1.default)(keySystem) || (0, is_null_or_undefined_1.default)(keySystem.type)) {
|
|
30
69
|
return Promise.reject("MediaCapabilitiesProber >>> API_CALL: " +
|
|
@@ -42,14 +81,52 @@ function probeDRMInfos(mediaConfig) {
|
|
|
42
81
|
}
|
|
43
82
|
return eme_1.default
|
|
44
83
|
.requestMediaKeySystemAccess(type, [configuration])
|
|
45
|
-
.then(function (keySystemAccess) {
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
84
|
+
.then(function (keySystemAccess) { return __awaiter(_this, void 0, void 0, function () {
|
|
85
|
+
var mediaKeys, session, initData, status_1, err_1, statusError, status_2;
|
|
86
|
+
return __generator(this, function (_a) {
|
|
87
|
+
switch (_a.label) {
|
|
88
|
+
case 0:
|
|
89
|
+
if (!!(0, can_rely_on_request_media_key_system_access_1.canRelyOnRequestMediaKeySystemAccess)(type)) return [3 /*break*/, 6];
|
|
90
|
+
_a.label = 1;
|
|
91
|
+
case 1:
|
|
92
|
+
_a.trys.push([1, 4, , 5]);
|
|
93
|
+
return [4 /*yield*/, keySystemAccess.createMediaKeys()];
|
|
94
|
+
case 2:
|
|
95
|
+
mediaKeys = _a.sent();
|
|
96
|
+
session = mediaKeys.createSession();
|
|
97
|
+
initData = (0, generate_init_data_1.generatePlayReadyInitData)(generate_init_data_1.DUMMY_PLAY_READY_HEADER);
|
|
98
|
+
return [4 /*yield*/, session.generateRequest("cenc", initData)];
|
|
99
|
+
case 3:
|
|
100
|
+
_a.sent();
|
|
101
|
+
session.close().catch(function () {
|
|
102
|
+
log_1.default.warn("DRM: Failed to close the dummy session");
|
|
103
|
+
});
|
|
104
|
+
result.compatibleConfiguration = keySystemAccess.getConfiguration();
|
|
105
|
+
status_1 = [
|
|
106
|
+
types_1.ProberStatus.Supported,
|
|
107
|
+
result,
|
|
108
|
+
];
|
|
109
|
+
return [2 /*return*/, status_1];
|
|
110
|
+
case 4:
|
|
111
|
+
err_1 = _a.sent();
|
|
112
|
+
log_1.default.debug("DRM: KeySystemAccess was granted but it is not usable");
|
|
113
|
+
statusError = [
|
|
114
|
+
types_1.ProberStatus.NotSupported,
|
|
115
|
+
result,
|
|
116
|
+
];
|
|
117
|
+
return [2 /*return*/, statusError];
|
|
118
|
+
case 5: return [3 /*break*/, 7];
|
|
119
|
+
case 6:
|
|
120
|
+
result.compatibleConfiguration = keySystemAccess.getConfiguration();
|
|
121
|
+
status_2 = [
|
|
122
|
+
types_1.ProberStatus.Supported,
|
|
123
|
+
result,
|
|
124
|
+
];
|
|
125
|
+
return [2 /*return*/, status_2];
|
|
126
|
+
case 7: return [2 /*return*/];
|
|
127
|
+
}
|
|
128
|
+
});
|
|
129
|
+
}); })
|
|
53
130
|
.catch(function () {
|
|
54
131
|
return [types_1.ProberStatus.NotSupported, result];
|
|
55
132
|
});
|
|
@@ -70,7 +70,7 @@ function constructDebugGeneralInfo(instance, parentElt, cancelSignal) {
|
|
|
70
70
|
else {
|
|
71
71
|
valuesLine1.push(["wo", "0"]);
|
|
72
72
|
}
|
|
73
|
-
var valuesLine2 = [];
|
|
73
|
+
var valuesLine2 = [["v", instance.version]];
|
|
74
74
|
var ks = instance.getKeySystemConfiguration();
|
|
75
75
|
if (ks !== null) {
|
|
76
76
|
valuesLine2.push(["ks", ks.keySystem]);
|
|
@@ -161,7 +161,7 @@ var Player = /** @class */ (function (_super) {
|
|
|
161
161
|
// Workaround to support Firefox autoplay on FF 42.
|
|
162
162
|
// See: https://bugzilla.mozilla.org/show_bug.cgi?id=1194624
|
|
163
163
|
videoElement.preload = "auto";
|
|
164
|
-
_this.version = /* PLAYER_VERSION */ "4.2.0
|
|
164
|
+
_this.version = /* PLAYER_VERSION */ "4.2.0";
|
|
165
165
|
_this.log = log_1.default;
|
|
166
166
|
_this.state = "STOPPED";
|
|
167
167
|
_this.videoElement = videoElement;
|
|
@@ -2689,5 +2689,5 @@ var Player = /** @class */ (function (_super) {
|
|
|
2689
2689
|
Player._priv_currentlyUsedVideoElements = new WeakSet();
|
|
2690
2690
|
return Player;
|
|
2691
2691
|
}(event_emitter_1.default));
|
|
2692
|
-
Player.version = /* PLAYER_VERSION */ "4.2.0
|
|
2692
|
+
Player.version = /* PLAYER_VERSION */ "4.2.0";
|
|
2693
2693
|
exports.default = Player;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create_or_load_session.d.ts","sourceRoot":"","sources":["../../../../src/main_thread/decrypt/create_or_load_session.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAE/D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAErE,OAAO,KAAK,EAAE,wBAAwB,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAChF,OAAO,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAC;AAGrD,OAAO,KAAK,gBAAgB,MAAM,4BAA4B,CAAC;AAE/D;;;;;;;;;;;;;;;;GAgBG;AACH,wBAA8B,mBAAmB,CAC/C,kBAAkB,EAAE,wBAAwB,EAC5C,MAAM,EAAE,sBAAsB,EAC9B,iBAAiB,EAAE,mBAAmB,EACtC,mBAAmB,EAAE,MAAM,EAC3B,YAAY,EAAE,kBAAkB,GAC/B,OAAO,CAAC,0BAA0B,CAAC,
|
|
1
|
+
{"version":3,"file":"create_or_load_session.d.ts","sourceRoot":"","sources":["../../../../src/main_thread/decrypt/create_or_load_session.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAE/D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAErE,OAAO,KAAK,EAAE,wBAAwB,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAChF,OAAO,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAC;AAGrD,OAAO,KAAK,gBAAgB,MAAM,4BAA4B,CAAC;AAE/D;;;;;;;;;;;;;;;;GAgBG;AACH,wBAA8B,mBAAmB,CAC/C,kBAAkB,EAAE,wBAAwB,EAC5C,MAAM,EAAE,sBAAsB,EAC9B,iBAAiB,EAAE,mBAAmB,EACtC,mBAAmB,EAAE,MAAM,EAC3B,YAAY,EAAE,kBAAkB,GAC/B,OAAO,CAAC,0BAA0B,CAAC,CA2DrC;AAED,gDAAgD;AAChD,MAAM,WAAW,uBAAuB;IACtC,kCAAkC;IAClC,eAAe,EAAE,eAAe,GAAG,sBAAsB,CAAC;IAC1D,sDAAsD;IACtD,WAAW,EAAE,mBAAmB,CAAC;IACjC,8DAA8D;IAC9D,gBAAgB,EAAE,gBAAgB,CAAC;CACpC;AAED,iEAAiE;AACjE,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,0BAA0B,CAAC,OAAO,CAAC;IACzC,KAAK,EAAE,uBAAuB,CAAC;CAChC;AAED,oEAAoE;AACpE,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,0BAA0B,CAAC,iBAAiB,CAAC;IACnD,KAAK,EAAE,uBAAuB,CAAC;CAChC;AAED,uEAAuE;AACvE,MAAM,WAAW,6BAA6B;IAC5C,IAAI,EAAE,0BAA0B,CAAC,uBAAuB,CAAC;IACzD,KAAK,EAAE,uBAAuB,CAAC;CAChC;AAED,+DAA+D;AAC/D,MAAM,MAAM,0BAA0B,GAClC,eAAe,GACf,kBAAkB,GAClB,6BAA6B,CAAC"}
|
|
@@ -112,7 +112,10 @@ function createOrLoadSession(initializationData, stores, wantedSessionType, maxS
|
|
|
112
112
|
throw cancelSignal.cancellationError; // stop here if cancelled since
|
|
113
113
|
}
|
|
114
114
|
_a.label = 2;
|
|
115
|
-
case 2: return [4 /*yield*/, (0, clean_old_loaded_sessions_1.default)(loadedSessionsStore,
|
|
115
|
+
case 2: return [4 /*yield*/, (0, clean_old_loaded_sessions_1.default)(loadedSessionsStore,
|
|
116
|
+
// Account for the next session we will be creating
|
|
117
|
+
// Note that `maxSessionCacheSize < 0 has special semantic (no limit)`
|
|
118
|
+
maxSessionCacheSize <= 0 ? maxSessionCacheSize : maxSessionCacheSize - 1)];
|
|
116
119
|
case 3:
|
|
117
120
|
_a.sent();
|
|
118
121
|
if (cancelSignal.cancellationError !== null) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"find_key_system.d.ts","sourceRoot":"","sources":["../../../../src/main_thread/decrypt/find_key_system.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;AAE9E,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAUpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAK3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAKrE,MAAM,MAAM,iBAAiB,GAAG,KAAK,CAAC;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC,CAAC;AAEH,MAAM,WAAW,0BAA0B;IACzC,qEAAqE;IACrE,oBAAoB,EAAE,oBAAoB,GAAG,2BAA2B,CAAC;IACzE;;;OAGG;IACH,kBAAkB,EAAE,2BAA2B,CAAC;IAChD;;;OAGG;IACH,OAAO,EAAE,gBAAgB,CAAC;IAC1B,oFAAoF;IACpF,YAAY,EAAE,iBAAiB,CAAC;CACjC;AAED,MAAM,WAAW,+BAA+B;IAC9C,IAAI,EAAE,+BAA+B,CAAC;IACtC,KAAK,EAAE,0BAA0B,CAAC;CACnC;AAED,MAAM,WAAW,gCAAgC;IAC/C,IAAI,EAAE,gCAAgC,CAAC;IACvC,KAAK,EAAE,0BAA0B,CAAC;CACnC;AAED,MAAM,MAAM,+BAA+B,GACvC,+BAA+B,GAC/B,gCAAgC,CAAC;AAkPrC;;;;;;;GAOG;AACH,wBAAgB,wCAAwC,CACtD,oBAAoB,EAAE,2BAA2B,EACjD,gBAAgB,EAAE,2BAA2B,GAC5C,iBAAiB,CA2CnB;AACD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,OAAO,UAAU,uBAAuB,CAC7C,YAAY,EAAE,aAAa,EAC3B,iBAAiB,EAAE,gBAAgB,EAAE,EACrC,YAAY,EAAE,kBAAkB,GAC/B,OAAO,CAAC,+BAA+B,CAAC,CA+H1C;AAED;;;;;;GAMG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,MAAM,EACf,uBAAuB,EAAE,2BAA2B,EAAE,+
|
|
1
|
+
{"version":3,"file":"find_key_system.d.ts","sourceRoot":"","sources":["../../../../src/main_thread/decrypt/find_key_system.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;AAE9E,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAUpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAK3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAKrE,MAAM,MAAM,iBAAiB,GAAG,KAAK,CAAC;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC,CAAC;AAEH,MAAM,WAAW,0BAA0B;IACzC,qEAAqE;IACrE,oBAAoB,EAAE,oBAAoB,GAAG,2BAA2B,CAAC;IACzE;;;OAGG;IACH,kBAAkB,EAAE,2BAA2B,CAAC;IAChD;;;OAGG;IACH,OAAO,EAAE,gBAAgB,CAAC;IAC1B,oFAAoF;IACpF,YAAY,EAAE,iBAAiB,CAAC;CACjC;AAED,MAAM,WAAW,+BAA+B;IAC9C,IAAI,EAAE,+BAA+B,CAAC;IACtC,KAAK,EAAE,0BAA0B,CAAC;CACnC;AAED,MAAM,WAAW,gCAAgC;IAC/C,IAAI,EAAE,gCAAgC,CAAC;IACvC,KAAK,EAAE,0BAA0B,CAAC;CACnC;AAED,MAAM,MAAM,+BAA+B,GACvC,+BAA+B,GAC/B,gCAAgC,CAAC;AAkPrC;;;;;;;GAOG;AACH,wBAAgB,wCAAwC,CACtD,oBAAoB,EAAE,2BAA2B,EACjD,gBAAgB,EAAE,2BAA2B,GAC5C,iBAAiB,CA2CnB;AACD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,OAAO,UAAU,uBAAuB,CAC7C,YAAY,EAAE,aAAa,EAC3B,iBAAiB,EAAE,gBAAgB,EAAE,EACrC,YAAY,EAAE,kBAAkB,GAC/B,OAAO,CAAC,+BAA+B,CAAC,CA+H1C;AAED;;;;;;GAMG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,MAAM,EACf,uBAAuB,EAAE,2BAA2B,EAAE,+FAsBvD"}
|
|
@@ -504,6 +504,9 @@ function testKeySystem(keyType, keySystemConfigurations) {
|
|
|
504
504
|
return [4 /*yield*/, session.generateRequest("cenc", initData)];
|
|
505
505
|
case 4:
|
|
506
506
|
_a.sent();
|
|
507
|
+
session.close().catch(function () {
|
|
508
|
+
log_1.default.warn("DRM: Failed to close the dummy session");
|
|
509
|
+
});
|
|
507
510
|
return [3 /*break*/, 6];
|
|
508
511
|
case 5:
|
|
509
512
|
err_1 = _a.sent();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get_media_keys.d.ts","sourceRoot":"","sources":["../../../../src/main_thread/decrypt/get_media_keys.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;AAE9E,OAAO,KAAK,EAAE,gBAAgB,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAGtF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAErE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAuBtD,8CAA8C;AAC9C,MAAM,WAAW,eAAe;IAC9B,+EAA+E;IAC/E,oBAAoB,EAAE,oBAAoB,GAAG,2BAA2B,CAAC;IACzE;;;OAGG;IACH,kBAAkB,EAAE,2BAA2B,CAAC;IAChD,8BAA8B;IAC9B,SAAS,EAAE,SAAS,GAAG,gBAAgB,CAAC;IACxC,+DAA+D;IAC/D,MAAM,EAAE,sBAAsB,CAAC;IAC/B,qEAAqE;IACrE,OAAO,EAAE,gBAAgB,CAAC;IAC1B,yBAAyB;IACzB,YAAY,EAAE,iBAAiB,CAAC;CACjC;AAED;;;;;;;;;;;;GAYG;AACH,wBAA8B,iBAAiB,CAC7C,YAAY,EAAE,aAAa,EAC3B,iBAAiB,EAAE,gBAAgB,EAAE,EACrC,YAAY,EAAE,kBAAkB,GAC/B,OAAO,CAAC,eAAe,CAAC,
|
|
1
|
+
{"version":3,"file":"get_media_keys.d.ts","sourceRoot":"","sources":["../../../../src/main_thread/decrypt/get_media_keys.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;AAE9E,OAAO,KAAK,EAAE,gBAAgB,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAGtF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAErE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAuBtD,8CAA8C;AAC9C,MAAM,WAAW,eAAe;IAC9B,+EAA+E;IAC/E,oBAAoB,EAAE,oBAAoB,GAAG,2BAA2B,CAAC;IACzE;;;OAGG;IACH,kBAAkB,EAAE,2BAA2B,CAAC;IAChD,8BAA8B;IAC9B,SAAS,EAAE,SAAS,GAAG,gBAAgB,CAAC;IACxC,+DAA+D;IAC/D,MAAM,EAAE,sBAAsB,CAAC;IAC/B,qEAAqE;IACrE,OAAO,EAAE,gBAAgB,CAAC;IAC1B,yBAAyB;IACzB,YAAY,EAAE,iBAAiB,CAAC;CACjC;AAED;;;;;;;;;;;;GAYG;AACH,wBAA8B,iBAAiB,CAC7C,YAAY,EAAE,aAAa,EAC3B,iBAAiB,EAAE,gBAAgB,EAAE,EACrC,YAAY,EAAE,kBAAkB,GAC/B,OAAO,CAAC,eAAe,CAAC,CAqD1B"}
|
|
@@ -101,7 +101,8 @@ function getMediaKeysInfos(mediaElement, keySystemsConfigs, cancelSignal) {
|
|
|
101
101
|
_a = evt.value, options = _a.options, mediaKeySystemAccess = _a.mediaKeySystemAccess, askedConfiguration = _a.askedConfiguration, codecSupport = _a.codecSupport;
|
|
102
102
|
currentState = media_keys_infos_store_1.default.getState(mediaElement);
|
|
103
103
|
persistentSessionsStore = createPersistentSessionsStorage(options);
|
|
104
|
-
if (
|
|
104
|
+
if (evt.value.options.reuseMediaKeys !== false &&
|
|
105
|
+
(0, can_reuse_media_keys_1.default)() &&
|
|
105
106
|
currentState !== null &&
|
|
106
107
|
evt.type === "reuse-media-key-system-access") {
|
|
107
108
|
log_1.default.debug("DRM: Reusing already created MediaKeys");
|
|
@@ -35,7 +35,7 @@ import type { IInitialTimeOptions } from "./utils/get_initial_time";
|
|
|
35
35
|
*/
|
|
36
36
|
export default class MediaSourceContentInitializer extends ContentInitializer {
|
|
37
37
|
/** Constructor settings associated to this `MediaSourceContentInitializer`. */
|
|
38
|
-
private
|
|
38
|
+
private _initSettings;
|
|
39
39
|
/**
|
|
40
40
|
* `TaskCanceller` allowing to abort everything that the
|
|
41
41
|
* `MediaSourceContentInitializer` is doing.
|
|
@@ -91,7 +91,17 @@ export default class MediaSourceContentInitializer extends ContentInitializer {
|
|
|
91
91
|
*/
|
|
92
92
|
updateContentUrls(urls: string[] | undefined, refreshNow: boolean): void;
|
|
93
93
|
dispose(): void;
|
|
94
|
+
/**
|
|
95
|
+
* Callback called when an error interrupting playback arised.
|
|
96
|
+
* @param {*} err
|
|
97
|
+
*/
|
|
94
98
|
private _onFatalError;
|
|
99
|
+
/**
|
|
100
|
+
* Initialize decryption mechanisms if needed and begin creating and relying
|
|
101
|
+
* on the initial `MediaSourceInterface` for this content.
|
|
102
|
+
* @param {HTMLMediaElement|null} mediaElement
|
|
103
|
+
* @returns {Promise.<Object>}
|
|
104
|
+
*/
|
|
95
105
|
private _initializeMediaSourceAndDecryption;
|
|
96
106
|
private _onInitialMediaSourceReady;
|
|
97
107
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"media_source_content_initializer.d.ts","sourceRoot":"","sources":["../../../../src/main_thread/init/media_source_content_initializer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;AAK9E,OAAO,KAAK,EACV,wCAAwC,EAEzC,MAAM,qBAAqB,CAAC;AAoB7B,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,yBAAyB,CAAC;AAC7E,OAAO,KAAK,EACV,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAEjB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAO5D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAStE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAG7C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAUpE;;;;;;;;;;GAUG;AACH,MAAM,CAAC,OAAO,OAAO,6BAA8B,SAAQ,kBAAkB;IAC3E,+EAA+E;IAC/E,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"media_source_content_initializer.d.ts","sourceRoot":"","sources":["../../../../src/main_thread/init/media_source_content_initializer.ts"],"names":[],"mappings":"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"}
|
|
@@ -142,7 +142,7 @@ var MediaSourceContentInitializer = /** @class */ (function (_super) {
|
|
|
142
142
|
*/
|
|
143
143
|
function MediaSourceContentInitializer(settings) {
|
|
144
144
|
var _this = _super.call(this) || this;
|
|
145
|
-
_this.
|
|
145
|
+
_this._initSettings = settings;
|
|
146
146
|
_this._initCanceller = new task_canceller_1.default();
|
|
147
147
|
_this._manifest = null;
|
|
148
148
|
_this._decryptionCapabilities = { status: "uninitialized", value: null };
|
|
@@ -208,6 +208,10 @@ var MediaSourceContentInitializer = /** @class */ (function (_super) {
|
|
|
208
208
|
MediaSourceContentInitializer.prototype.dispose = function () {
|
|
209
209
|
this._initCanceller.cancel();
|
|
210
210
|
};
|
|
211
|
+
/**
|
|
212
|
+
* Callback called when an error interrupting playback arised.
|
|
213
|
+
* @param {*} err
|
|
214
|
+
*/
|
|
211
215
|
MediaSourceContentInitializer.prototype._onFatalError = function (err) {
|
|
212
216
|
if (this._initCanceller.isUsed()) {
|
|
213
217
|
return;
|
|
@@ -215,11 +219,17 @@ var MediaSourceContentInitializer = /** @class */ (function (_super) {
|
|
|
215
219
|
this._initCanceller.cancel();
|
|
216
220
|
this.trigger("error", err);
|
|
217
221
|
};
|
|
222
|
+
/**
|
|
223
|
+
* Initialize decryption mechanisms if needed and begin creating and relying
|
|
224
|
+
* on the initial `MediaSourceInterface` for this content.
|
|
225
|
+
* @param {HTMLMediaElement|null} mediaElement
|
|
226
|
+
* @returns {Promise.<Object>}
|
|
227
|
+
*/
|
|
218
228
|
MediaSourceContentInitializer.prototype._initializeMediaSourceAndDecryption = function (mediaElement) {
|
|
219
229
|
var _this = this;
|
|
220
230
|
var initCanceller = this._initCanceller;
|
|
221
231
|
return (0, create_cancellable_promise_1.default)(initCanceller.signal, function (resolve) {
|
|
222
|
-
var keySystems = _this.
|
|
232
|
+
var keySystems = _this._initSettings.keySystems;
|
|
223
233
|
/** Initialize decryption capabilities. */
|
|
224
234
|
var _a = (0, initialize_content_decryption_1.default)(mediaElement, keySystems, {
|
|
225
235
|
onWarning: function (err) { return _this.trigger("warning", err); },
|
|
@@ -403,7 +413,7 @@ var MediaSourceContentInitializer = /** @class */ (function (_super) {
|
|
|
403
413
|
return __generator(this, function (_d) {
|
|
404
414
|
switch (_d.label) {
|
|
405
415
|
case 0:
|
|
406
|
-
_a = this.
|
|
416
|
+
_a = this._initSettings, adaptiveOptions = _a.adaptiveOptions, autoPlay = _a.autoPlay, bufferOptions = _a.bufferOptions, lowLatencyMode = _a.lowLatencyMode, segmentRequestOptions = _a.segmentRequestOptions, speed = _a.speed, startAt = _a.startAt, textTrackOptions = _a.textTrackOptions, transport = _a.transport;
|
|
407
417
|
initCanceller = this._initCanceller;
|
|
408
418
|
(0, assert_1.default)(this._manifest !== null);
|
|
409
419
|
_d.label = 1;
|
|
@@ -470,14 +480,7 @@ var MediaSourceContentInitializer = /** @class */ (function (_super) {
|
|
|
470
480
|
return this._onFatalError(error);
|
|
471
481
|
}
|
|
472
482
|
var textDisplayerInterface = null;
|
|
473
|
-
var textDisplayer =
|
|
474
|
-
if (this._settings.textTrackOptions.textTrackMode === "html" &&
|
|
475
|
-
features_1.default.htmlTextDisplayer !== null) {
|
|
476
|
-
textDisplayer = new features_1.default.htmlTextDisplayer(mediaElement, this._settings.textTrackOptions.textTrackElement);
|
|
477
|
-
}
|
|
478
|
-
else if (features_1.default.nativeTextDisplayer !== null) {
|
|
479
|
-
textDisplayer = new features_1.default.nativeTextDisplayer(mediaElement);
|
|
480
|
-
}
|
|
483
|
+
var textDisplayer = createTextDisplayer(mediaElement, this._initSettings.textTrackOptions);
|
|
481
484
|
if (textDisplayer !== null) {
|
|
482
485
|
var sender_1 = new main_thread_text_displayer_interface_1.default(textDisplayer);
|
|
483
486
|
textDisplayerInterface = sender_1;
|
|
@@ -922,6 +925,15 @@ var MediaSourceContentInitializer = /** @class */ (function (_super) {
|
|
|
922
925
|
return MediaSourceContentInitializer;
|
|
923
926
|
}(types_1.ContentInitializer));
|
|
924
927
|
exports.default = MediaSourceContentInitializer;
|
|
928
|
+
function createTextDisplayer(mediaElement, textTrackOptions) {
|
|
929
|
+
if (textTrackOptions.textTrackMode === "html" && features_1.default.htmlTextDisplayer !== null) {
|
|
930
|
+
return new features_1.default.htmlTextDisplayer(mediaElement, textTrackOptions.textTrackElement);
|
|
931
|
+
}
|
|
932
|
+
else if (features_1.default.nativeTextDisplayer !== null) {
|
|
933
|
+
return new features_1.default.nativeTextDisplayer(mediaElement);
|
|
934
|
+
}
|
|
935
|
+
return null;
|
|
936
|
+
}
|
|
925
937
|
/**
|
|
926
938
|
* Change the decipherability of Representations which have their key id in one
|
|
927
939
|
* of the given Arrays:
|
|
@@ -51,7 +51,8 @@ export default class MultiThreadContentInitializer extends ContentInitializer {
|
|
|
51
51
|
*/
|
|
52
52
|
private _currentMediaSourceCanceller;
|
|
53
53
|
/**
|
|
54
|
-
* Stores the resolvers and the current messageId that is sent to the web worker to
|
|
54
|
+
* Stores the resolvers and the current messageId that is sent to the web worker to
|
|
55
|
+
* receive segment sink metrics.
|
|
55
56
|
* The purpose of collecting metrics is for monitoring and debugging.
|
|
56
57
|
*/
|
|
57
58
|
private _segmentMetrics;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multi_thread_content_initializer.d.ts","sourceRoot":"","sources":["../../../../src/main_thread/init/multi_thread_content_initializer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;AAI9E,OAAO,KAAK,EACV,wCAAwC,EAGzC,MAAM,kBAAkB,CAAC;AAU1B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAMxD,OAAO,wBAAwB,MAAM,uCAAuC,CAAC;AAO7E,OAAO,KAAK,EAEV,6BAA6B,EAC9B,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EACV,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAEjB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAM1D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAMtE,OAAO,KAAK,iBAAiB,MAAM,YAAY,CAAC;AAIhD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAG7C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAIpE,OAAO,qBAAqB,MAAM,gCAAgC,CAAC;AACnE,OAAO,mBAAmB,MAAM,qDAAqD,CAAC;AAMtF;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,6BAA8B,SAAQ,kBAAkB;IAC3E,+EAA+E;IAC/E,OAAO,CAAC,SAAS,CAAuB;IAExC;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,qBAAqB,CAAwB;IAErD;;;;OAIG;IACH,OAAO,CAAC,mBAAmB,CAAoD;IAC/E;;;OAGG;IACH,OAAO,CAAC,cAAc,CAAgB;IACtC;;;;;;OAMG;IACH,OAAO,CAAC,4BAA4B,CAAgB;IAEpD
|
|
1
|
+
{"version":3,"file":"multi_thread_content_initializer.d.ts","sourceRoot":"","sources":["../../../../src/main_thread/init/multi_thread_content_initializer.ts"],"names":[],"mappings":"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"}
|
|
@@ -145,7 +145,7 @@ var MultiThreadContentInitializer = /** @class */ (function (_super) {
|
|
|
145
145
|
_this._currentContentInfo = null;
|
|
146
146
|
_this._segmentMetrics = {
|
|
147
147
|
lastMessageId: 0,
|
|
148
|
-
resolvers:
|
|
148
|
+
resolvers: new Map(),
|
|
149
149
|
};
|
|
150
150
|
_this._queuedWorkerMessages = null;
|
|
151
151
|
return _this;
|
|
@@ -930,10 +930,9 @@ var MultiThreadContentInitializer = /** @class */ (function (_super) {
|
|
|
930
930
|
if (((_27 = _this._currentContentInfo) === null || _27 === void 0 ? void 0 : _27.contentId) !== msgData.contentId) {
|
|
931
931
|
return;
|
|
932
932
|
}
|
|
933
|
-
var resolveFn = _this._segmentMetrics.resolvers
|
|
933
|
+
var resolveFn = _this._segmentMetrics.resolvers.get(msgData.value.messageId);
|
|
934
934
|
if (resolveFn !== undefined) {
|
|
935
935
|
resolveFn(msgData.value.segmentSinkMetrics);
|
|
936
|
-
delete _this._segmentMetrics.resolvers[msgData.value.messageId];
|
|
937
936
|
}
|
|
938
937
|
else {
|
|
939
938
|
log_1.default.error("MTCI: Failed to send segment sink store update");
|
|
@@ -1298,11 +1297,16 @@ var MultiThreadContentInitializer = /** @class */ (function (_super) {
|
|
|
1298
1297
|
value: { messageId: messageId },
|
|
1299
1298
|
});
|
|
1300
1299
|
return [2 /*return*/, new Promise(function (resolve, reject) {
|
|
1301
|
-
_this._segmentMetrics.resolvers[messageId] = resolve;
|
|
1302
1300
|
var rejectFn = function (err) {
|
|
1303
|
-
|
|
1301
|
+
cancelSignal.deregister(rejectFn);
|
|
1302
|
+
_this._segmentMetrics.resolvers.delete(messageId);
|
|
1304
1303
|
return reject(err);
|
|
1305
1304
|
};
|
|
1305
|
+
_this._segmentMetrics.resolvers.set(messageId, function (value) {
|
|
1306
|
+
cancelSignal.deregister(rejectFn);
|
|
1307
|
+
_this._segmentMetrics.resolvers.delete(messageId);
|
|
1308
|
+
resolve(value);
|
|
1309
|
+
});
|
|
1306
1310
|
cancelSignal.register(rejectFn);
|
|
1307
1311
|
})];
|
|
1308
1312
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"initial_seek_and_play.d.ts","sourceRoot":"","sources":["../../../../../src/main_thread/init/utils/initial_seek_and_play.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6CAA6C,CAAC;AAKjF,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,4BAA4B,CAAC;AAEhF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAEzE,OAAO,KAAK,EAEV,kBAAkB,EACnB,MAAM,+BAA+B,CAAC;AAEvC,+DAA+D;AAC/D,MAAM,MAAM,iBAAiB;AAC3B,0EAA0E;AACxE;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE;AACrB;;;GAGG;GACD;IAAE,IAAI,EAAE,kBAAkB,CAAA;CAAE;AAC9B,sCAAsC;GACpC;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,CAAC;AAEzB,+CAA+C;AAC/C,MAAM,WAAW,yBAAyB;IACxC,kEAAkE;IAClE,cAAc,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAE3C;;;OAGG;IACH,oBAAoB,EAAE,wBAAwB,CAAC,OAAO,CAAC,CAAC;CACzD;AAED;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,UAAU,yBAAyB,CAC/C,EACE,YAAY,EACZ,gBAAgB,EAChB,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,SAAS,GACV,EAAE;IACD,YAAY,EAAE,aAAa,CAAC;IAC5B,gBAAgB,EAAE,6BAA6B,CAAC;IAChD,SAAS,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC;IAC/C,YAAY,EAAE,OAAO,CAAC;IACtB,YAAY,EAAE,OAAO,CAAC;IACtB,SAAS,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,IAAI,CAAC;CACxC,EACD,YAAY,EAAE,kBAAkB,GAC/B,yBAAyB,
|
|
1
|
+
{"version":3,"file":"initial_seek_and_play.d.ts","sourceRoot":"","sources":["../../../../../src/main_thread/init/utils/initial_seek_and_play.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6CAA6C,CAAC;AAKjF,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,4BAA4B,CAAC;AAEhF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAEzE,OAAO,KAAK,EAEV,kBAAkB,EACnB,MAAM,+BAA+B,CAAC;AAEvC,+DAA+D;AAC/D,MAAM,MAAM,iBAAiB;AAC3B,0EAA0E;AACxE;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE;AACrB;;;GAGG;GACD;IAAE,IAAI,EAAE,kBAAkB,CAAA;CAAE;AAC9B,sCAAsC;GACpC;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,CAAC;AAEzB,+CAA+C;AAC/C,MAAM,WAAW,yBAAyB;IACxC,kEAAkE;IAClE,cAAc,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAE3C;;;OAGG;IACH,oBAAoB,EAAE,wBAAwB,CAAC,OAAO,CAAC,CAAC;CACzD;AAED;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,UAAU,yBAAyB,CAC/C,EACE,YAAY,EACZ,gBAAgB,EAChB,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,SAAS,GACV,EAAE;IACD,YAAY,EAAE,aAAa,CAAC;IAC5B,gBAAgB,EAAE,6BAA6B,CAAC;IAChD,SAAS,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC;IAC/C,YAAY,EAAE,OAAO,CAAC;IACtB,YAAY,EAAE,OAAO,CAAC;IACtB,SAAS,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,IAAI,CAAC;CACxC,EACD,YAAY,EAAE,kBAAkB,GAC/B,yBAAyB,CA+N3B"}
|
|
@@ -64,13 +64,9 @@ function performInitialSeekAndPlay(_a, cancelSignal) {
|
|
|
64
64
|
if (initiallySeekedTime === undefined &&
|
|
65
65
|
obs.readyState < HTMLMediaElement.HAVE_CURRENT_DATA) {
|
|
66
66
|
/**
|
|
67
|
-
*
|
|
68
|
-
*
|
|
69
|
-
*
|
|
70
|
-
* If so, the range in which it is possible to seek is not yet known.
|
|
71
|
-
* To solve this, the seek should be done after readyState HAVE_CURRENT_DATA (2),
|
|
72
|
-
* at that time the previously mentioned attributes are correctly initialized and
|
|
73
|
-
* the range in which it is possible to seek is correctly known.
|
|
67
|
+
* The starting position may not be known yet.
|
|
68
|
+
* Postpone the seek to a moment where the starting position should be known,
|
|
69
|
+
* assumely it's when readyState is greater or equal to HAVE_CURRENT_DATA (2).
|
|
74
70
|
* If the initiallySeekedTime is still `undefined` when the readyState is >= 2,
|
|
75
71
|
* let assume that the initiallySeekedTime will never be known and continue
|
|
76
72
|
* the logic without seeking.
|
|
@@ -37,6 +37,7 @@ export default class NativeTextDisplayer implements ITextDisplayer {
|
|
|
37
37
|
reset(): void;
|
|
38
38
|
stop(): void;
|
|
39
39
|
private _removeData;
|
|
40
|
+
private _clearTrackElement;
|
|
40
41
|
}
|
|
41
42
|
/** Data of chunks that should be pushed to the NativeTextDisplayer. */
|
|
42
43
|
export interface INativeTextTracksBufferSegmentData {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"native_text_displayer.d.ts","sourceRoot":"","sources":["../../../../../src/main_thread/text_displayer/native/native_text_displayer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,aAAa,EACd,MAAM,6CAA6C,CAAC;AAIrD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAGpD,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAGnE;;;;;GAKG;AACH,MAAM,CAAC,OAAO,OAAO,mBAAoB,YAAW,cAAc;IAChE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmB;IAC1C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA+B;IAE7D,OAAO,CAAC,SAAS,CAAmB;IAEpC;;OAEG;gBACS,YAAY,EAAE,aAAa;IASvC;;;;OAIG;IACI,YAAY,CAAC,KAAK,EAAE,kBAAkB,GAAG,MAAM,EAAE;IA8FxD;;;;;OAKG;IACI,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE;IAKzD;;;OAGG;IACI,iBAAiB,IAAI,MAAM,EAAE;IAI7B,KAAK,IAAI,IAAI;
|
|
1
|
+
{"version":3,"file":"native_text_displayer.d.ts","sourceRoot":"","sources":["../../../../../src/main_thread/text_displayer/native/native_text_displayer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,aAAa,EACd,MAAM,6CAA6C,CAAC;AAIrD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAGpD,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAGnE;;;;;GAKG;AACH,MAAM,CAAC,OAAO,OAAO,mBAAoB,YAAW,cAAc;IAChE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmB;IAC1C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA+B;IAE7D,OAAO,CAAC,SAAS,CAAmB;IAEpC;;OAEG;gBACS,YAAY,EAAE,aAAa;IASvC;;;;OAIG;IACI,YAAY,CAAC,KAAK,EAAE,kBAAkB,GAAG,MAAM,EAAE;IA8FxD;;;;;OAKG;IACI,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE;IAKzD;;;OAGG;IACI,iBAAiB,IAAI,MAAM,EAAE;IAI7B,KAAK,IAAI,IAAI;IAMb,IAAI,IAAI,IAAI;IAoBnB,OAAO,CAAC,WAAW;IAgBnB,OAAO,CAAC,kBAAkB;CAoB3B;AAED,uEAAuE;AACvE,MAAM,WAAW,kCAAkC;IACjD,8DAA8D;IAC9D,IAAI,EAAE,MAAM,CAAC;IACb,8DAA8D;IAC9D,IAAI,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,2DAA2D;IAC3D,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,0DAA0D;IAC1D,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC1B"}
|
|
@@ -153,22 +153,7 @@ var NativeTextDisplayer = /** @class */ (function () {
|
|
|
153
153
|
NativeTextDisplayer.prototype.reset = function () {
|
|
154
154
|
log_1.default.debug("NTD: Aborting NativeTextDisplayer");
|
|
155
155
|
this._removeData(0, Infinity);
|
|
156
|
-
|
|
157
|
-
if (_trackElement !== undefined && _videoElement.hasChildNodes()) {
|
|
158
|
-
try {
|
|
159
|
-
_videoElement.removeChild(_trackElement);
|
|
160
|
-
}
|
|
161
|
-
catch (_e) {
|
|
162
|
-
log_1.default.warn("NTD: Can't remove track element from the video");
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
// Ugly trick to work-around browser bugs by refreshing its mode
|
|
166
|
-
var oldMode = this._track.mode;
|
|
167
|
-
this._track.mode = "disabled";
|
|
168
|
-
this._track.mode = oldMode;
|
|
169
|
-
if (this._trackElement !== undefined) {
|
|
170
|
-
this._trackElement.innerHTML = "";
|
|
171
|
-
}
|
|
156
|
+
this._clearTrackElement();
|
|
172
157
|
};
|
|
173
158
|
NativeTextDisplayer.prototype.stop = function () {
|
|
174
159
|
log_1.default.debug("NTD: Aborting NativeTextDisplayer");
|
|
@@ -202,6 +187,24 @@ var NativeTextDisplayer = /** @class */ (function () {
|
|
|
202
187
|
}
|
|
203
188
|
this._buffered.remove(start, end);
|
|
204
189
|
};
|
|
190
|
+
NativeTextDisplayer.prototype._clearTrackElement = function () {
|
|
191
|
+
var _a = this, _trackElement = _a._trackElement, _videoElement = _a._videoElement;
|
|
192
|
+
if (_trackElement !== undefined && _videoElement.hasChildNodes()) {
|
|
193
|
+
try {
|
|
194
|
+
_videoElement.removeChild(_trackElement);
|
|
195
|
+
}
|
|
196
|
+
catch (_e) {
|
|
197
|
+
log_1.default.warn("NTD: Can't remove track element from the video");
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
// Ugly trick to work-around browser bugs by refreshing its mode
|
|
201
|
+
var oldMode = this._track.mode;
|
|
202
|
+
this._track.mode = "disabled";
|
|
203
|
+
this._track.mode = oldMode;
|
|
204
|
+
if (this._trackElement !== undefined) {
|
|
205
|
+
this._trackElement.innerHTML = "";
|
|
206
|
+
}
|
|
207
|
+
};
|
|
205
208
|
return NativeTextDisplayer;
|
|
206
209
|
}());
|
|
207
210
|
exports.default = NativeTextDisplayer;
|
|
@@ -473,10 +473,62 @@ export interface IKeySystemOption {
|
|
|
473
473
|
*/
|
|
474
474
|
distinctiveIdentifier?: MediaKeysRequirement | undefined;
|
|
475
475
|
/**
|
|
476
|
-
* If true, all open MediaKeySession (
|
|
477
|
-
* closed when the current playback
|
|
476
|
+
* If true, all open `MediaKeySession` (JavaScript Objects linked to the keys
|
|
477
|
+
* used to decrypt the content) will be closed when the current playback
|
|
478
|
+
* stops.
|
|
479
|
+
*
|
|
480
|
+
* By default, we keep `MediaKeySession` from previous contents (up to
|
|
481
|
+
* `maxSessionCacheSize` `MediaKeySession`) to speed-up playback and avoid
|
|
482
|
+
* round-trips to the license server if the user ever decide to go back to
|
|
483
|
+
* those contents or to other contents relying to the same keys.
|
|
484
|
+
*
|
|
485
|
+
* However we found that some devices poorly handle that optimization.
|
|
486
|
+
*
|
|
487
|
+
* Note that if setting that property to `true` fixes your issue, it may be
|
|
488
|
+
* that it's just the `maxSessionCacheSize` which is for now too high.
|
|
489
|
+
*
|
|
490
|
+
* However if your problem doesn't disappear after setting
|
|
491
|
+
* `closeSessionsOnStop` to `true`, you may try `reuseMediaKeys` next.
|
|
478
492
|
*/
|
|
479
493
|
closeSessionsOnStop?: boolean;
|
|
494
|
+
/**
|
|
495
|
+
* If set to `true` or if not set, we might rely on the previous `MediaKeys`
|
|
496
|
+
* if a compatible one is already set on the media element, allowing to
|
|
497
|
+
* potentially speed-up content playback.
|
|
498
|
+
*
|
|
499
|
+
* If set to `false`, we will create a new `MediaKeys` instance (a
|
|
500
|
+
* JavaScript object needed to decrypt contents) if needed for that content.
|
|
501
|
+
*
|
|
502
|
+
* We noticed that reusing a previous MediaKeys had led to errors on a few
|
|
503
|
+
* devices. For example some smart TVs had shown errors after playing several
|
|
504
|
+
* encrypted contents, errors which disappeared if we renewed the
|
|
505
|
+
* `MediaKeys` for each content.
|
|
506
|
+
*
|
|
507
|
+
* We should already be able to detect most of those cases in the RxPlayer
|
|
508
|
+
* logic. However, it is still possible that we don't know yet of a device
|
|
509
|
+
* which also has problem with that optimization.
|
|
510
|
+
*
|
|
511
|
+
* If you have issues appearing only after playing multiple encrypted
|
|
512
|
+
* contents:
|
|
513
|
+
*
|
|
514
|
+
* - First, try setting the `closeSessionsOnStop` option which is less
|
|
515
|
+
* destructive.
|
|
516
|
+
*
|
|
517
|
+
* If it fixes your issue, it may be that it's just the number of
|
|
518
|
+
* `MediaKeySession` cached by the RxPlayer that is here too high.
|
|
519
|
+
*
|
|
520
|
+
* In that case you can instead update the `maxSessionCacheSize` option
|
|
521
|
+
* to still profit from a `MediaKeySession` cache (which avoid making
|
|
522
|
+
* license requests for already-played contents).
|
|
523
|
+
*
|
|
524
|
+
* If that second option doesn't seem to have an effect, you can just set
|
|
525
|
+
* `closeSessionsOnStop`.
|
|
526
|
+
*
|
|
527
|
+
* - If none of the precedent work-arounds work however, you can try setting
|
|
528
|
+
* `reuseMediaKeys` to `false`. If it fixes your problem, please open an
|
|
529
|
+
* RxPlayer issue so we can add your device to our list.
|
|
530
|
+
*/
|
|
531
|
+
reuseMediaKeys?: boolean | undefined;
|
|
480
532
|
singleLicensePer?: "content" | "periods" | "init-data";
|
|
481
533
|
/**
|
|
482
534
|
* Maximum number of `MediaKeySession` that should be created on the same
|