@eluvio/elv-player-js 2.0.36 → 2.0.37
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/dist/.vite/manifest.json +17 -17
- package/dist/{Analytics-CbpMj67a.mjs → Analytics-BBEwd1R5.mjs} +2 -2
- package/dist/{Analytics-Cdja-I0j.js → Analytics-w1qhPzxI.js} +2 -2
- package/dist/{dash.all.min-B2EGZ3Xj.js → dash.all.min-BVkN0R90.js} +1 -1
- package/dist/{dash.all.min-DPVf_HDs.mjs → dash.all.min-DDH3GXWY.mjs} +1 -1
- package/dist/elv-player-js.cjs.js +1 -1
- package/dist/elv-player-js.es.js +1 -1
- package/dist/index-BCNBIa4H.js +379 -0
- package/dist/{index-H9VVuTIZ.mjs → index-DHGbdjkF.mjs} +1 -1
- package/dist/{index-BmePmLfl.js → index-aw7wbA8R.js} +1 -1
- package/dist/{index-DkDr9rDs.mjs → index-ju4zFXz_.mjs} +15725 -15657
- package/lib/player/Analytics.js +2 -1
- package/lib/player/Player.js +52 -40
- package/lib/player/PlayerParameters.js +6 -0
- package/package.json +2 -2
- package/dist/index-4mIDn5Ly.js +0 -378
package/lib/player/Analytics.js
CHANGED
|
@@ -17,7 +17,8 @@ export const InitializeMuxMonitoring = async ({
|
|
|
17
17
|
|
|
18
18
|
const versionHash = playoutUrl.pathname.split("/").find(token => token.startsWith("hq__"));
|
|
19
19
|
const objectId = client.utils.DecodeVersionHash(versionHash).objectId;
|
|
20
|
-
|
|
20
|
+
|
|
21
|
+
const offering = (playoutUrl.toString().match(/\/rep\/playout|channel\/([^/]+)/) || [])[1] || "default";
|
|
21
22
|
const sessionId = playoutUrl.searchParams.get("sid");
|
|
22
23
|
|
|
23
24
|
let name = versionHash;
|
package/lib/player/Player.js
CHANGED
|
@@ -145,7 +145,12 @@ export class EluvioPlayer {
|
|
|
145
145
|
this.sourceOptions.playoutOptions = undefined;
|
|
146
146
|
}
|
|
147
147
|
|
|
148
|
-
let offeringId, offeringURI
|
|
148
|
+
let offeringId, offeringURI;
|
|
149
|
+
let options = {
|
|
150
|
+
ignore_trimming: playoutParameters.ignoreTrimming,
|
|
151
|
+
resolve: playoutParameters.resolve
|
|
152
|
+
};
|
|
153
|
+
|
|
149
154
|
if(playoutParameters.clipStart || playoutParameters.clipEnd) {
|
|
150
155
|
options.clip_start = parseFloat(playoutParameters.clipStart || 0);
|
|
151
156
|
|
|
@@ -153,48 +158,46 @@ export class EluvioPlayer {
|
|
|
153
158
|
options.clip_end = parseFloat(playoutParameters.clipEnd);
|
|
154
159
|
}
|
|
155
160
|
}
|
|
156
|
-
|
|
157
|
-
let availableOfferings = (await client.AvailableOfferings({
|
|
158
|
-
objectId: playoutParameters.objectId,
|
|
159
|
-
versionHash: playoutParameters.versionHash,
|
|
160
|
-
writeToken: playoutParameters.writeToken,
|
|
161
|
-
linkPath: playoutParameters.linkPath,
|
|
162
|
-
directLink: playoutParameters.directLink,
|
|
163
|
-
resolveIncludeSource: true,
|
|
164
|
-
authorizationToken: playoutParameters.authorizationToken
|
|
165
|
-
})) || {};
|
|
166
|
-
|
|
167
|
-
offeringId = availableOfferings.default ? "default" :Object.keys(availableOfferings)[0];
|
|
168
|
-
if(playoutParameters.offering) {
|
|
169
|
-
offeringId = availableOfferings[playoutParameters.offering] ? playoutParameters.offering : undefined;
|
|
170
|
-
} else if((playoutParameters.offerings || []).length > 0) {
|
|
171
|
-
offeringId = playoutParameters.offerings.find(offeringId => availableOfferings[offeringId]);
|
|
172
|
-
} else if(playoutParameters.offerings && playoutParameters.offerings.length > 0) {
|
|
173
|
-
offeringId = playoutParameters.offerings.find(offeringId => availableOfferings[offeringId]);
|
|
174
|
-
}
|
|
175
161
|
|
|
176
|
-
if(!
|
|
177
|
-
|
|
178
|
-
|
|
162
|
+
if(!playoutParameters.channel) {
|
|
163
|
+
// Determine offering
|
|
164
|
+
let availableOfferings = (await client.AvailableOfferings({
|
|
165
|
+
objectId: playoutParameters.objectId,
|
|
166
|
+
versionHash: playoutParameters.versionHash,
|
|
167
|
+
writeToken: playoutParameters.writeToken,
|
|
168
|
+
linkPath: playoutParameters.linkPath,
|
|
169
|
+
directLink: playoutParameters.directLink,
|
|
170
|
+
resolveIncludeSource: true,
|
|
171
|
+
authorizationToken: playoutParameters.authorizationToken
|
|
172
|
+
})) || {};
|
|
173
|
+
|
|
174
|
+
offeringId = availableOfferings.default ? "default" : Object.keys(availableOfferings)[0];
|
|
175
|
+
if(playoutParameters.offering) {
|
|
176
|
+
offeringId = availableOfferings[playoutParameters.offering] ? playoutParameters.offering : undefined;
|
|
177
|
+
} else if((playoutParameters.offerings || []).length > 0) {
|
|
178
|
+
offeringId = playoutParameters.offerings.find(offeringId => availableOfferings[offeringId]);
|
|
179
|
+
} else if(playoutParameters.offerings && playoutParameters.offerings.length > 0) {
|
|
180
|
+
offeringId = playoutParameters.offerings.find(offeringId => availableOfferings[offeringId]);
|
|
181
|
+
}
|
|
179
182
|
|
|
180
|
-
|
|
183
|
+
if(!offeringId) {
|
|
184
|
+
throw new Error(`Unable to find offering from '${playoutParameters.offering || playoutParameters.offerings}'`);
|
|
185
|
+
}
|
|
181
186
|
|
|
182
|
-
|
|
187
|
+
const offeringProperties = availableOfferings[offeringId] && availableOfferings[offeringId].properties || {};
|
|
183
188
|
|
|
184
|
-
|
|
185
|
-
options.resolve = playoutParameters.resolve;
|
|
189
|
+
offeringURI = availableOfferings[offeringId].uri;
|
|
186
190
|
|
|
187
|
-
if(this.sourceOptions.contentInfo.liveDVR === EluvioPlayerParameters.liveDVR.ON && offeringProperties.dvr_available) {
|
|
188
|
-
options.dvr = 1;
|
|
189
|
-
this.dvrAvailable = true;
|
|
190
|
-
} else {
|
|
191
|
-
this.dvrAvailable = false;
|
|
192
|
-
}
|
|
193
191
|
|
|
194
|
-
|
|
195
|
-
this.
|
|
196
|
-
|
|
197
|
-
|
|
192
|
+
|
|
193
|
+
if(this.sourceOptions.contentInfo.liveDVR === EluvioPlayerParameters.liveDVR.ON && offeringProperties.dvr_available) {
|
|
194
|
+
options.dvr = 1;
|
|
195
|
+
this.dvrAvailable = true;
|
|
196
|
+
} else {
|
|
197
|
+
this.dvrAvailable = false;
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
this.isLive = offeringProperties.live;
|
|
198
201
|
}
|
|
199
202
|
|
|
200
203
|
if(playoutParameters.directLink) {
|
|
@@ -208,7 +211,8 @@ export class EluvioPlayer {
|
|
|
208
211
|
if(!this.sourceOptions.playoutOptions) {
|
|
209
212
|
this.sourceOptions.playoutOptions = await client.PlayoutOptions({
|
|
210
213
|
...playoutParameters,
|
|
211
|
-
|
|
214
|
+
handler: playoutParameters.channel ? "channel" : "playout",
|
|
215
|
+
offering: playoutParameters.channel || offeringId,
|
|
212
216
|
options
|
|
213
217
|
});
|
|
214
218
|
}
|
|
@@ -224,7 +228,11 @@ export class EluvioPlayer {
|
|
|
224
228
|
|
|
225
229
|
drm =
|
|
226
230
|
(this.sourceOptions.drms || []).length === 0 ? (protocolDRMs.find(drm => drm !== "clear")) || protocolDRMs[0] :
|
|
227
|
-
this.sourceOptions.drms
|
|
231
|
+
this.sourceOptions.drms
|
|
232
|
+
.sort()
|
|
233
|
+
// Prefer widevine if available
|
|
234
|
+
.reverse()
|
|
235
|
+
.find(drm => availableDRMs.includes(drm) && this.sourceOptions.playoutOptions[protocol].playoutMethods[drm]);
|
|
228
236
|
|
|
229
237
|
if(!drm) {
|
|
230
238
|
availableProtocols = availableProtocols.filter(p => p !== protocol);
|
|
@@ -564,7 +572,11 @@ export class EluvioPlayer {
|
|
|
564
572
|
this.HLS = (await import("hls.js")).default;
|
|
565
573
|
|
|
566
574
|
const nativeHLSSupported = this.video.canPlayType("application/vnd.apple.mpegURL");
|
|
567
|
-
if(
|
|
575
|
+
if(
|
|
576
|
+
(nativeHLSSupported && isIOS && this.playerOptions.preferNativeHLS) ||
|
|
577
|
+
[EluvioPlayerParameters.drms.FAIRPLAY, EluvioPlayerParameters.drms.SAMPLE_AES].includes(drm) ||
|
|
578
|
+
!this.HLS.isSupported()
|
|
579
|
+
) {
|
|
568
580
|
// HLS JS NOT SUPPORTED - Handle native player
|
|
569
581
|
this.nativeHLS = true;
|
|
570
582
|
|
|
@@ -100,6 +100,10 @@ export const PlayerParameters = {
|
|
|
100
100
|
allowCasting: {
|
|
101
101
|
OFF: false,
|
|
102
102
|
ON: true
|
|
103
|
+
},
|
|
104
|
+
preferNativeHLS: {
|
|
105
|
+
OFF: false,
|
|
106
|
+
ON: true
|
|
103
107
|
}
|
|
104
108
|
};
|
|
105
109
|
|
|
@@ -149,6 +153,7 @@ export const DefaultParameters = {
|
|
|
149
153
|
handler: "playout",
|
|
150
154
|
offering: undefined,
|
|
151
155
|
offerings: [],
|
|
156
|
+
channel: undefined,
|
|
152
157
|
playoutType: undefined,
|
|
153
158
|
context: undefined,
|
|
154
159
|
hlsjsProfile: true,
|
|
@@ -176,6 +181,7 @@ export const DefaultParameters = {
|
|
|
176
181
|
showLoader: PlayerParameters.showLoader.ON,
|
|
177
182
|
permanentPoster: PlayerParameters.permanentPoster.OFF,
|
|
178
183
|
allowCasting: PlayerParameters.allowCasting.ON,
|
|
184
|
+
preferNativeHLS: PlayerParameters.preferNativeHLS.ON,
|
|
179
185
|
startTime: undefined,
|
|
180
186
|
startProgress: undefined,
|
|
181
187
|
hlsjsOptions: undefined,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@eluvio/elv-player-js",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.37",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "dist/elv-player-js.es.js",
|
|
6
6
|
"license": "MIT",
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
"package-lock.json"
|
|
37
37
|
],
|
|
38
38
|
"dependencies": {
|
|
39
|
-
"@eluvio/elv-client-js": "^4.0.
|
|
39
|
+
"@eluvio/elv-client-js": "^4.0.123",
|
|
40
40
|
"dashjs": "~4.7.0",
|
|
41
41
|
"focus-visible": "^5.2.0",
|
|
42
42
|
"hls.js": "~1.5.12",
|