cloudinary-video-player 3.0.2-edge.1 → 3.0.2
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/adaptive-streaming.js +76 -15
- package/dist/adaptive-streaming.min.js +3 -3
- package/dist/chapters.js +2 -2
- package/dist/chapters.min.js +2 -2
- package/dist/cld-video-player.css +2 -2
- package/dist/cld-video-player.js +6 -6
- package/dist/cld-video-player.light.js +6 -6
- package/dist/cld-video-player.light.min.js +4 -4
- package/dist/cld-video-player.min.css +2 -2
- package/dist/cld-video-player.min.js +4 -4
- package/dist/colors.js +2 -2
- package/dist/colors.min.js +2 -2
- package/dist/dash.js +2 -2
- package/dist/dash.min.js +2 -2
- package/dist/debug.js +2 -2
- package/dist/debug.min.js +2 -2
- package/dist/ima.js +2 -2
- package/dist/ima.min.js +2 -2
- package/dist/interaction-areas.js +2 -2
- package/dist/interaction-areas.min.js +2 -2
- package/dist/node_modules_lodash_throttle_js.js +2 -2
- package/dist/playlist.js +2 -2
- package/dist/playlist.min.js +2 -2
- package/dist/recommendations-overlay.js +2 -2
- package/dist/recommendations-overlay.min.js +2 -2
- package/dist/shoppable.js +2 -2
- package/dist/shoppable.min.js +2 -2
- package/dist/srt-text-tracks.js +2 -2
- package/dist/srt-text-tracks.min.js +2 -2
- package/dist/visual-search.js +2 -2
- package/dist/visual-search.min.js +2 -2
- package/lib/adaptive-streaming.js +1 -1
- package/lib/all.js +1 -1
- package/lib/cld-video-player.js +1 -1
- package/lib/player.js +1 -1
- package/lib/videoPlayer.js +1 -1
- package/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Cloudinary Video Player v3.0.2
|
|
3
|
-
* Built on 2025-06-
|
|
2
|
+
* Cloudinary Video Player v3.0.2
|
|
3
|
+
* Built on 2025-06-24T09:40:45.653Z
|
|
4
4
|
* https://github.com/cloudinary/cloudinary-video-player
|
|
5
5
|
*/
|
|
6
6
|
(self["cloudinaryVideoPlayerChunkLoading"] = self["cloudinaryVideoPlayerChunkLoading"] || []).push([["adaptive-streaming"],{
|
|
@@ -375,14 +375,66 @@ const qualityLevels = (player, options) => {
|
|
|
375
375
|
}
|
|
376
376
|
};
|
|
377
377
|
|
|
378
|
+
// Helper to synchronise Video.js AudioTrackList with hls.js active track
|
|
379
|
+
const updateVjsAudioTracksEnabled = activeIndex => {
|
|
380
|
+
const list = player.audioTracks();
|
|
381
|
+
if (!list) return;
|
|
382
|
+
for (let i = 0; i < list.length; i++) {
|
|
383
|
+
list[i].enabled = i === activeIndex;
|
|
384
|
+
}
|
|
385
|
+
// Sync complete – log for debug
|
|
386
|
+
logAudioTrackInfo();
|
|
387
|
+
};
|
|
388
|
+
|
|
389
|
+
// Flush buffered audio by performing a tiny seek outside current range
|
|
390
|
+
const flushBufferedAudio = () => {
|
|
391
|
+
try {
|
|
392
|
+
const cur = player.currentTime();
|
|
393
|
+
const delta = 0.5; // 500 ms gap to escape current buffer
|
|
394
|
+
const target = Math.min(cur + delta, player.duration() - 0.1);
|
|
395
|
+
player.currentTime(target);
|
|
396
|
+
player.currentTime(cur);
|
|
397
|
+
} catch (e) {
|
|
398
|
+
debugLog('Error while flushing buffered audio', e);
|
|
399
|
+
}
|
|
400
|
+
};
|
|
401
|
+
|
|
402
|
+
// Force hls.js to switch track and immediately start loading fragments for it
|
|
403
|
+
const selectAudioTrack = index => {
|
|
404
|
+
var tech = player.tech({
|
|
405
|
+
IWillNotUseThisInPlugins: true
|
|
406
|
+
});
|
|
407
|
+
if (typeof tech.sourceHandler_ != 'undefined' && typeof tech.sourceHandler_.hls != 'undefined' && tech.sourceHandler_.hls != null) {
|
|
408
|
+
const hls = tech.sourceHandler_.hls;
|
|
409
|
+
if (hls.audioTrack === index) {
|
|
410
|
+
return;
|
|
411
|
+
}
|
|
412
|
+
hls.audioTrack = index;
|
|
413
|
+
// Quickly restart loading to fill the buffer of the new audio group
|
|
414
|
+
if (hls.media) {
|
|
415
|
+
try {
|
|
416
|
+
hls.stopLoad();
|
|
417
|
+
hls.startLoad(0);
|
|
418
|
+
} catch (e) {
|
|
419
|
+
debugLog('Error while reloading after audioTrack switch', e);
|
|
420
|
+
}
|
|
421
|
+
}
|
|
422
|
+
logAudioTrackInfo();
|
|
423
|
+
// will flush once switch is confirmed (AUDIO_TRACK_SWITCHED)
|
|
424
|
+
hls.once(hls_js__WEBPACK_IMPORTED_MODULE_1__["default"].Events.AUDIO_TRACK_SWITCHED, () => {
|
|
425
|
+
flushBufferedAudio();
|
|
426
|
+
});
|
|
427
|
+
}
|
|
428
|
+
};
|
|
429
|
+
|
|
378
430
|
// Audio track handling
|
|
379
|
-
const addAudioTrackVideojs = track => {
|
|
380
|
-
|
|
431
|
+
const addAudioTrackVideojs = (track, hls) => {
|
|
432
|
+
const vjsTrack = new (video_js__WEBPACK_IMPORTED_MODULE_0___default().AudioTrack)({
|
|
381
433
|
id: `${track.type}-id_${track.id}-groupId_${track.groupId}-${track.name}`,
|
|
382
434
|
kind: 'translation',
|
|
383
435
|
label: track.name,
|
|
384
436
|
language: track.lang,
|
|
385
|
-
enabled: track
|
|
437
|
+
enabled: hls.audioTrack === hls.audioTracks.indexOf(track),
|
|
386
438
|
default: track.default
|
|
387
439
|
});
|
|
388
440
|
|
|
@@ -397,7 +449,7 @@ const qualityLevels = (player, options) => {
|
|
|
397
449
|
const hls = tech.sourceHandler_.hls;
|
|
398
450
|
const len = hls.audioTracks.length;
|
|
399
451
|
for (let i = 0; i < len; i++) {
|
|
400
|
-
addAudioTrackVideojs(hls.audioTracks[i]);
|
|
452
|
+
addAudioTrackVideojs(hls.audioTracks[i], hls);
|
|
401
453
|
}
|
|
402
454
|
}
|
|
403
455
|
|
|
@@ -408,11 +460,10 @@ const qualityLevels = (player, options) => {
|
|
|
408
460
|
IWillNotUseThisInPlugins: true
|
|
409
461
|
});
|
|
410
462
|
if (typeof tech.sourceHandler_ != 'undefined' && typeof tech.sourceHandler_.hls != 'undefined' && tech.sourceHandler_.hls != null) {
|
|
411
|
-
const hls = tech.sourceHandler_.hls;
|
|
412
463
|
for (var i = 0; i < audioTrackList.length; i++) {
|
|
413
464
|
var track = audioTrackList[i];
|
|
414
465
|
if (track.enabled) {
|
|
415
|
-
|
|
466
|
+
selectAudioTrack(i);
|
|
416
467
|
return;
|
|
417
468
|
}
|
|
418
469
|
}
|
|
@@ -432,22 +483,32 @@ const qualityLevels = (player, options) => {
|
|
|
432
483
|
// HLS
|
|
433
484
|
if (typeof tech.sourceHandler_ != 'undefined' && typeof tech.sourceHandler_.hls != 'undefined' && tech.sourceHandler_.hls != null) {
|
|
434
485
|
const hls = tech.sourceHandler_.hls;
|
|
435
|
-
|
|
486
|
+
const manifestLoadedHandler = (eventName, data) => {
|
|
436
487
|
debugLog(`HLS event: ${eventName}`, data);
|
|
437
488
|
populateLevels(hls.levels, 'hls');
|
|
438
|
-
|
|
489
|
+
initAudioTrackInfo();
|
|
490
|
+
hls.off(hls_js__WEBPACK_IMPORTED_MODULE_1__["default"].Events.MANIFEST_LOADED, manifestLoadedHandler);
|
|
491
|
+
};
|
|
492
|
+
|
|
493
|
+
// If manifest is already loaded, populate levels immediately.
|
|
494
|
+
if (hls.levels && hls.levels.length > 0) {
|
|
495
|
+
manifestLoadedHandler('MANUAL_MANIFEST_LOADED', {});
|
|
496
|
+
} else {
|
|
497
|
+
hls.on(hls_js__WEBPACK_IMPORTED_MODULE_1__["default"].Events.MANIFEST_LOADED, manifestLoadedHandler);
|
|
498
|
+
}
|
|
439
499
|
hls.on(hls_js__WEBPACK_IMPORTED_MODULE_1__["default"].Events.LEVEL_SWITCHED, (eventName, data) => {
|
|
440
500
|
debugLog(`HLS event: ${eventName}`, data);
|
|
441
501
|
populateQualityLevelsChange(data.level);
|
|
442
502
|
populateQualityChangedEvent(data.level);
|
|
443
503
|
});
|
|
444
|
-
hls.on(hls_js__WEBPACK_IMPORTED_MODULE_1__["default"].Events.AUDIO_TRACKS_UPDATED, (eventName, data) => {
|
|
445
|
-
debugLog(`HLS event: ${eventName}`, data);
|
|
446
|
-
initAudioTrackInfo();
|
|
447
|
-
});
|
|
448
504
|
hls.on(hls_js__WEBPACK_IMPORTED_MODULE_1__["default"].Events.AUDIO_TRACK_SWITCHED, (eventName, data) => {
|
|
449
505
|
debugLog(`HLS event: ${eventName}`, data);
|
|
450
|
-
|
|
506
|
+
// Make sure Video.js AudioTracks reflect the newly-selected HLS track
|
|
507
|
+
if (typeof data.id !== 'undefined') {
|
|
508
|
+
updateVjsAudioTracksEnabled(data.id);
|
|
509
|
+
}
|
|
510
|
+
// Ensure buffer flushed when switch originates from hls.js (e.g. default track)
|
|
511
|
+
flushBufferedAudio();
|
|
451
512
|
});
|
|
452
513
|
hls.on(hls_js__WEBPACK_IMPORTED_MODULE_1__["default"].Events.ERROR, (eventName, data) => {
|
|
453
514
|
debugLog(`HLS event: ${eventName}`, data);
|