@mediakind/mkplayer 1.0.13 → 1.0.15
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/README.md +17 -1
- package/dist/MKPlayer.d.ts +3 -0
- package/dist/MKPlayerConfiguration.d.ts +2 -0
- package/dist/MKStream.d.ts +13 -1
- package/dist/URLHelper.d.ts +4 -0
- package/dist/events/RequestType.d.ts +4 -0
- package/dist/lib/MKPlayer.d.ts +3 -0
- package/dist/lib/MKPlayer.js +71 -9
- package/dist/lib/MKPlayer.js.map +1 -1
- package/dist/lib/MKPlayerConfiguration.d.ts +2 -0
- package/dist/lib/MKStream.d.ts +13 -1
- package/dist/lib/MKStream.js +49 -1
- package/dist/lib/MKStream.js.map +1 -1
- package/dist/lib/URLHelper.d.ts +4 -0
- package/dist/lib/URLHelper.js +51 -0
- package/dist/lib/URLHelper.js.map +1 -0
- package/dist/lib/events/RequestType.d.ts +4 -0
- package/dist/lib/events/RequestType.js +9 -0
- package/dist/lib/events/RequestType.js.map +1 -0
- package/dist/lib-esm/MKPlayer.d.ts +3 -0
- package/dist/lib-esm/MKPlayer.js +71 -9
- package/dist/lib-esm/MKPlayer.js.map +1 -1
- package/dist/lib-esm/MKPlayerConfiguration.d.ts +2 -0
- package/dist/lib-esm/MKStream.d.ts +13 -1
- package/dist/lib-esm/MKStream.js +49 -1
- package/dist/lib-esm/MKStream.js.map +1 -1
- package/dist/lib-esm/URLHelper.d.ts +4 -0
- package/dist/lib-esm/URLHelper.js +48 -0
- package/dist/lib-esm/URLHelper.js.map +1 -0
- package/dist/lib-esm/events/RequestType.d.ts +4 -0
- package/dist/lib-esm/events/RequestType.js +6 -0
- package/dist/lib-esm/events/RequestType.js.map +1 -0
- package/dist/mkplayer.js +1 -1
- package/doc/assets/js/search.json +1 -1
- package/doc/classes/mkplayer.html +19 -22
- package/doc/enums/mkevent.html +0 -3
- package/doc/globals.html +0 -4
- package/doc/index.html +17 -4
- package/doc/interfaces/bufferlevel.html +0 -3
- package/doc/interfaces/mkplayereventcallback.html +0 -3
- package/doc/interfaces/subtitletrack.html +0 -3
- package/index.html +64 -17
- package/multi-camera.html +19 -19
- package/package.json +3 -3
- package/src/MKPlayer.ts +74 -15
- package/src/MKPlayerConfiguration.ts +7 -0
- package/src/MKStream.ts +55 -1
- package/src/URLHelper.ts +63 -0
- package/src/events/RequestType.ts +5 -0
- package/doc/interfaces/mkplayerconfiguration.html +0 -290
- package/mkplayer-ui.js +0 -12052
package/README.md
CHANGED
|
@@ -23,7 +23,15 @@ var mkPlayerConfiguration = {
|
|
|
23
23
|
debug: true,
|
|
24
24
|
autoplay: true,
|
|
25
25
|
muted: true,
|
|
26
|
-
key: 'YOUR-KEY'
|
|
26
|
+
key: 'YOUR-KEY',
|
|
27
|
+
|
|
28
|
+
refreshToken: (type) => {
|
|
29
|
+
if (type === 'master') {
|
|
30
|
+
return 'hdnts=1234566787888'
|
|
31
|
+
}else if (type === 'variant') {
|
|
32
|
+
return 'hdnts=jadfjahdfjahdsfjh'
|
|
33
|
+
}
|
|
34
|
+
},
|
|
27
35
|
};
|
|
28
36
|
|
|
29
37
|
var playerContainer = document.getElementById('player');
|
|
@@ -37,6 +45,14 @@ let mkStream = {
|
|
|
37
45
|
cdnFailoverPercent: 10, //10 percent of streams will start with the secondary url
|
|
38
46
|
assetIdentifier: 'Your Asset Id',
|
|
39
47
|
poster: 'https://your-cdn.com/poster.png'
|
|
48
|
+
|
|
49
|
+
// optional analytics information
|
|
50
|
+
userId: 'badge2',
|
|
51
|
+
customData1: 'customData1',
|
|
52
|
+
customData2: 'customData2',
|
|
53
|
+
customData3: 'customData3',
|
|
54
|
+
customData4: 'customData4',
|
|
55
|
+
customData5: 'customData5',
|
|
40
56
|
}
|
|
41
57
|
|
|
42
58
|
mkPlayer.load(mkStream).then(function() {
|
package/dist/MKPlayer.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ import { BufferLevel } from './BufferLevel';
|
|
|
5
5
|
import { MKPlayerEventCallback } from './events/MKPlayerEventCallback';
|
|
6
6
|
export declare class MKPlayer {
|
|
7
7
|
private player;
|
|
8
|
+
private stream;
|
|
8
9
|
constructor(containerElement: HTMLElement, mkPlayerConfiguration: MKPlayerConfiguration);
|
|
9
10
|
play(): Promise<void>;
|
|
10
11
|
pause(): void;
|
|
@@ -26,4 +27,6 @@ export declare class MKPlayer {
|
|
|
26
27
|
private static getRandomInt;
|
|
27
28
|
private static makeId;
|
|
28
29
|
private static mapEvent;
|
|
30
|
+
private manipulateMasterPlaylist;
|
|
31
|
+
private appendToken;
|
|
29
32
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { RequestType } from './events/RequestType';
|
|
1
2
|
export interface MKPlayerConfiguration {
|
|
2
3
|
debug: boolean;
|
|
3
4
|
autoplay: boolean;
|
|
@@ -6,4 +7,5 @@ export interface MKPlayerConfiguration {
|
|
|
6
7
|
ui: boolean;
|
|
7
8
|
targetLatency: number;
|
|
8
9
|
key: string;
|
|
10
|
+
refreshToken?: (type: RequestType) => string;
|
|
9
11
|
}
|
package/dist/MKStream.d.ts
CHANGED
|
@@ -6,11 +6,23 @@ export declare class MKStream {
|
|
|
6
6
|
private readonly _subtitleTracks;
|
|
7
7
|
private readonly _cdnFailoverPercent;
|
|
8
8
|
private readonly _poster;
|
|
9
|
-
|
|
9
|
+
private readonly _userId;
|
|
10
|
+
private readonly _customData1;
|
|
11
|
+
private readonly _customData2;
|
|
12
|
+
private readonly _customData3;
|
|
13
|
+
private readonly _customData4;
|
|
14
|
+
private readonly _customData5;
|
|
15
|
+
constructor(primaryUrl: string, assetIdentifier: string, subtitleTracks?: SubtitleTrack[], poster?: string, secondaryUrl?: string, cdnFailoverPercent?: number, userId?: string, customData1?: string, customData2?: string, customData3?: string, customData4?: string, customData5?: string);
|
|
10
16
|
get cdnFailoverPercent(): number;
|
|
11
17
|
get primaryUrl(): string;
|
|
12
18
|
get secondaryUrl(): string;
|
|
13
19
|
get subtitleTracks(): SubtitleTrack[];
|
|
14
20
|
get assetIdentifier(): string;
|
|
15
21
|
get poster(): string;
|
|
22
|
+
get customData1(): string;
|
|
23
|
+
get customData2(): string;
|
|
24
|
+
get customData3(): string;
|
|
25
|
+
get customData4(): string;
|
|
26
|
+
get customData5(): string;
|
|
27
|
+
get userId(): string;
|
|
16
28
|
}
|
package/dist/lib/MKPlayer.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ import { BufferLevel } from './BufferLevel';
|
|
|
5
5
|
import { MKPlayerEventCallback } from './events/MKPlayerEventCallback';
|
|
6
6
|
export declare class MKPlayer {
|
|
7
7
|
private player;
|
|
8
|
+
private stream;
|
|
8
9
|
constructor(containerElement: HTMLElement, mkPlayerConfiguration: MKPlayerConfiguration);
|
|
9
10
|
play(): Promise<void>;
|
|
10
11
|
pause(): void;
|
|
@@ -26,4 +27,6 @@ export declare class MKPlayer {
|
|
|
26
27
|
private static getRandomInt;
|
|
27
28
|
private static makeId;
|
|
28
29
|
private static mapEvent;
|
|
30
|
+
private manipulateMasterPlaylist;
|
|
31
|
+
private appendToken;
|
|
29
32
|
}
|
package/dist/lib/MKPlayer.js
CHANGED
|
@@ -5,8 +5,11 @@ var bitmovin_player_1 = require("bitmovin-player");
|
|
|
5
5
|
var bitmovin_player_ui_1 = require("bitmovin-player-ui");
|
|
6
6
|
var MKEvent_1 = require("./events/MKEvent");
|
|
7
7
|
var Logger_1 = require("./Logger");
|
|
8
|
+
var RequestType_1 = require("./events/RequestType");
|
|
9
|
+
var URLHelper_1 = require("./URLHelper");
|
|
8
10
|
var MKPlayer = (function () {
|
|
9
11
|
function MKPlayer(containerElement, mkPlayerConfiguration) {
|
|
12
|
+
var _this = this;
|
|
10
13
|
var playerConfig = {
|
|
11
14
|
key: mkPlayerConfiguration.key,
|
|
12
15
|
playback: {
|
|
@@ -16,18 +19,40 @@ var MKPlayer = (function () {
|
|
|
16
19
|
analytics: {
|
|
17
20
|
key: '1c45ae9c-345e-4462-95e2-3e8faccd64f1',
|
|
18
21
|
},
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
ui_css: 'mkplayer-ui.min.css',
|
|
22
|
+
ui: {
|
|
23
|
+
disableAutoHideWhenHovered: true,
|
|
22
24
|
},
|
|
23
25
|
logs: {
|
|
24
26
|
level: bitmovin_player_1.LogLevel.OFF,
|
|
25
27
|
bitmovin: false,
|
|
26
28
|
},
|
|
29
|
+
network: {
|
|
30
|
+
preprocessHttpRequest: function (type, request) {
|
|
31
|
+
if (type === 'manifest/hls/master') {
|
|
32
|
+
if (typeof mkPlayerConfiguration.refreshToken === 'function') {
|
|
33
|
+
var token = mkPlayerConfiguration.refreshToken(RequestType_1.RequestType.Master);
|
|
34
|
+
console.log('[MKPlayer] Appending master token: ' + token);
|
|
35
|
+
request.url = _this.appendToken(request.url, token);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
else if (type === 'manifest/hls/variant') {
|
|
39
|
+
if (typeof mkPlayerConfiguration.refreshToken === 'function') {
|
|
40
|
+
var token = mkPlayerConfiguration.refreshToken(RequestType_1.RequestType.Variant);
|
|
41
|
+
console.log('[MKPlayer] Appending variant token: ' + token);
|
|
42
|
+
request.url = _this.appendToken(request.url, token);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
return Promise.resolve(request);
|
|
46
|
+
},
|
|
47
|
+
preprocessHttpResponse: function (type, response) {
|
|
48
|
+
if (type === 'manifest/hls/master') {
|
|
49
|
+
var body = _this.manipulateMasterPlaylist(response.body);
|
|
50
|
+
response.body = body;
|
|
51
|
+
}
|
|
52
|
+
return Promise.resolve(response);
|
|
53
|
+
},
|
|
54
|
+
},
|
|
27
55
|
};
|
|
28
|
-
if (mkPlayerConfiguration.ui === false) {
|
|
29
|
-
playerConfig.ui = false;
|
|
30
|
-
}
|
|
31
56
|
if (mkPlayerConfiguration.targetLatency > 0) {
|
|
32
57
|
playerConfig.live = {
|
|
33
58
|
lowLatency: {
|
|
@@ -51,7 +76,7 @@ var MKPlayer = (function () {
|
|
|
51
76
|
bitmovin_player_ui_1.UIFactory.buildDefaultSmallScreenUI(player);
|
|
52
77
|
}
|
|
53
78
|
else {
|
|
54
|
-
bitmovin_player_ui_1.UIFactory.buildDefaultUI(player);
|
|
79
|
+
bitmovin_player_ui_1.UIFactory.buildDefaultUI(player, playerConfig.ui);
|
|
55
80
|
}
|
|
56
81
|
}
|
|
57
82
|
if (mkPlayerConfiguration.debug) {
|
|
@@ -71,6 +96,7 @@ var MKPlayer = (function () {
|
|
|
71
96
|
};
|
|
72
97
|
MKPlayer.prototype.load = function (stream) {
|
|
73
98
|
var playerSource;
|
|
99
|
+
this.stream = stream;
|
|
74
100
|
var url = MKPlayer.selectUrl(stream);
|
|
75
101
|
if (url.includes('.m3u8')) {
|
|
76
102
|
playerSource = {
|
|
@@ -93,9 +119,16 @@ var MKPlayer = (function () {
|
|
|
93
119
|
if (stream.assetIdentifier) {
|
|
94
120
|
playerSource.analytics = {
|
|
95
121
|
videoId: stream.assetIdentifier,
|
|
122
|
+
userId: stream.userId,
|
|
123
|
+
customData1: stream.customData1,
|
|
124
|
+
customData2: stream.customData2,
|
|
125
|
+
customData3: stream.customData3,
|
|
126
|
+
customData4: stream.customData4,
|
|
127
|
+
customData5: stream.customData5,
|
|
128
|
+
customData6: this.version(),
|
|
96
129
|
};
|
|
97
130
|
}
|
|
98
|
-
if (stream.subtitleTracks) {
|
|
131
|
+
if (stream.subtitleTracks && !stream.subtitleTracks[0].url.includes('.m3u8')) {
|
|
99
132
|
playerSource.subtitleTracks = stream.subtitleTracks.map(function (track) { return ({
|
|
100
133
|
lang: track.language,
|
|
101
134
|
url: track.url,
|
|
@@ -144,7 +177,7 @@ var MKPlayer = (function () {
|
|
|
144
177
|
this.player.setVolume(volume);
|
|
145
178
|
};
|
|
146
179
|
MKPlayer.prototype.version = function () {
|
|
147
|
-
return '1.0.
|
|
180
|
+
return '1.0.15';
|
|
148
181
|
};
|
|
149
182
|
MKPlayer.selectUrl = function (source) {
|
|
150
183
|
var rand = MKPlayer.getRandomInt(99);
|
|
@@ -217,6 +250,35 @@ var MKPlayer = (function () {
|
|
|
217
250
|
}
|
|
218
251
|
return playerEventType;
|
|
219
252
|
};
|
|
253
|
+
MKPlayer.prototype.manipulateMasterPlaylist = function (response) {
|
|
254
|
+
var body = response;
|
|
255
|
+
if (this.stream.subtitleTracks && this.stream.subtitleTracks[0].url.includes('.m3u8')) {
|
|
256
|
+
this.stream.subtitleTracks.forEach(function (track) {
|
|
257
|
+
body = body.concat('\n#EXT-X-MEDIA:TYPE=SUBTITLES,'
|
|
258
|
+
+ 'NAME="' + track.language + '",'
|
|
259
|
+
+ 'DEFAULT=YES,'
|
|
260
|
+
+ 'AUTOSELECT=YES,'
|
|
261
|
+
+ 'FORCED=NO,'
|
|
262
|
+
+ 'LANGUAGE="' + track.language + '",GROUP-ID="subs",'
|
|
263
|
+
+ 'URI="' + track.url + '"');
|
|
264
|
+
});
|
|
265
|
+
}
|
|
266
|
+
return body;
|
|
267
|
+
};
|
|
268
|
+
MKPlayer.prototype.appendToken = function (url, token) {
|
|
269
|
+
var splitted = token.split('=');
|
|
270
|
+
if (splitted && splitted.length >= 2) {
|
|
271
|
+
var key = splitted[0];
|
|
272
|
+
var value = splitted[1];
|
|
273
|
+
var params = new Map();
|
|
274
|
+
params.set(key, value);
|
|
275
|
+
var updatedUrl = URLHelper_1.URLHelper.appendQueryParametersToUrl(url, params);
|
|
276
|
+
return updatedUrl;
|
|
277
|
+
}
|
|
278
|
+
else {
|
|
279
|
+
return url;
|
|
280
|
+
}
|
|
281
|
+
};
|
|
220
282
|
return MKPlayer;
|
|
221
283
|
}());
|
|
222
284
|
exports.MKPlayer = MKPlayer;
|
package/dist/lib/MKPlayer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MKPlayer.js","sourceRoot":"","sources":["../../src/MKPlayer.ts"],"names":[],"mappings":";;;AAAA,mDAEyB;AACzB,yDAA+C;AAG/C,4CAA2C;AAG3C,mCAAkC;
|
|
1
|
+
{"version":3,"file":"MKPlayer.js","sourceRoot":"","sources":["../../src/MKPlayer.ts"],"names":[],"mappings":";;;AAAA,mDAEyB;AACzB,yDAA+C;AAG/C,4CAA2C;AAG3C,mCAAkC;AAElC,oDAAmD;AACnD,yCAAwC;AAKxC;IAUE,kBAAY,gBAA6B,EAAE,qBAA4C;QAAvF,iBA8EC;QA7EC,IAAI,YAAY,GAAiB;YAC/B,GAAG,EAAE,qBAAqB,CAAC,GAAG;YAC9B,QAAQ,EAAE;gBACR,QAAQ,EAAE,qBAAqB,CAAC,QAAQ;gBACxC,KAAK,EAAE,qBAAqB,CAAC,KAAK;aACnC;YACD,SAAS,EAAE;gBACT,GAAG,EAAE,sCAAsC;aAC5C;YACD,EAAE,EAAE;gBACF,0BAA0B,EAAE,IAAI;aACjC;YACD,IAAI,EAAE;gBACJ,KAAK,EAAE,0BAAQ,CAAC,GAAG;gBACnB,QAAQ,EAAE,KAAK;aAChB;YACD,OAAO,EAAE;gBACP,qBAAqB,EAAE,UAAC,IAAqB,EAAE,OAAoB;oBACjE,IAAI,IAAI,KAAK,qBAAqB,EAAE;wBAClC,IAAI,OAAO,qBAAqB,CAAC,YAAY,KAAK,UAAU,EAAE;4BAC5D,IAAI,KAAK,GAAG,qBAAqB,CAAC,YAAY,CAAC,yBAAW,CAAC,MAAM,CAAC,CAAC;4BACnE,OAAO,CAAC,GAAG,CAAC,qCAAqC,GAAG,KAAK,CAAC,CAAC;4BAC3D,OAAO,CAAC,GAAG,GAAG,KAAI,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;yBACpD;qBACF;yBAAM,IAAI,IAAI,KAAK,sBAAsB,EAAE;wBAC1C,IAAI,OAAO,qBAAqB,CAAC,YAAY,KAAK,UAAU,EAAE;4BAC5D,IAAI,KAAK,GAAG,qBAAqB,CAAC,YAAY,CAAC,yBAAW,CAAC,OAAO,CAAC,CAAC;4BACpE,OAAO,CAAC,GAAG,CAAC,sCAAsC,GAAG,KAAK,CAAC,CAAC;4BAC5D,OAAO,CAAC,GAAG,GAAG,KAAI,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;yBACpD;qBACF;oBACD,OAAO,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBAClC,CAAC;gBACD,sBAAsB,EAAE,UAAC,IAAI,EAAE,QAAQ;oBACrC,IAAI,IAAI,KAAK,qBAAqB,EAAE;wBAClC,IAAI,IAAI,GAAG,KAAI,CAAC,wBAAwB,CAAE,QAAQ,CAAC,IAAe,CAAC,CAAC;wBAEpE,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;qBACtB;oBACD,OAAO,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBACnC,CAAC;aACF;SACF,CAAC;QAEF,IAAI,qBAAqB,CAAC,aAAa,GAAG,CAAC,EAAE;YAC3C,YAAY,CAAC,IAAI,GAAG;gBAClB,UAAU,EAAE;oBACV,aAAa,EAAE,qBAAqB,CAAC,aAAa;oBAClD,OAAO,EAAE;wBACP,qBAAqB,EAAE,KAAK;wBAC5B,aAAa,EAAE,EAAE;wBACjB,YAAY,EAAE,GAAG;qBAClB;oBACD,QAAQ,EAAE;wBACR,qBAAqB,EAAE,KAAK;wBAC5B,aAAa,EAAE,EAAE;wBACjB,YAAY,EAAE,GAAG;qBAClB;iBACF;aACF,CAAC;SACH;QAED,IAAI,MAAM,GAAG,IAAI,wBAAM,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAC;QACxD,IAAI,qBAAqB,CAAC,EAAE,KAAK,KAAK,EAAE;YACtC,IAAI,qBAAqB,CAAC,WAAW,EAAE;gBACrC,8BAAS,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC;aAC7C;iBAAM;gBACL,8BAAS,CAAC,cAAc,CAAC,MAAM,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC;aACnD;SACF;QAED,IAAI,qBAAqB,CAAC,KAAK,EAAE;YAC/B,eAAM,CAAC,MAAM,EAAE,CAAC;SACjB;QAED,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,OAAO,CAAC,GAAG,CAAC,cAAc,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,oBAAoB,EAAE,aAAa,CAAC,CAAC;IACrF,CAAC;IAKD,uBAAI,GAAJ;QACE,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IAC5B,CAAC;IAKD,wBAAK,GAAL;QACE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;IAKD,0BAAO,GAAP;QACE,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;IAC/B,CAAC;IAOD,uBAAI,GAAJ,UAAK,MAAgB;QACnB,IAAI,YAA0B,CAAC;QAC/B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,GAAG,GAAW,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAE7C,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;YACzB,YAAY,GAAG;gBACb,GAAG,EAAE,GAAG;aACT,CAAC;SACH;aAAM,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;YAC/B,YAAY,GAAG;gBACb,WAAW,EAAE,GAAG;aACjB,CAAC;SACH;aAAM;YACL,YAAY,GAAG;gBACb,IAAI,EAAE,GAAG;aACV,CAAC;SACH;QAED,IAAI,MAAM,CAAC,MAAM,EAAE;YACjB,YAAY,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;SACrC;QAED,IAAI,MAAM,CAAC,eAAe,EAAE;YAC1B,YAAY,CAAC,SAAS,GAAG;gBACvB,OAAO,EAAE,MAAM,CAAC,eAAe;gBAC/B,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,WAAW,EAAE,MAAM,CAAC,WAAW;gBAC/B,WAAW,EAAE,MAAM,CAAC,WAAW;gBAC/B,WAAW,EAAE,MAAM,CAAC,WAAW;gBAC/B,WAAW,EAAE,MAAM,CAAC,WAAW;gBAC/B,WAAW,EAAE,MAAM,CAAC,WAAW;gBAC/B,WAAW,EAAE,IAAI,CAAC,OAAO,EAAE;aAC5B,CAAC;SACH;QAED,IAAI,MAAM,CAAC,cAAc,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;YAC5E,YAAY,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,UAAC,KAAK,IAAK,OAAA,CAAe;gBAChF,IAAI,EAAE,KAAK,CAAC,QAAQ;gBACpB,GAAG,EAAE,KAAK,CAAC,GAAG;gBACd,EAAE,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;aACvB,CAAA,EAJkE,CAIlE,CAAC,CAAC;SACJ;QAED,eAAM,CAAC,GAAG,CAAC,8BAA8B,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC;QAE1E,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACxC,CAAC;IAQD,sBAAG,GAAH,UAAI,SAAkB,EAAE,QAA+B;QACrD,IAAI,eAAe,GAAG,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAEnD,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;IACpD,CAAC;IAQD,qBAAE,GAAF,UAAG,SAAkB,EAAE,QAA+B;QACpD,IAAI,eAAe,GAAG,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACnD,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;IACnD,CAAC;IAKD,yBAAM,GAAN;QACE,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;IAC9B,CAAC;IAKD,iCAAc,GAAd;QACE,OAAO,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;IACtC,CAAC;IAOD,kCAAe,GAAf;QACE,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,4BAAU,CAAC,eAAe,EAAE,2BAAS,CAAC,KAAK,CAAC,CAAC,KAAK;YACrF,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,4BAAU,CAAC,eAAe,EAAE,2BAAS,CAAC,KAAK,CAAC,CAAC,KAAK;SACtF,CAAC;IACJ,CAAC;IAMD,mCAAgB,GAAhB,UAAiB,OAAe;QAC9B,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACnD,CAAC;IAMD,6BAAU,GAAV;QACE,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;IAC7C,CAAC;IAKD,uBAAI,GAAJ;QACE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACrB,CAAC;IAKD,gCAAa,GAAb;QACE,OAAO,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;IACxC,CAAC;IAKD,yBAAM,GAAN;QACE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;IACvB,CAAC;IAOD,4BAAS,GAAT,UAAU,MAAc;QACtB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAKD,0BAAO,GAAP;QACE,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEc,kBAAS,GAAxB,UAAyB,MAAgB;QACvC,IAAI,IAAI,GAAG,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QACrC,IAAI,MAAM,CAAC,kBAAkB,IAAI,MAAM,CAAC,YAAY,IAAI,IAAI,GAAG,MAAM,CAAC,kBAAkB,EAAE;YACxF,eAAM,CAAC,GAAG,CAAC,8CAA8C,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;YACjF,OAAO,MAAM,CAAC,YAAY,CAAC;SAC5B;aAAM;YACL,eAAM,CAAC,GAAG,CAAC,4CAA4C,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;YAC7E,OAAO,MAAM,CAAC,UAAU,CAAC;SAC1B;IACH,CAAC;IAEc,qBAAY,GAA3B,UAA4B,GAAW;QACrC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IACrD,CAAC;IAEc,eAAM,GAArB,UAAsB,MAAM;QAC1B,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,UAAU,GAAG,gEAAgE,CAAC;QAClF,IAAI,gBAAgB,GAAG,UAAU,CAAC,MAAM,CAAC;QACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;YAC/B,MAAM,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,gBAAgB,CAAC,CAAC,CAAC;SAC3E;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAEc,iBAAQ,GAAvB,UAAwB,KAAc;QACpC,IAAI,eAA4B,CAAC;QACjC,QAAQ,KAAK,EAAE;YACb,KAAK,iBAAO,CAAC,gBAAgB;gBAC3B,eAAe,GAAG,6BAAW,CAAC,YAAY,CAAC;gBAC3C,MAAM;YACR,KAAK,iBAAO,CAAC,cAAc;gBACzB,eAAe,GAAG,6BAAW,CAAC,UAAU,CAAC;gBACzC,MAAM;YACR,KAAK,iBAAO,CAAC,OAAO;gBAClB,eAAe,GAAG,6BAAW,CAAC,OAAO,CAAC;gBACtC,MAAM;YACR,KAAK,iBAAO,CAAC,MAAM;gBACjB,eAAe,GAAG,6BAAW,CAAC,MAAM,CAAC;gBACrC,MAAM;YACR,KAAK,iBAAO,CAAC,WAAW;gBACtB,eAAe,GAAG,6BAAW,CAAC,WAAW,CAAC;gBAC1C,MAAM;YACR,KAAK,iBAAO,CAAC,KAAK;gBAChB,eAAe,GAAG,6BAAW,CAAC,KAAK,CAAC;gBACpC,MAAM;YACR,KAAK,iBAAO,CAAC,KAAK;gBAChB,eAAe,GAAG,6BAAW,CAAC,KAAK,CAAC;gBACpC,MAAM;YACR,KAAK,iBAAO,CAAC,cAAc;gBACzB,eAAe,GAAG,6BAAW,CAAC,gBAAgB,CAAC;gBAC/C,MAAM;YACR,KAAK,iBAAO,CAAC,OAAO;gBAClB,eAAe,GAAG,6BAAW,CAAC,OAAO,CAAC;gBACtC,MAAM;YACR,KAAK,iBAAO,CAAC,cAAc;gBACzB,eAAe,GAAG,6BAAW,CAAC,2BAA2B,CAAC;gBAC1D,MAAM;YACR,KAAK,iBAAO,CAAC,eAAe;gBAC1B,eAAe,GAAG,6BAAW,CAAC,eAAe,CAAC;gBAC9C,MAAM;YACR,KAAK,iBAAO,CAAC,QAAQ;gBACnB,eAAe,GAAG,6BAAW,CAAC,cAAc,CAAC;gBAC7C,MAAM;YACR,KAAK,iBAAO,CAAC,QAAQ;gBACnB,eAAe,GAAG,6BAAW,CAAC,QAAQ,CAAC;gBACvC,MAAM;YACR,KAAK,iBAAO,CAAC,cAAc;gBACzB,eAAe,GAAG,6BAAW,CAAC,cAAc,CAAC;gBAC7C,MAAM;SACT;QACD,OAAO,eAAe,CAAC;IACzB,CAAC;IAEO,2CAAwB,GAAhC,UAAiC,QAAgB;QAC/C,IAAI,IAAI,GAAI,QAAmB,CAAC;QAChC,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;YACrF,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,UAAC,KAAK;gBACvC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,gCAAgC;sBAC/C,QAAQ,GAAG,KAAK,CAAC,QAAQ,GAAG,IAAI;sBAChC,cAAc;sBACd,iBAAiB;sBACjB,YAAY;sBACZ,YAAY,GAAG,KAAK,CAAC,QAAQ,GAAG,oBAAoB;sBACpD,OAAO,GAAG,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;YACjC,CAAC,CAAC,CAAC;SACJ;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,8BAAW,GAAnB,UAAoB,GAAW,EAAE,KAAa;QAC5C,IAAI,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC,EAAE;YACpC,IAAI,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YACtB,IAAI,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YACxB,IAAI,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;YACvC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACvB,IAAI,UAAU,GAAG,qBAAS,CAAC,0BAA0B,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YACnE,OAAO,UAAU,CAAC;SACnB;aAAM;YACL,OAAO,GAAG,CAAC;SACZ;IACH,CAAC;IACH,eAAC;AAAD,CAAC,AAnXD,IAmXC;AAnXY,4BAAQ"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { RequestType } from './events/RequestType';
|
|
1
2
|
export interface MKPlayerConfiguration {
|
|
2
3
|
debug: boolean;
|
|
3
4
|
autoplay: boolean;
|
|
@@ -6,4 +7,5 @@ export interface MKPlayerConfiguration {
|
|
|
6
7
|
ui: boolean;
|
|
7
8
|
targetLatency: number;
|
|
8
9
|
key: string;
|
|
10
|
+
refreshToken?: (type: RequestType) => string;
|
|
9
11
|
}
|
package/dist/lib/MKStream.d.ts
CHANGED
|
@@ -6,11 +6,23 @@ export declare class MKStream {
|
|
|
6
6
|
private readonly _subtitleTracks;
|
|
7
7
|
private readonly _cdnFailoverPercent;
|
|
8
8
|
private readonly _poster;
|
|
9
|
-
|
|
9
|
+
private readonly _userId;
|
|
10
|
+
private readonly _customData1;
|
|
11
|
+
private readonly _customData2;
|
|
12
|
+
private readonly _customData3;
|
|
13
|
+
private readonly _customData4;
|
|
14
|
+
private readonly _customData5;
|
|
15
|
+
constructor(primaryUrl: string, assetIdentifier: string, subtitleTracks?: SubtitleTrack[], poster?: string, secondaryUrl?: string, cdnFailoverPercent?: number, userId?: string, customData1?: string, customData2?: string, customData3?: string, customData4?: string, customData5?: string);
|
|
10
16
|
get cdnFailoverPercent(): number;
|
|
11
17
|
get primaryUrl(): string;
|
|
12
18
|
get secondaryUrl(): string;
|
|
13
19
|
get subtitleTracks(): SubtitleTrack[];
|
|
14
20
|
get assetIdentifier(): string;
|
|
15
21
|
get poster(): string;
|
|
22
|
+
get customData1(): string;
|
|
23
|
+
get customData2(): string;
|
|
24
|
+
get customData3(): string;
|
|
25
|
+
get customData4(): string;
|
|
26
|
+
get customData5(): string;
|
|
27
|
+
get userId(): string;
|
|
16
28
|
}
|
package/dist/lib/MKStream.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.MKStream = void 0;
|
|
4
4
|
var MKStream = (function () {
|
|
5
|
-
function MKStream(primaryUrl, assetIdentifier, subtitleTracks, poster, secondaryUrl, cdnFailoverPercent) {
|
|
5
|
+
function MKStream(primaryUrl, assetIdentifier, subtitleTracks, poster, secondaryUrl, cdnFailoverPercent, userId, customData1, customData2, customData3, customData4, customData5) {
|
|
6
6
|
this._cdnFailoverPercent = 0;
|
|
7
7
|
this._cdnFailoverPercent = cdnFailoverPercent;
|
|
8
8
|
this._secondaryUrl = secondaryUrl;
|
|
@@ -10,6 +10,12 @@ var MKStream = (function () {
|
|
|
10
10
|
this._assetIdentifier = assetIdentifier;
|
|
11
11
|
this._subtitleTracks = subtitleTracks;
|
|
12
12
|
this._poster = poster;
|
|
13
|
+
this._userId = userId;
|
|
14
|
+
this._customData1 = customData1;
|
|
15
|
+
this._customData2 = customData2;
|
|
16
|
+
this._customData3 = customData3;
|
|
17
|
+
this._customData4 = customData4;
|
|
18
|
+
this._customData5 = customData5;
|
|
13
19
|
}
|
|
14
20
|
Object.defineProperty(MKStream.prototype, "cdnFailoverPercent", {
|
|
15
21
|
get: function () {
|
|
@@ -53,6 +59,48 @@ var MKStream = (function () {
|
|
|
53
59
|
enumerable: false,
|
|
54
60
|
configurable: true
|
|
55
61
|
});
|
|
62
|
+
Object.defineProperty(MKStream.prototype, "customData1", {
|
|
63
|
+
get: function () {
|
|
64
|
+
return this._customData1;
|
|
65
|
+
},
|
|
66
|
+
enumerable: false,
|
|
67
|
+
configurable: true
|
|
68
|
+
});
|
|
69
|
+
Object.defineProperty(MKStream.prototype, "customData2", {
|
|
70
|
+
get: function () {
|
|
71
|
+
return this._customData2;
|
|
72
|
+
},
|
|
73
|
+
enumerable: false,
|
|
74
|
+
configurable: true
|
|
75
|
+
});
|
|
76
|
+
Object.defineProperty(MKStream.prototype, "customData3", {
|
|
77
|
+
get: function () {
|
|
78
|
+
return this._customData3;
|
|
79
|
+
},
|
|
80
|
+
enumerable: false,
|
|
81
|
+
configurable: true
|
|
82
|
+
});
|
|
83
|
+
Object.defineProperty(MKStream.prototype, "customData4", {
|
|
84
|
+
get: function () {
|
|
85
|
+
return this._customData4;
|
|
86
|
+
},
|
|
87
|
+
enumerable: false,
|
|
88
|
+
configurable: true
|
|
89
|
+
});
|
|
90
|
+
Object.defineProperty(MKStream.prototype, "customData5", {
|
|
91
|
+
get: function () {
|
|
92
|
+
return this._customData5;
|
|
93
|
+
},
|
|
94
|
+
enumerable: false,
|
|
95
|
+
configurable: true
|
|
96
|
+
});
|
|
97
|
+
Object.defineProperty(MKStream.prototype, "userId", {
|
|
98
|
+
get: function () {
|
|
99
|
+
return this._userId;
|
|
100
|
+
},
|
|
101
|
+
enumerable: false,
|
|
102
|
+
configurable: true
|
|
103
|
+
});
|
|
56
104
|
return MKStream;
|
|
57
105
|
}());
|
|
58
106
|
exports.MKStream = MKStream;
|
package/dist/lib/MKStream.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MKStream.js","sourceRoot":"","sources":["../../src/MKStream.ts"],"names":[],"mappings":";;;AAKA;
|
|
1
|
+
{"version":3,"file":"MKStream.js","sourceRoot":"","sources":["../../src/MKStream.ts"],"names":[],"mappings":";;;AAKA;IAwBE,kBAAY,UAAkB,EAAE,eAAuB,EAAE,cAAgC,EAAE,MAAe,EAAE,YAAqB,EAAE,kBAA2B,EAAE,MAAe,EAAE,WAAoB,EAAE,WAAoB,EAAE,WAAoB,EAAE,WAAoB,EAAE,WAAoB;QAnB5Q,wBAAmB,GAAW,CAAC,CAAC;QAoB/C,IAAI,CAAC,mBAAmB,GAAG,kBAAkB,CAAC;QAC9C,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;QAClC,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;QAC9B,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;QACxC,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC;QACtC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;QAChC,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;QAChC,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;QAChC,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;QAChC,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;IAClC,CAAC;IAKD,sBAAW,wCAAkB;aAA7B;YACE,OAAO,IAAI,CAAC,mBAAmB,CAAC;QAClC,CAAC;;;OAAA;IAKD,sBAAW,gCAAU;aAArB;YACE,OAAO,IAAI,CAAC,WAAW,CAAC;QAC1B,CAAC;;;OAAA;IAKD,sBAAW,kCAAY;aAAvB;YACE,OAAO,IAAI,CAAC,aAAa,CAAC;QAC5B,CAAC;;;OAAA;IAKD,sBAAW,oCAAc;aAAzB;YACE,OAAO,IAAI,CAAC,eAAe,CAAC;QAC9B,CAAC;;;OAAA;IAKD,sBAAW,qCAAe;aAA1B;YACE,OAAO,IAAI,CAAC,gBAAgB,CAAC;QAC/B,CAAC;;;OAAA;IAKD,sBAAW,4BAAM;aAAjB;YACE,OAAO,IAAI,CAAC,OAAO,CAAC;QACtB,CAAC;;;OAAA;IAKD,sBAAW,iCAAW;aAAtB;YACE,OAAO,IAAI,CAAC,YAAY,CAAC;QAC3B,CAAC;;;OAAA;IAKD,sBAAW,iCAAW;aAAtB;YACE,OAAO,IAAI,CAAC,YAAY,CAAC;QAC3B,CAAC;;;OAAA;IAKD,sBAAW,iCAAW;aAAtB;YACE,OAAO,IAAI,CAAC,YAAY,CAAC;QAC3B,CAAC;;;OAAA;IAKD,sBAAW,iCAAW;aAAtB;YACE,OAAO,IAAI,CAAC,YAAY,CAAC;QAC3B,CAAC;;;OAAA;IAKD,sBAAW,iCAAW;aAAtB;YACE,OAAO,IAAI,CAAC,YAAY,CAAC;QAC3B,CAAC;;;OAAA;IAKD,sBAAW,4BAAM;aAAjB;YACE,OAAO,IAAI,CAAC,OAAO,CAAC;QACtB,CAAC;;;OAAA;IACH,eAAC;AAAD,CAAC,AA1HD,IA0HC;AA1HY,4BAAQ"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.URLHelper = void 0;
|
|
4
|
+
var URLHelper = (function () {
|
|
5
|
+
function URLHelper() {
|
|
6
|
+
}
|
|
7
|
+
URLHelper.appendQueryParametersToUrl = function (url, parameters) {
|
|
8
|
+
var queryString = '';
|
|
9
|
+
var queryStringHasStarted = url.indexOf('?') >= 0;
|
|
10
|
+
if (parameters) {
|
|
11
|
+
parameters.forEach(function (value, key) {
|
|
12
|
+
if (!queryStringHasStarted) {
|
|
13
|
+
queryString += '?';
|
|
14
|
+
queryStringHasStarted = true;
|
|
15
|
+
}
|
|
16
|
+
else {
|
|
17
|
+
queryString += '&';
|
|
18
|
+
}
|
|
19
|
+
queryString += key;
|
|
20
|
+
if (value != null) {
|
|
21
|
+
queryString += '=' + encodeURIComponent(value);
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
return url + queryString;
|
|
26
|
+
};
|
|
27
|
+
URLHelper.removeUrlParameter = function (url, parameter) {
|
|
28
|
+
var urlParts = url.split('?');
|
|
29
|
+
if (urlParts.length >= 2) {
|
|
30
|
+
var urlBase = urlParts.shift();
|
|
31
|
+
var queryString = urlParts.join('?');
|
|
32
|
+
var prefix = encodeURIComponent(parameter) + '=';
|
|
33
|
+
var parts = queryString.split(/[&;]/g);
|
|
34
|
+
for (var i = parts.length; i-- > 0;) {
|
|
35
|
+
if (parts[i].lastIndexOf(prefix, 0) !== -1) {
|
|
36
|
+
parts.splice(i, 1);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
if (parts.length > 0) {
|
|
40
|
+
url = urlBase + '?' + parts.join('&');
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
url = urlBase;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
return url;
|
|
47
|
+
};
|
|
48
|
+
return URLHelper;
|
|
49
|
+
}());
|
|
50
|
+
exports.URLHelper = URLHelper;
|
|
51
|
+
//# sourceMappingURL=URLHelper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"URLHelper.js","sourceRoot":"","sources":["../../src/URLHelper.ts"],"names":[],"mappings":";;;AAAA;IAAA;IA8DA,CAAC;IA7De,oCAA0B,GAAxC,UAAyC,GAAW,EAAE,UAA+B;QAEnF,IAAI,WAAW,GAAG,EAAE,CAAC;QACrB,IAAI,qBAAqB,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAElD,IAAI,UAAU,EAAE;YACd,UAAU,CAAC,OAAO,CAAC,UAAC,KAAK,EAAE,GAAG;gBAE1B,IAAI,CAAC,qBAAqB,EAAE;oBAE1B,WAAW,IAAI,GAAG,CAAC;oBACnB,qBAAqB,GAAG,IAAI,CAAC;iBAC9B;qBAAM;oBAEL,WAAW,IAAI,GAAG,CAAC;iBACpB;gBAGD,WAAW,IAAI,GAAG,CAAC;gBAGnB,IAAI,KAAK,IAAI,IAAI,EAAE;oBACjB,WAAW,IAAI,GAAG,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;iBAChD;YACL,CAAC,CAAC,CAAC;SACF;QACH,OAAO,GAAG,GAAG,WAAW,CAAC;IAC3B,CAAC;IAEa,4BAAkB,GAAhC,UAAiC,GAAW,EAAE,SAAiB;QAC7D,IAAI,QAAQ,GAAa,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAExC,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC,EAAE;YAExB,IAAI,OAAO,GAAW,QAAQ,CAAC,KAAK,EAAE,CAAC;YAGvC,IAAI,WAAW,GAAW,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAE7C,IAAI,MAAM,GAAW,kBAAkB,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC;YACzD,IAAI,KAAK,GAAa,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAGjD,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,GAAG,CAAC,GAAG;gBAEnC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;oBAC1C,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;iBACpB;aACF;YAGD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;gBACpB,GAAG,GAAG,OAAO,GAAG,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aACvC;iBAAM;gBACL,GAAG,GAAG,OAAO,CAAC;aACf;SACF;QAED,OAAO,GAAG,CAAC;IAEb,CAAC;IACH,gBAAC;AAAD,CAAC,AA9DD,IA8DC;AA9DY,8BAAS"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RequestType = void 0;
|
|
4
|
+
var RequestType;
|
|
5
|
+
(function (RequestType) {
|
|
6
|
+
RequestType["Master"] = "master";
|
|
7
|
+
RequestType["Variant"] = "variant";
|
|
8
|
+
})(RequestType = exports.RequestType || (exports.RequestType = {}));
|
|
9
|
+
//# sourceMappingURL=RequestType.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RequestType.js","sourceRoot":"","sources":["../../../src/events/RequestType.ts"],"names":[],"mappings":";;;AACA,IAAY,WAGX;AAHD,WAAY,WAAW;IACrB,gCAAiB,CAAA;IACjB,kCAAmB,CAAA;AACrB,CAAC,EAHW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAGtB"}
|
|
@@ -5,6 +5,7 @@ import { BufferLevel } from './BufferLevel';
|
|
|
5
5
|
import { MKPlayerEventCallback } from './events/MKPlayerEventCallback';
|
|
6
6
|
export declare class MKPlayer {
|
|
7
7
|
private player;
|
|
8
|
+
private stream;
|
|
8
9
|
constructor(containerElement: HTMLElement, mkPlayerConfiguration: MKPlayerConfiguration);
|
|
9
10
|
play(): Promise<void>;
|
|
10
11
|
pause(): void;
|
|
@@ -26,4 +27,6 @@ export declare class MKPlayer {
|
|
|
26
27
|
private static getRandomInt;
|
|
27
28
|
private static makeId;
|
|
28
29
|
private static mapEvent;
|
|
30
|
+
private manipulateMasterPlaylist;
|
|
31
|
+
private appendToken;
|
|
29
32
|
}
|
package/dist/lib-esm/MKPlayer.js
CHANGED
|
@@ -2,8 +2,11 @@ import { BufferType, LogLevel, MediaType, Player, PlayerEvent, } from 'bitmovin-
|
|
|
2
2
|
import { UIFactory } from 'bitmovin-player-ui';
|
|
3
3
|
import { MKEvent } from './events/MKEvent';
|
|
4
4
|
import { Logger } from './Logger';
|
|
5
|
+
import { RequestType } from './events/RequestType';
|
|
6
|
+
import { URLHelper } from './URLHelper';
|
|
5
7
|
var MKPlayer = (function () {
|
|
6
8
|
function MKPlayer(containerElement, mkPlayerConfiguration) {
|
|
9
|
+
var _this = this;
|
|
7
10
|
var playerConfig = {
|
|
8
11
|
key: mkPlayerConfiguration.key,
|
|
9
12
|
playback: {
|
|
@@ -13,18 +16,40 @@ var MKPlayer = (function () {
|
|
|
13
16
|
analytics: {
|
|
14
17
|
key: '1c45ae9c-345e-4462-95e2-3e8faccd64f1',
|
|
15
18
|
},
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
ui_css: 'mkplayer-ui.min.css',
|
|
19
|
+
ui: {
|
|
20
|
+
disableAutoHideWhenHovered: true,
|
|
19
21
|
},
|
|
20
22
|
logs: {
|
|
21
23
|
level: LogLevel.OFF,
|
|
22
24
|
bitmovin: false,
|
|
23
25
|
},
|
|
26
|
+
network: {
|
|
27
|
+
preprocessHttpRequest: function (type, request) {
|
|
28
|
+
if (type === 'manifest/hls/master') {
|
|
29
|
+
if (typeof mkPlayerConfiguration.refreshToken === 'function') {
|
|
30
|
+
var token = mkPlayerConfiguration.refreshToken(RequestType.Master);
|
|
31
|
+
console.log('[MKPlayer] Appending master token: ' + token);
|
|
32
|
+
request.url = _this.appendToken(request.url, token);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
else if (type === 'manifest/hls/variant') {
|
|
36
|
+
if (typeof mkPlayerConfiguration.refreshToken === 'function') {
|
|
37
|
+
var token = mkPlayerConfiguration.refreshToken(RequestType.Variant);
|
|
38
|
+
console.log('[MKPlayer] Appending variant token: ' + token);
|
|
39
|
+
request.url = _this.appendToken(request.url, token);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return Promise.resolve(request);
|
|
43
|
+
},
|
|
44
|
+
preprocessHttpResponse: function (type, response) {
|
|
45
|
+
if (type === 'manifest/hls/master') {
|
|
46
|
+
var body = _this.manipulateMasterPlaylist(response.body);
|
|
47
|
+
response.body = body;
|
|
48
|
+
}
|
|
49
|
+
return Promise.resolve(response);
|
|
50
|
+
},
|
|
51
|
+
},
|
|
24
52
|
};
|
|
25
|
-
if (mkPlayerConfiguration.ui === false) {
|
|
26
|
-
playerConfig.ui = false;
|
|
27
|
-
}
|
|
28
53
|
if (mkPlayerConfiguration.targetLatency > 0) {
|
|
29
54
|
playerConfig.live = {
|
|
30
55
|
lowLatency: {
|
|
@@ -48,7 +73,7 @@ var MKPlayer = (function () {
|
|
|
48
73
|
UIFactory.buildDefaultSmallScreenUI(player);
|
|
49
74
|
}
|
|
50
75
|
else {
|
|
51
|
-
UIFactory.buildDefaultUI(player);
|
|
76
|
+
UIFactory.buildDefaultUI(player, playerConfig.ui);
|
|
52
77
|
}
|
|
53
78
|
}
|
|
54
79
|
if (mkPlayerConfiguration.debug) {
|
|
@@ -68,6 +93,7 @@ var MKPlayer = (function () {
|
|
|
68
93
|
};
|
|
69
94
|
MKPlayer.prototype.load = function (stream) {
|
|
70
95
|
var playerSource;
|
|
96
|
+
this.stream = stream;
|
|
71
97
|
var url = MKPlayer.selectUrl(stream);
|
|
72
98
|
if (url.includes('.m3u8')) {
|
|
73
99
|
playerSource = {
|
|
@@ -90,9 +116,16 @@ var MKPlayer = (function () {
|
|
|
90
116
|
if (stream.assetIdentifier) {
|
|
91
117
|
playerSource.analytics = {
|
|
92
118
|
videoId: stream.assetIdentifier,
|
|
119
|
+
userId: stream.userId,
|
|
120
|
+
customData1: stream.customData1,
|
|
121
|
+
customData2: stream.customData2,
|
|
122
|
+
customData3: stream.customData3,
|
|
123
|
+
customData4: stream.customData4,
|
|
124
|
+
customData5: stream.customData5,
|
|
125
|
+
customData6: this.version(),
|
|
93
126
|
};
|
|
94
127
|
}
|
|
95
|
-
if (stream.subtitleTracks) {
|
|
128
|
+
if (stream.subtitleTracks && !stream.subtitleTracks[0].url.includes('.m3u8')) {
|
|
96
129
|
playerSource.subtitleTracks = stream.subtitleTracks.map(function (track) { return ({
|
|
97
130
|
lang: track.language,
|
|
98
131
|
url: track.url,
|
|
@@ -141,7 +174,7 @@ var MKPlayer = (function () {
|
|
|
141
174
|
this.player.setVolume(volume);
|
|
142
175
|
};
|
|
143
176
|
MKPlayer.prototype.version = function () {
|
|
144
|
-
return '1.0.
|
|
177
|
+
return '1.0.15';
|
|
145
178
|
};
|
|
146
179
|
MKPlayer.selectUrl = function (source) {
|
|
147
180
|
var rand = MKPlayer.getRandomInt(99);
|
|
@@ -214,6 +247,35 @@ var MKPlayer = (function () {
|
|
|
214
247
|
}
|
|
215
248
|
return playerEventType;
|
|
216
249
|
};
|
|
250
|
+
MKPlayer.prototype.manipulateMasterPlaylist = function (response) {
|
|
251
|
+
var body = response;
|
|
252
|
+
if (this.stream.subtitleTracks && this.stream.subtitleTracks[0].url.includes('.m3u8')) {
|
|
253
|
+
this.stream.subtitleTracks.forEach(function (track) {
|
|
254
|
+
body = body.concat('\n#EXT-X-MEDIA:TYPE=SUBTITLES,'
|
|
255
|
+
+ 'NAME="' + track.language + '",'
|
|
256
|
+
+ 'DEFAULT=YES,'
|
|
257
|
+
+ 'AUTOSELECT=YES,'
|
|
258
|
+
+ 'FORCED=NO,'
|
|
259
|
+
+ 'LANGUAGE="' + track.language + '",GROUP-ID="subs",'
|
|
260
|
+
+ 'URI="' + track.url + '"');
|
|
261
|
+
});
|
|
262
|
+
}
|
|
263
|
+
return body;
|
|
264
|
+
};
|
|
265
|
+
MKPlayer.prototype.appendToken = function (url, token) {
|
|
266
|
+
var splitted = token.split('=');
|
|
267
|
+
if (splitted && splitted.length >= 2) {
|
|
268
|
+
var key = splitted[0];
|
|
269
|
+
var value = splitted[1];
|
|
270
|
+
var params = new Map();
|
|
271
|
+
params.set(key, value);
|
|
272
|
+
var updatedUrl = URLHelper.appendQueryParametersToUrl(url, params);
|
|
273
|
+
return updatedUrl;
|
|
274
|
+
}
|
|
275
|
+
else {
|
|
276
|
+
return url;
|
|
277
|
+
}
|
|
278
|
+
};
|
|
217
279
|
return MKPlayer;
|
|
218
280
|
}());
|
|
219
281
|
export { MKPlayer };
|