@mediakind/mkplayer 1.7.0 → 1.8.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/mkplayer.js +1 -1
- package/package.json +2 -2
- package/types/alias/index.d.ts +1 -1
- package/types/classes/common/MKAzukiResponseUtils.js +66 -58
- package/types/classes/common/MKAzukiResponseUtils.js.map +1 -1
- package/types/classes/common/MKEventBase.js +11 -10
- package/types/classes/common/MKEventBase.js.map +1 -1
- package/types/classes/common/MKLocalStorage.js +64 -58
- package/types/classes/common/MKLocalStorage.js.map +1 -1
- package/types/classes/common/MKLog.js +49 -22
- package/types/classes/common/MKLog.js.map +1 -1
- package/types/classes/common/MKPlatform.js +156 -108
- package/types/classes/common/MKPlatform.js.map +1 -1
- package/types/classes/common/MKProgramManager.js +37 -32
- package/types/classes/common/MKProgramManager.js.map +1 -1
- package/types/classes/common/MKSecureUrlManager.js +137 -108
- package/types/classes/common/MKSecureUrlManager.js.map +1 -1
- package/types/classes/common/MKSubtitleOverlay.js +69 -67
- package/types/classes/common/MKSubtitleOverlay.js.map +1 -1
- package/types/classes/common/MKThumbnailManager.js +261 -211
- package/types/classes/common/MKThumbnailManager.js.map +1 -1
- package/types/classes/common/MKUtils.js +162 -100
- package/types/classes/common/MKUtils.js.map +1 -1
- package/types/classes/error/MKAdobeSessionConcurrencyError.js +6 -5
- package/types/classes/error/MKAdobeSessionConcurrencyError.js.map +1 -1
- package/types/classes/error/MKAzukiRequestError.js +8 -7
- package/types/classes/error/MKAzukiRequestError.js.map +1 -1
- package/types/classes/error/MKBitmovinPlayerError.js +31 -12
- package/types/classes/error/MKBitmovinPlayerError.js.map +1 -1
- package/types/classes/error/MKHttpError.js +4 -3
- package/types/classes/error/MKHttpError.js.map +1 -1
- package/types/classes/error/MKPlayerError.js +5 -4
- package/types/classes/error/MKPlayerError.js.map +1 -1
- package/types/classes/error/MKProgramRestrictionError.js +11 -10
- package/types/classes/error/MKProgramRestrictionError.js.map +1 -1
- package/types/classes/player/MKBitmovinPlayer.js +620 -553
- package/types/classes/player/MKBitmovinPlayer.js.map +1 -1
- package/types/classes/player/MKPlayer.d.ts +4 -0
- package/types/classes/player/MKPlayer.js +734 -528
- package/types/classes/player/MKPlayer.js.map +1 -1
- package/types/classes/player/MKStubPlayer.js +263 -273
- package/types/classes/player/MKStubPlayer.js.map +1 -1
- package/types/classes/request/MKAdobeSessionConcurrencyRequest.js +198 -127
- package/types/classes/request/MKAdobeSessionConcurrencyRequest.js.map +1 -1
- package/types/classes/request/MKAzukiRequest.js +381 -268
- package/types/classes/request/MKAzukiRequest.js.map +1 -1
- package/types/classes/request/MKHttpRequest.js +128 -89
- package/types/classes/request/MKHttpRequest.js.map +1 -1
- package/types/constants/MKAzukiRequestEndpoint.js +24 -24
- package/types/constants/MKAzukiRequestEndpoint.js.map +1 -1
- package/types/constants/MKConstants.js +1 -1
- package/types/enums/MKAnalyticsDataName.d.ts +8 -0
- package/types/enums/MKAnalyticsDataName.js +13 -0
- package/types/enums/MKAnalyticsDataName.js.map +1 -0
- package/types/enums/MKErrorCode.d.ts +1 -0
- package/types/enums/MKErrorCode.js +1 -0
- package/types/enums/MKErrorCode.js.map +1 -1
- package/types/enums/MKPlayerEvent.d.ts +6 -1
- package/types/enums/MKPlayerEvent.js +5 -0
- package/types/enums/MKPlayerEvent.js.map +1 -1
- package/types/enums/MKProgramRestrictionType.js.map +1 -1
- package/types/enums/index.d.ts +1 -0
- package/types/enums/index.js +3 -1
- package/types/enums/index.js.map +1 -1
- package/types/interfaces/MKAdaptationPlatformConfig.js +1 -1
- package/types/interfaces/MKAdaptationPlatformConfig.js.map +1 -1
- package/types/interfaces/MKBufferConfig.js +1 -1
- package/types/interfaces/MKBufferConfig.js.map +1 -1
- package/types/interfaces/MKBufferMediaTypeConfig.js +1 -1
- package/types/interfaces/MKBufferMediaTypeConfig.js.map +1 -1
- package/types/interfaces/MKDrmConfig.js +1 -1
- package/types/interfaces/MKDrmConfig.js.map +1 -1
- package/types/interfaces/MKRegisteredSource.d.ts +1 -0
- package/types/interfaces/events/MKAnalyticsDataEvent.d.ts +6 -0
- package/types/interfaces/events/MKAnalyticsDataEvent.js +3 -0
- package/types/interfaces/events/MKAnalyticsDataEvent.js.map +1 -0
- package/types/interfaces/events/MKAudioPlaybackQualityChangedEvent.d.ts +2 -1
- package/types/interfaces/events/MKMediaPlaybackQualityChangeEvent.d.ts +3 -3
- package/types/interfaces/events/MKVSPPSessionIdEvent.d.ts +4 -0
- package/types/interfaces/events/MKVSPPSessionIdEvent.js +3 -0
- package/types/interfaces/events/MKVSPPSessionIdEvent.js.map +1 -0
- package/types/interfaces/events/MKVideoPlaybackQualityChangedEvent.d.ts +2 -1
- package/types/interfaces/events/index.d.ts +2 -0
- package/types/src/alias/index.d.ts +1 -1
- package/types/src/classes/player/MKPlayer.d.ts +4 -0
- package/types/src/enums/MKAnalyticsDataName.d.ts +8 -0
- package/types/src/enums/MKErrorCode.d.ts +1 -0
- package/types/src/enums/MKPlayerEvent.d.ts +6 -1
- package/types/src/enums/index.d.ts +1 -0
- package/types/src/interfaces/MKRegisteredSource.d.ts +1 -0
- package/types/src/interfaces/events/MKAnalyticsDataEvent.d.ts +6 -0
- package/types/src/interfaces/events/MKAudioPlaybackQualityChangedEvent.d.ts +2 -1
- package/types/src/interfaces/events/MKMediaPlaybackQualityChangeEvent.d.ts +3 -3
- package/types/src/interfaces/events/MKVSPPSessionIdEvent.d.ts +4 -0
- package/types/src/interfaces/events/MKVideoPlaybackQualityChangedEvent.d.ts +2 -1
- package/types/src/interfaces/events/index.d.ts +2 -0
- package/types/plugins/fmts/MKFMTSConfig.d.ts +0 -10
- package/types/plugins/fmts/MKFMTSController.d.ts +0 -39
- package/types/plugins/fmts/MKFMTSUtils.d.ts +0 -4
- package/types/plugins/fmts/index.d.ts +0 -2
- package/types/plugins/omsdk/MKOMSDKConfig.d.ts +0 -6
- package/types/plugins/omsdk/MKOMSDKConstants.d.ts +0 -152
- package/types/plugins/omsdk/MKOMSDKController.d.ts +0 -58
- package/types/plugins/omsdk/index.d.ts +0 -2
|
@@ -8,13 +8,41 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
8
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
+
function step(op) {
|
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
18
|
+
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;
|
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
+
switch (op[0]) {
|
|
21
|
+
case 0: case 1: t = op; break;
|
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
+
default:
|
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
+
if (t[2]) _.ops.pop();
|
|
31
|
+
_.trys.pop(); continue;
|
|
32
|
+
}
|
|
33
|
+
op = body.call(thisArg, _);
|
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
+
}
|
|
37
|
+
};
|
|
11
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
39
|
exports.MKSecureUrlManager = void 0;
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
40
|
+
var MKLog_1 = require("./MKLog");
|
|
41
|
+
var MKUtils_1 = require("./MKUtils");
|
|
42
|
+
var request_1 = require("../request");
|
|
43
|
+
var tweetnacl_1 = require("tweetnacl");
|
|
44
|
+
var MKSecureUrlManager = (function () {
|
|
45
|
+
function MKSecureUrlManager(authToken, kssUrl) {
|
|
18
46
|
this.kssUrl = kssUrl;
|
|
19
47
|
this.authToken = authToken;
|
|
20
48
|
this.httpRequest = new request_1.MKHttpRequest();
|
|
@@ -27,117 +55,117 @@ class MKSecureUrlManager {
|
|
|
27
55
|
method: "GET"
|
|
28
56
|
};
|
|
29
57
|
}
|
|
30
|
-
getSignature(url, method
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
return this.getSignature(this.lastRequestInfo.url, this.lastRequestInfo.method, this.lastRequestInfo.excludeParams);
|
|
62
|
-
}
|
|
63
|
-
else {
|
|
64
|
-
return Promise.resolve("");
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
return Promise.reject();
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
signKeyRequest() {
|
|
71
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
72
|
-
return new Promise((resolve, reject) => {
|
|
73
|
-
if (!!!this.kssUrl || !!!this.authToken || !!!this.ed25519Keys.publicKey) {
|
|
74
|
-
return reject(new Error("Invalid input for signKey request!"));
|
|
75
|
-
}
|
|
76
|
-
this.httpRequest.post(this.kssUrl, {
|
|
77
|
-
headers: {
|
|
78
|
-
"Content-Type": "application/json",
|
|
79
|
-
"Authorization": `OAUTH2 access_token="${this.authToken}"`
|
|
80
|
-
},
|
|
81
|
-
body: {
|
|
82
|
-
"publicKey": this.ed25519Keys.publicKey
|
|
83
|
-
}
|
|
84
|
-
})
|
|
85
|
-
.then((response) => {
|
|
86
|
-
if (!response.ok) {
|
|
87
|
-
return reject(new Error("KSS signKey request failed with HTTP error!"));
|
|
88
|
-
}
|
|
89
|
-
return response.json();
|
|
90
|
-
})
|
|
91
|
-
.then((data) => {
|
|
92
|
-
if (MKUtils_1.MKUtils.isValidObject(data) && MKUtils_1.MKUtils.isValidString(data.SignedKey)) {
|
|
93
|
-
return resolve(data.SignedKey);
|
|
94
|
-
}
|
|
95
|
-
else {
|
|
96
|
-
return reject(new Error("Malformed KSS signKey response!"));
|
|
97
|
-
}
|
|
98
|
-
})
|
|
99
|
-
.catch((error) => {
|
|
100
|
-
return reject(error);
|
|
101
|
-
});
|
|
58
|
+
MKSecureUrlManager.prototype.getSignature = function (url, method, excludeParams) {
|
|
59
|
+
if (method === void 0) { method = "GET"; }
|
|
60
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
61
|
+
var _this = this;
|
|
62
|
+
return __generator(this, function (_a) {
|
|
63
|
+
return [2, new Promise(function (resolve, reject) { return __awaiter(_this, void 0, void 0, function () {
|
|
64
|
+
var signedKey, signedJson, signature, error_1;
|
|
65
|
+
return __generator(this, function (_a) {
|
|
66
|
+
switch (_a.label) {
|
|
67
|
+
case 0:
|
|
68
|
+
_a.trys.push([0, 2, , 3]);
|
|
69
|
+
this.updateED25519Keys();
|
|
70
|
+
return [4, this.signKeyRequest()];
|
|
71
|
+
case 1:
|
|
72
|
+
signedKey = _a.sent();
|
|
73
|
+
signedJson = this.getSignedJson(url, method, excludeParams);
|
|
74
|
+
signature = MKUtils_1.MKUtils.base64EncodeUint8Array(tweetnacl_1.sign.detached(MKUtils_1.MKUtils.stringToUint8Array(signedJson), this.ed25519Keys.privateKey));
|
|
75
|
+
return [2, resolve(MKUtils_1.MKUtils.base64Encode(MKUtils_1.MKUtils.objectStringify({
|
|
76
|
+
signedKey: signedKey,
|
|
77
|
+
signedRequest: {
|
|
78
|
+
signedJson: signedJson,
|
|
79
|
+
signature: signature
|
|
80
|
+
}
|
|
81
|
+
})))];
|
|
82
|
+
case 2:
|
|
83
|
+
error_1 = _a.sent();
|
|
84
|
+
return [2, reject(error_1)];
|
|
85
|
+
case 3: return [2];
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
}); })];
|
|
102
89
|
});
|
|
103
90
|
});
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
return __awaiter(this, void 0, void 0, function
|
|
107
|
-
return
|
|
108
|
-
if (!!this.
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
if (!this.sodium) {
|
|
113
|
-
yield _sodium.ready;
|
|
114
|
-
this.sodium = _sodium;
|
|
115
|
-
}
|
|
116
|
-
const { publicKey, privateKey } = this.sodium.crypto_sign_keypair();
|
|
117
|
-
if (publicKey.length > 0 && privateKey.length > 0) {
|
|
118
|
-
this.ed25519Keys = {
|
|
119
|
-
privateKey: privateKey,
|
|
120
|
-
publicKey: MKUtils_1.MKUtils.base64Encode(publicKey)
|
|
121
|
-
};
|
|
122
|
-
return resolve();
|
|
91
|
+
};
|
|
92
|
+
MKSecureUrlManager.prototype.updateAuthToken = function (authToken) {
|
|
93
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
94
|
+
return __generator(this, function (_a) {
|
|
95
|
+
if (!!this.authToken) {
|
|
96
|
+
this.authToken = authToken;
|
|
97
|
+
if (!!this.lastRequestInfo.url && !!this.lastRequestInfo.method) {
|
|
98
|
+
return [2, this.getSignature(this.lastRequestInfo.url, this.lastRequestInfo.method, this.lastRequestInfo.excludeParams)];
|
|
123
99
|
}
|
|
124
100
|
else {
|
|
125
|
-
return
|
|
101
|
+
return [2, Promise.resolve("")];
|
|
126
102
|
}
|
|
127
103
|
}
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
}
|
|
131
|
-
}));
|
|
104
|
+
return [2, Promise.reject()];
|
|
105
|
+
});
|
|
132
106
|
});
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
|
|
107
|
+
};
|
|
108
|
+
MKSecureUrlManager.prototype.signKeyRequest = function () {
|
|
109
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
110
|
+
var _this = this;
|
|
111
|
+
return __generator(this, function (_a) {
|
|
112
|
+
return [2, new Promise(function (resolve, reject) {
|
|
113
|
+
if (!!!_this.kssUrl || !!!_this.authToken || !!!_this.ed25519Keys.publicKey) {
|
|
114
|
+
return reject(new Error("Invalid input for signKey request!"));
|
|
115
|
+
}
|
|
116
|
+
_this.httpRequest.post(_this.kssUrl, {
|
|
117
|
+
headers: {
|
|
118
|
+
"Content-Type": "application/json",
|
|
119
|
+
"Authorization": "OAUTH2 access_token=\"".concat(_this.authToken, "\"")
|
|
120
|
+
},
|
|
121
|
+
body: {
|
|
122
|
+
"publicKey": _this.ed25519Keys.publicKey
|
|
123
|
+
}
|
|
124
|
+
})
|
|
125
|
+
.then(function (response) {
|
|
126
|
+
if (!response.ok) {
|
|
127
|
+
return reject(new Error("KSS signKey request failed with HTTP error!"));
|
|
128
|
+
}
|
|
129
|
+
return response.json();
|
|
130
|
+
})
|
|
131
|
+
.then(function (data) {
|
|
132
|
+
if (MKUtils_1.MKUtils.isValidObject(data) && MKUtils_1.MKUtils.isValidString(data.SignedKey)) {
|
|
133
|
+
return resolve(data.SignedKey);
|
|
134
|
+
}
|
|
135
|
+
else {
|
|
136
|
+
return reject(new Error("Malformed KSS signKey response!"));
|
|
137
|
+
}
|
|
138
|
+
})
|
|
139
|
+
.catch(function (error) {
|
|
140
|
+
return reject(error);
|
|
141
|
+
});
|
|
142
|
+
})];
|
|
143
|
+
});
|
|
144
|
+
});
|
|
145
|
+
};
|
|
146
|
+
MKSecureUrlManager.prototype.updateED25519Keys = function () {
|
|
147
|
+
if (!!this.ed25519Keys.publicKey && this.ed25519Keys.privateKey.length > 0) {
|
|
148
|
+
return;
|
|
149
|
+
}
|
|
150
|
+
var keyPair = tweetnacl_1.sign.keyPair();
|
|
151
|
+
if (keyPair.publicKey.length > 0 && keyPair.secretKey.length > 0) {
|
|
152
|
+
this.ed25519Keys = {
|
|
153
|
+
privateKey: keyPair.secretKey,
|
|
154
|
+
publicKey: MKUtils_1.MKUtils.base64EncodeUint8Array(keyPair.publicKey)
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
else {
|
|
158
|
+
MKLog_1.MKLog.error("[MKSecureUrlManager::updateED25519Keys] Invalid key paris, update failed!");
|
|
159
|
+
}
|
|
160
|
+
};
|
|
161
|
+
MKSecureUrlManager.prototype.getSignedJson = function (url, method, excludeParams) {
|
|
162
|
+
if (method === void 0) { method = "GET"; }
|
|
163
|
+
var queryParamsToExclude = ["hdnts"];
|
|
136
164
|
if (excludeParams && excludeParams.length > 0)
|
|
137
165
|
queryParamsToExclude = queryParamsToExclude.concat(excludeParams);
|
|
138
|
-
|
|
166
|
+
var urlParams = MKUtils_1.MKUtils.getURLQueryParams(url, queryParamsToExclude);
|
|
139
167
|
if (Object.keys(urlParams).length > 0) {
|
|
140
|
-
|
|
168
|
+
var signedJson = {
|
|
141
169
|
m: method,
|
|
142
170
|
qs: urlParams
|
|
143
171
|
};
|
|
@@ -149,7 +177,8 @@ class MKSecureUrlManager {
|
|
|
149
177
|
return MKUtils_1.MKUtils.base64Encode(MKUtils_1.MKUtils.objectStringify(signedJson));
|
|
150
178
|
}
|
|
151
179
|
return "";
|
|
152
|
-
}
|
|
153
|
-
|
|
180
|
+
};
|
|
181
|
+
return MKSecureUrlManager;
|
|
182
|
+
}());
|
|
154
183
|
exports.MKSecureUrlManager = MKSecureUrlManager;
|
|
155
184
|
//# sourceMappingURL=MKSecureUrlManager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MKSecureUrlManager.js","sourceRoot":"","sources":["../../../../../src/classes/common/MKSecureUrlManager.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MKSecureUrlManager.js","sourceRoot":"","sources":["../../../../../src/classes/common/MKSecureUrlManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.MKSubtitleOverlay = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
var MKLog_1 = require("./MKLog");
|
|
5
|
+
var MKSubtitleOverlay = exports.MKSubtitleOverlay = (function () {
|
|
6
|
+
function MKSubtitleOverlay(videoElement) {
|
|
7
|
+
var _a;
|
|
7
8
|
if (!videoElement.parentElement) {
|
|
8
9
|
throw new Error("Parent element for passed video element not found!");
|
|
9
10
|
}
|
|
@@ -13,19 +14,20 @@ class MKSubtitleOverlay {
|
|
|
13
14
|
this.subtitleRegion = this.getSubtitleRegion();
|
|
14
15
|
this.subtitleContainer = this.getSubtitleContainer();
|
|
15
16
|
this.subtitleContainer.appendChild(this.subtitleRegion);
|
|
16
|
-
this.videoElement.
|
|
17
|
+
(_a = this.videoElement.parentNode) === null || _a === void 0 ? void 0 : _a.insertBefore(this.subtitleContainer, this.videoElement.nextSibling);
|
|
17
18
|
MKLog_1.MKLog.log("[SubtitleOverlay] created.");
|
|
18
19
|
}
|
|
19
|
-
reset() {
|
|
20
|
+
MKSubtitleOverlay.prototype.reset = function () {
|
|
21
|
+
var _a;
|
|
20
22
|
if (this.videoContainer && this.videoElement) {
|
|
21
23
|
this.subtitleRegion = this.getSubtitleRegion();
|
|
22
24
|
this.subtitleContainer = this.getSubtitleContainer();
|
|
23
25
|
this.subtitleContainer.appendChild(this.subtitleRegion);
|
|
24
|
-
this.videoElement.
|
|
26
|
+
(_a = this.videoElement.parentNode) === null || _a === void 0 ? void 0 : _a.insertBefore(this.subtitleContainer, this.videoElement.nextSibling);
|
|
25
27
|
}
|
|
26
|
-
}
|
|
27
|
-
getSubtitleContainer() {
|
|
28
|
-
|
|
28
|
+
};
|
|
29
|
+
MKSubtitleOverlay.prototype.getSubtitleContainer = function () {
|
|
30
|
+
var subtitleContainer = document.getElementById("mkplayer-subtitle-container");
|
|
29
31
|
if (!subtitleContainer) {
|
|
30
32
|
subtitleContainer = document.createElement("div");
|
|
31
33
|
subtitleContainer.setAttribute("id", "mkplayer-subtitle-container");
|
|
@@ -43,9 +45,9 @@ class MKSubtitleOverlay {
|
|
|
43
45
|
subtitleContainer.style.height = "100%";
|
|
44
46
|
subtitleContainer.style.pointerEvents = 'none';
|
|
45
47
|
return subtitleContainer;
|
|
46
|
-
}
|
|
47
|
-
getSubtitleRegion() {
|
|
48
|
-
|
|
48
|
+
};
|
|
49
|
+
MKSubtitleOverlay.prototype.getSubtitleRegion = function () {
|
|
50
|
+
var subtitleRegion = document.getElementById("mkplayer-subtitle-region");
|
|
49
51
|
if (!subtitleRegion) {
|
|
50
52
|
subtitleRegion = document.createElement("div");
|
|
51
53
|
subtitleRegion.setAttribute("id", "mkplayer-subtitle-region");
|
|
@@ -55,95 +57,95 @@ class MKSubtitleOverlay {
|
|
|
55
57
|
}
|
|
56
58
|
subtitleRegion.style.cssText = MKSubtitleOverlay.DEFAULT_REGION_STYLE;
|
|
57
59
|
return subtitleRegion;
|
|
58
|
-
}
|
|
59
|
-
rgbaCheck(str) {
|
|
60
|
-
|
|
60
|
+
};
|
|
61
|
+
MKSubtitleOverlay.prototype.rgbaCheck = function (str) {
|
|
62
|
+
var matches = str.match(/rgba\((.*?)\)/g);
|
|
61
63
|
if (matches !== null) {
|
|
62
|
-
matches.forEach((match)
|
|
63
|
-
|
|
64
|
-
r[3] =
|
|
64
|
+
matches.forEach(function (match) {
|
|
65
|
+
var r = match.split(',');
|
|
66
|
+
r[3] = "".concat(r[3].replace(')', "") / 255, ")");
|
|
65
67
|
str = str.replace(match, r.join(','));
|
|
66
68
|
});
|
|
67
69
|
}
|
|
68
70
|
else if (!str.match(/img/g)) {
|
|
69
|
-
str =
|
|
71
|
+
str = "<div style=\"font-size:0.80c;text-align:center;color:rgba(255,255,255,1);background-color:rgba(0,0,0,0.7529411764705882);font-family:sans-serif;\">".concat(str, "</div>");
|
|
70
72
|
}
|
|
71
73
|
return str;
|
|
72
|
-
}
|
|
73
|
-
styleTextToObject(str) {
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
slplitStr.forEach((item)
|
|
77
|
-
|
|
74
|
+
};
|
|
75
|
+
MKSubtitleOverlay.prototype.styleTextToObject = function (str) {
|
|
76
|
+
var slplitStr = str.replace(/ /g, "").replace(/%/g, "").replace(/;/g, " ").trim().split(" ");
|
|
77
|
+
var result = {};
|
|
78
|
+
slplitStr.forEach(function (item) {
|
|
79
|
+
var splitItem = item.split(":");
|
|
78
80
|
if (splitItem[0] && splitItem[1]) {
|
|
79
81
|
result[splitItem[0]] = splitItem[1];
|
|
80
82
|
}
|
|
81
83
|
});
|
|
82
84
|
return result;
|
|
83
|
-
}
|
|
84
|
-
updateRegion(cue) {
|
|
85
|
+
};
|
|
86
|
+
MKSubtitleOverlay.prototype.updateRegion = function (cue) {
|
|
85
87
|
var _a;
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
88
|
+
var cssText = (_a = cue === null || cue === void 0 ? void 0 : cue.regionStyle) !== null && _a !== void 0 ? _a : MKSubtitleOverlay.DEFAULT_REGION_STYLE;
|
|
89
|
+
var cellResolution = MKSubtitleOverlay.DEFAULT_CELL_RESOLUTION;
|
|
90
|
+
var tmp = cssText.match(/cellResolutionRows:([\d]+);/);
|
|
89
91
|
if (tmp && tmp.length >= 2) {
|
|
90
92
|
if (tmp[1]) {
|
|
91
|
-
|
|
93
|
+
var rows = parseInt(tmp[1]);
|
|
92
94
|
cellResolution.rows = rows;
|
|
93
95
|
}
|
|
94
96
|
}
|
|
95
97
|
tmp = cssText.match(/cellResolutionColumns:([\d]+);/);
|
|
96
98
|
if (tmp && tmp.length >= 2) {
|
|
97
99
|
if (tmp[1]) {
|
|
98
|
-
|
|
100
|
+
var columns = parseInt(tmp[1]);
|
|
99
101
|
cellResolution.columns = columns;
|
|
100
102
|
}
|
|
101
103
|
}
|
|
102
104
|
this.subtitleContainer.style.width = this.videoContainer.offsetWidth + "px";
|
|
103
105
|
this.subtitleContainer.style.height = this.videoContainer.offsetHeight + "px";
|
|
104
|
-
|
|
106
|
+
var styleOb = this.styleTextToObject(cssText);
|
|
105
107
|
this.subtitleRegion.style.cssText = cssText;
|
|
106
108
|
this.subtitleRegion.style.top = styleOb.top / 100 * this.videoContainer.offsetHeight + "px";
|
|
107
109
|
this.subtitleRegion.style.left = styleOb.left / 100 * this.videoContainer.offsetWidth + "px";
|
|
108
110
|
this.subtitleRegion.style.width = styleOb.width / 100 * this.videoContainer.offsetWidth + "px";
|
|
109
111
|
this.subtitleRegion.style.height = styleOb.height / 100 * this.videoContainer.offsetHeight + "px";
|
|
110
|
-
|
|
112
|
+
var fontSize = (0.6 * Math.round(this.videoContainer.offsetHeight / cellResolution.rows)) + "px";
|
|
111
113
|
this.subtitleRegion.style.lineHeight = fontSize;
|
|
112
114
|
this.subtitleRegion.style.fontSize = fontSize;
|
|
113
|
-
|
|
114
|
-
imageSubtitle.map((img)
|
|
115
|
+
var imageSubtitle = Array.from(this.subtitleRegion.querySelectorAll("img"));
|
|
116
|
+
imageSubtitle.map(function (img) {
|
|
115
117
|
img.style.width = '100%';
|
|
116
118
|
img.style.height = '100%';
|
|
117
119
|
});
|
|
118
|
-
}
|
|
119
|
-
enable() {
|
|
120
|
+
};
|
|
121
|
+
MKSubtitleOverlay.prototype.enable = function () {
|
|
120
122
|
this.reset();
|
|
121
123
|
this.enabled = true;
|
|
122
|
-
}
|
|
123
|
-
disable() {
|
|
124
|
+
};
|
|
125
|
+
MKSubtitleOverlay.prototype.disable = function () {
|
|
124
126
|
this.hide();
|
|
125
127
|
this.enabled = false;
|
|
126
|
-
}
|
|
127
|
-
show(cue) {
|
|
128
|
+
};
|
|
129
|
+
MKSubtitleOverlay.prototype.show = function (cue) {
|
|
128
130
|
var _a;
|
|
129
131
|
if (!this.enabled)
|
|
130
132
|
return;
|
|
131
133
|
this.updateRegion(cue);
|
|
132
134
|
if (cue.html) {
|
|
133
|
-
|
|
134
|
-
|
|
135
|
+
var data = this.rgbaCheck(cue.html);
|
|
136
|
+
var element = new DOMParser().parseFromString(data, "text/html").body.firstChild;
|
|
135
137
|
this.subtitleRegion.appendChild(element);
|
|
136
138
|
}
|
|
137
139
|
else {
|
|
138
|
-
|
|
139
|
-
|
|
140
|
+
var position = (_a = cue.position) !== null && _a !== void 0 ? _a : { row: 11, column: 8 };
|
|
141
|
+
var element = document.createElement('div');
|
|
140
142
|
element.textContent = cue.text;
|
|
141
|
-
element.id =
|
|
143
|
+
element.id = "".concat(position.row, "_").concat(position.column, "_").concat(cue.text);
|
|
142
144
|
element.style.position = 'absolute';
|
|
143
145
|
element.style.backgroundColor = "black";
|
|
144
146
|
element.style.color = "white";
|
|
145
147
|
element.style.fontFamily = 'Menlo, Consolas, "Cutive Mono", monospace';
|
|
146
|
-
|
|
148
|
+
var fontSize = (0.6 * this.subtitleRegion.offsetHeight) / MKSubtitleOverlay.CEA608_NUM_ROWS + "px";
|
|
147
149
|
element.style.fontSize = element.style.lineHeight = fontSize;
|
|
148
150
|
element.style.margin = (0.1 * this.subtitleRegion.offsetHeight) / MKSubtitleOverlay.CEA608_NUM_ROWS + "px";
|
|
149
151
|
element.style.letterSpacing = 0.215 * (0.6 * this.subtitleRegion.offsetWidth) / MKSubtitleOverlay.CEA608_NUM_COLUMNS + "px";
|
|
@@ -151,38 +153,38 @@ class MKSubtitleOverlay {
|
|
|
151
153
|
element.style.left = this.subtitleRegion.offsetLeft + (0.1 * this.subtitleRegion.offsetWidth) + position.column * (0.6 * this.subtitleRegion.offsetWidth) / MKSubtitleOverlay.CEA608_NUM_COLUMNS + "px";
|
|
152
154
|
this.subtitleRegion.appendChild(element);
|
|
153
155
|
}
|
|
154
|
-
}
|
|
155
|
-
hide() {
|
|
156
|
+
};
|
|
157
|
+
MKSubtitleOverlay.prototype.hide = function () {
|
|
156
158
|
if (!this.enabled)
|
|
157
159
|
return;
|
|
158
|
-
|
|
159
|
-
for (
|
|
160
|
-
|
|
160
|
+
var children = this.subtitleRegion.childNodes;
|
|
161
|
+
for (var i = 0; i < children.length; i++) {
|
|
162
|
+
var child = children[i];
|
|
161
163
|
if (child) {
|
|
162
164
|
this.subtitleRegion.removeChild(child);
|
|
163
165
|
}
|
|
164
166
|
}
|
|
165
167
|
this.subtitleRegion.textContent = "";
|
|
166
|
-
}
|
|
167
|
-
updateFontSize() {
|
|
168
|
+
};
|
|
169
|
+
MKSubtitleOverlay.prototype.updateFontSize = function () {
|
|
168
170
|
if (!this.enabled)
|
|
169
171
|
return;
|
|
170
172
|
this.updateRegion();
|
|
171
|
-
}
|
|
172
|
-
destroy() {
|
|
173
|
+
};
|
|
174
|
+
MKSubtitleOverlay.prototype.destroy = function () {
|
|
173
175
|
if (this.videoContainer && this.subtitleContainer && this.subtitleRegion) {
|
|
174
176
|
this.subtitleContainer.removeChild(this.subtitleRegion);
|
|
175
177
|
this.videoContainer.removeChild(this.subtitleContainer);
|
|
176
178
|
this.enabled = false;
|
|
177
179
|
}
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
MKSubtitleOverlay.
|
|
182
|
-
MKSubtitleOverlay.
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
};
|
|
180
|
+
};
|
|
181
|
+
MKSubtitleOverlay.CEA608_NUM_ROWS = 15;
|
|
182
|
+
MKSubtitleOverlay.CEA608_NUM_COLUMNS = 32;
|
|
183
|
+
MKSubtitleOverlay.DEFAULT_REGION_STYLE = "position:absolute;top:5%;left:5%;width:90%;height:90%;margin:0px;padding:0px;text-align:center;display:flex;overflow:hidden;visibility:visible;opacity:1;flex-direction:column;justify-content:flex-end;writing-mode:horizantal-tb;z-index:auto";
|
|
184
|
+
MKSubtitleOverlay.DEFAULT_CELL_RESOLUTION = {
|
|
185
|
+
rows: 15,
|
|
186
|
+
columns: 40
|
|
187
|
+
};
|
|
188
|
+
return MKSubtitleOverlay;
|
|
189
|
+
}());
|
|
188
190
|
//# sourceMappingURL=MKSubtitleOverlay.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MKSubtitleOverlay.js","sourceRoot":"","sources":["../../../../../src/classes/common/MKSubtitleOverlay.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"MKSubtitleOverlay.js","sourceRoot":"","sources":["../../../../../src/classes/common/MKSubtitleOverlay.ts"],"names":[],"mappings":"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"}
|