@gcorevideo/player 2.19.14 → 2.19.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/assets/level-selector/list.ejs +2 -2
- package/dist/core.js +1 -1
- package/dist/index.css +1054 -1054
- package/dist/index.js +1232 -1154
- package/dist/player.d.ts +157 -22
- package/dist/plugins/index.css +634 -634
- package/dist/plugins/index.js +1024 -944
- package/docs/api/player.bottomgear.getelement.md +56 -0
- package/docs/api/player.bottomgear.md +51 -0
- package/docs/api/player.bottomgear.setcontent.md +56 -0
- package/docs/api/{player.subtitles.levelelement.md → player.gearevents.md} +11 -13
- package/docs/api/{player.sourcecontroller.name.md → player.gearitemelement.md} +5 -3
- package/docs/api/player.levelselector.md +9 -1
- package/docs/api/player.md +37 -0
- package/docs/api/{player.sourcecontroller.supportedversion.md → player.mediacontrol.getrightpanel.md} +11 -5
- package/docs/api/player.mediacontrol.md +14 -0
- package/docs/api/player.mediacontrolelement.md +1 -1
- package/docs/api/player.sourcecontroller.md +0 -90
- package/docs/api/player.spinnerevents.md +49 -0
- package/docs/api/player.spinnerthreebounce._constructor_.md +3 -0
- package/docs/api/player.spinnerthreebounce.hide.md +5 -0
- package/docs/api/player.spinnerthreebounce.md +14 -95
- package/docs/api/player.spinnerthreebounce.show.md +6 -37
- package/docs/api/player.subtitles.hide.md +5 -0
- package/docs/api/player.subtitles.md +23 -275
- package/docs/api/player.subtitles.show.md +5 -0
- package/lib/plugins/bottom-gear/BottomGear.d.ts +20 -1
- package/lib/plugins/bottom-gear/BottomGear.d.ts.map +1 -1
- package/lib/plugins/bottom-gear/BottomGear.js +28 -7
- package/lib/plugins/clappr-nerd-stats/ClapprNerdStats.js +4 -4
- package/lib/plugins/level-selector/LevelSelector.d.ts +10 -3
- package/lib/plugins/level-selector/LevelSelector.d.ts.map +1 -1
- package/lib/plugins/level-selector/LevelSelector.js +20 -19
- package/lib/plugins/media-control/MediaControl.d.ts +6 -2
- package/lib/plugins/media-control/MediaControl.d.ts.map +1 -1
- package/lib/plugins/media-control/MediaControl.js +40 -39
- package/lib/plugins/source-controller/SourceController.d.ts +9 -0
- package/lib/plugins/source-controller/SourceController.d.ts.map +1 -1
- package/lib/plugins/source-controller/SourceController.js +11 -1
- package/lib/plugins/spinner-three-bounce/SpinnerThreeBounce.d.ts +35 -1
- package/lib/plugins/spinner-three-bounce/SpinnerThreeBounce.d.ts.map +1 -1
- package/lib/plugins/spinner-three-bounce/SpinnerThreeBounce.js +46 -23
- package/lib/plugins/subtitles/Subtitles.d.ts +65 -16
- package/lib/plugins/subtitles/Subtitles.d.ts.map +1 -1
- package/lib/plugins/subtitles/Subtitles.js +131 -109
- package/package.json +1 -1
- package/src/plugins/bottom-gear/BottomGear.ts +26 -4
- package/src/plugins/clappr-nerd-stats/ClapprNerdStats.ts +4 -4
- package/src/plugins/level-selector/LevelSelector.ts +22 -19
- package/src/plugins/media-control/MediaControl.ts +43 -41
- package/src/plugins/source-controller/SourceController.ts +11 -1
- package/src/plugins/source-controller/__tests__/SourceController.test.ts +1 -1
- package/src/plugins/spinner-three-bounce/SpinnerThreeBounce.ts +46 -22
- package/src/plugins/subtitles/Subtitles.ts +146 -155
- package/temp/player.api.json +293 -822
- package/tsconfig.tsbuildinfo +1 -1
- package/docs/api/player.sourcecontroller.version.md +0 -14
- package/docs/api/player.spinnerthreebounce.attributes.md +0 -14
- package/docs/api/player.spinnerthreebounce.name.md +0 -11
- package/docs/api/player.spinnerthreebounce.render.md +0 -15
- package/docs/api/player.spinnerthreebounce.supportedversion.md +0 -13
- package/docs/api/player.subtitles.attributes.md +0 -14
- package/docs/api/player.subtitles.bindevents.md +0 -15
- package/docs/api/player.subtitles.buttonelement.md +0 -15
- package/docs/api/player.subtitles.events.md +0 -14
- package/docs/api/player.subtitles.name.md +0 -11
- package/docs/api/player.subtitles.preselectedlanguage.md +0 -11
- package/docs/api/player.subtitles.reload.md +0 -15
- package/docs/api/player.subtitles.render.md +0 -15
- package/docs/api/player.subtitles.selectsubtitles.md +0 -15
- package/docs/api/player.subtitles.startlevelswitch.md +0 -15
- package/docs/api/player.subtitles.stoplevelswitch.md +0 -15
- package/docs/api/player.subtitles.supportedversion.md +0 -13
- package/docs/api/player.subtitles.template.md +0 -11
- package/docs/api/player.subtitles.templatestring.md +0 -11
- package/docs/api/player.subtitles.unbindevents.md +0 -15
- package/docs/api/player.subtitles.version.md +0 -11
package/dist/plugins/index.js
CHANGED
|
@@ -3180,7 +3180,7 @@ var triggerEvents = function triggerEvents(events, args, klass, name) {
|
|
|
3180
3180
|
* @constructor
|
|
3181
3181
|
* @module base
|
|
3182
3182
|
*/
|
|
3183
|
-
var Events$
|
|
3183
|
+
var Events$1 = /*#__PURE__*/function () {
|
|
3184
3184
|
function Events() {
|
|
3185
3185
|
_classCallCheck(this, Events);
|
|
3186
3186
|
}
|
|
@@ -3328,7 +3328,7 @@ var Events$2 = /*#__PURE__*/function () {
|
|
|
3328
3328
|
}
|
|
3329
3329
|
}]);
|
|
3330
3330
|
}();
|
|
3331
|
-
Events$
|
|
3331
|
+
Events$1.prototype.listenTo = function (obj, name, callback) {
|
|
3332
3332
|
var listeningTo = this._listeningTo || (this._listeningTo = {});
|
|
3333
3333
|
var id = obj._listenId || (obj._listenId = uniqueId('l'));
|
|
3334
3334
|
listeningTo[id] = obj;
|
|
@@ -3349,7 +3349,7 @@ Events$2.prototype.listenTo = function (obj, name, callback) {
|
|
|
3349
3349
|
* this.listenToOnce(this.core.playback, Events.PLAYBACK_PAUSE, this.callback)
|
|
3350
3350
|
* ```
|
|
3351
3351
|
*/
|
|
3352
|
-
Events$
|
|
3352
|
+
Events$1.prototype.listenToOnce = function (obj, name, callback) {
|
|
3353
3353
|
var listeningTo = this._listeningTo || (this._listeningTo = {});
|
|
3354
3354
|
var id = obj._listenId || (obj._listenId = uniqueId('l'));
|
|
3355
3355
|
listeningTo[id] = obj;
|
|
@@ -3364,59 +3364,59 @@ Events$2.prototype.listenToOnce = function (obj, name, callback) {
|
|
|
3364
3364
|
*
|
|
3365
3365
|
* @event PLAYER_READY
|
|
3366
3366
|
*/
|
|
3367
|
-
Events$
|
|
3367
|
+
Events$1.PLAYER_READY = 'ready';
|
|
3368
3368
|
/**
|
|
3369
3369
|
* Fired when player resizes
|
|
3370
3370
|
*
|
|
3371
3371
|
* @event PLAYER_RESIZE
|
|
3372
3372
|
* @param {Object} currentSize an object with the current size
|
|
3373
3373
|
*/
|
|
3374
|
-
Events$
|
|
3374
|
+
Events$1.PLAYER_RESIZE = 'resize';
|
|
3375
3375
|
/**
|
|
3376
3376
|
* Fired when player changes its fullscreen state
|
|
3377
3377
|
*
|
|
3378
3378
|
* @event PLAYER_FULLSCREEN
|
|
3379
3379
|
* @param {Boolean} whether or not the player is on fullscreen mode
|
|
3380
3380
|
*/
|
|
3381
|
-
Events$
|
|
3381
|
+
Events$1.PLAYER_FULLSCREEN = 'fullscreen';
|
|
3382
3382
|
/**
|
|
3383
3383
|
* Fired when player starts to play
|
|
3384
3384
|
*
|
|
3385
3385
|
* @event PLAYER_PLAY
|
|
3386
3386
|
*/
|
|
3387
|
-
Events$
|
|
3387
|
+
Events$1.PLAYER_PLAY = 'play';
|
|
3388
3388
|
/**
|
|
3389
3389
|
* Fired when player pauses
|
|
3390
3390
|
*
|
|
3391
3391
|
* @event PLAYER_PAUSE
|
|
3392
3392
|
*/
|
|
3393
|
-
Events$
|
|
3393
|
+
Events$1.PLAYER_PAUSE = 'pause';
|
|
3394
3394
|
/**
|
|
3395
3395
|
* Fired when player stops
|
|
3396
3396
|
*
|
|
3397
3397
|
* @event PLAYER_STOP
|
|
3398
3398
|
*/
|
|
3399
|
-
Events$
|
|
3399
|
+
Events$1.PLAYER_STOP = 'stop';
|
|
3400
3400
|
/**
|
|
3401
3401
|
* Fired when player ends the video
|
|
3402
3402
|
*
|
|
3403
3403
|
* @event PLAYER_ENDED
|
|
3404
3404
|
*/
|
|
3405
|
-
Events$
|
|
3405
|
+
Events$1.PLAYER_ENDED = 'ended';
|
|
3406
3406
|
/**
|
|
3407
3407
|
* Fired when player seeks the video
|
|
3408
3408
|
*
|
|
3409
3409
|
* @event PLAYER_SEEK
|
|
3410
3410
|
* @param {Number} time the current time in seconds
|
|
3411
3411
|
*/
|
|
3412
|
-
Events$
|
|
3412
|
+
Events$1.PLAYER_SEEK = 'seek';
|
|
3413
3413
|
/**
|
|
3414
3414
|
* Fired when player receives an error
|
|
3415
3415
|
*
|
|
3416
3416
|
* @event PLAYER_ERROR
|
|
3417
3417
|
* @param {Object} error the error
|
|
3418
3418
|
*/
|
|
3419
|
-
Events$
|
|
3419
|
+
Events$1.PLAYER_ERROR = 'playererror';
|
|
3420
3420
|
/**
|
|
3421
3421
|
* Fired when there is an error
|
|
3422
3422
|
*
|
|
@@ -3436,7 +3436,7 @@ Events$2.PLAYER_ERROR = 'playererror';
|
|
|
3436
3436
|
* @param {String} [options.raw]
|
|
3437
3437
|
* raw error: the initial error received
|
|
3438
3438
|
*/
|
|
3439
|
-
Events$
|
|
3439
|
+
Events$1.ERROR = 'error';
|
|
3440
3440
|
/**
|
|
3441
3441
|
* Fired when the time is updated on player
|
|
3442
3442
|
*
|
|
@@ -3448,33 +3448,33 @@ Events$2.ERROR = 'error';
|
|
|
3448
3448
|
* @param {Number} [progress.total]
|
|
3449
3449
|
* total time (in seconds)
|
|
3450
3450
|
*/
|
|
3451
|
-
Events$
|
|
3451
|
+
Events$1.PLAYER_TIMEUPDATE = 'timeupdate';
|
|
3452
3452
|
/**
|
|
3453
3453
|
* Fired when player updates its volume
|
|
3454
3454
|
*
|
|
3455
3455
|
* @event PLAYER_VOLUMEUPDATE
|
|
3456
3456
|
* @param {Number} volume the current volume
|
|
3457
3457
|
*/
|
|
3458
|
-
Events$
|
|
3458
|
+
Events$1.PLAYER_VOLUMEUPDATE = 'volumeupdate';
|
|
3459
3459
|
|
|
3460
3460
|
/**
|
|
3461
3461
|
* Fired when subtitle is available
|
|
3462
3462
|
*
|
|
3463
3463
|
* @event PLAYER_SUBTITLE_AVAILABLE
|
|
3464
3464
|
*/
|
|
3465
|
-
Events$
|
|
3465
|
+
Events$1.PLAYER_SUBTITLE_AVAILABLE = 'subtitleavailable';
|
|
3466
3466
|
|
|
3467
3467
|
// Playback Events
|
|
3468
3468
|
/** Fired when picture-in-picture mode is entered
|
|
3469
3469
|
*
|
|
3470
3470
|
* @event PLAYBACK_PIP_ENTER
|
|
3471
3471
|
*/
|
|
3472
|
-
Events$
|
|
3472
|
+
Events$1.PLAYBACK_PIP_ENTER = 'playback:picture-in-picture:enter';
|
|
3473
3473
|
/** Fired when picture-in-picture mode is exited
|
|
3474
3474
|
*
|
|
3475
3475
|
* @event PLAYBACK_PIP_EXIT
|
|
3476
3476
|
*/
|
|
3477
|
-
Events$
|
|
3477
|
+
Events$1.PLAYBACK_PIP_EXIT = 'playback:picture-in-picture:exit';
|
|
3478
3478
|
/**
|
|
3479
3479
|
* Fired when the playback is downloading the media
|
|
3480
3480
|
*
|
|
@@ -3490,7 +3490,7 @@ Events$2.PLAYBACK_PIP_EXIT = 'playback:picture-in-picture:exit';
|
|
|
3490
3490
|
* @param buffered {Array}
|
|
3491
3491
|
* array of buffered segments ({start, end}). [Only for supported playbacks]
|
|
3492
3492
|
*/
|
|
3493
|
-
Events$
|
|
3493
|
+
Events$1.PLAYBACK_PROGRESS = 'playback:progress';
|
|
3494
3494
|
/**
|
|
3495
3495
|
* Fired when the time is updated on playback
|
|
3496
3496
|
*
|
|
@@ -3502,13 +3502,13 @@ Events$2.PLAYBACK_PROGRESS = 'playback:progress';
|
|
|
3502
3502
|
* @param {Number} [progress.total]
|
|
3503
3503
|
* total time (in seconds)
|
|
3504
3504
|
*/
|
|
3505
|
-
Events$
|
|
3505
|
+
Events$1.PLAYBACK_TIMEUPDATE = 'playback:timeupdate';
|
|
3506
3506
|
/**
|
|
3507
3507
|
* Fired when playback is ready
|
|
3508
3508
|
*
|
|
3509
3509
|
* @event PLAYBACK_READY
|
|
3510
3510
|
*/
|
|
3511
|
-
Events$
|
|
3511
|
+
Events$1.PLAYBACK_READY = 'playback:ready';
|
|
3512
3512
|
/**
|
|
3513
3513
|
* Fired when the playback starts having to buffer because
|
|
3514
3514
|
* playback can currently not be smooth.
|
|
@@ -3518,7 +3518,7 @@ Events$2.PLAYBACK_READY = 'playback:ready';
|
|
|
3518
3518
|
*
|
|
3519
3519
|
* @event PLAYBACK_BUFFERING
|
|
3520
3520
|
*/
|
|
3521
|
-
Events$
|
|
3521
|
+
Events$1.PLAYBACK_BUFFERING = 'playback:buffering';
|
|
3522
3522
|
/**
|
|
3523
3523
|
* Fired when the playback has enough in the buffer to be
|
|
3524
3524
|
* able to play smoothly, after previously being unable to
|
|
@@ -3529,13 +3529,13 @@ Events$2.PLAYBACK_BUFFERING = 'playback:buffering';
|
|
|
3529
3529
|
*
|
|
3530
3530
|
* @event PLAYBACK_BUFFERFULL
|
|
3531
3531
|
*/
|
|
3532
|
-
Events$
|
|
3532
|
+
Events$1.PLAYBACK_BUFFERFULL = 'playback:bufferfull';
|
|
3533
3533
|
/**
|
|
3534
3534
|
* Fired when playback changes any settings (volume, seek and etc)
|
|
3535
3535
|
*
|
|
3536
3536
|
* @event PLAYBACK_SETTINGSUPDATE
|
|
3537
3537
|
*/
|
|
3538
|
-
Events$
|
|
3538
|
+
Events$1.PLAYBACK_SETTINGSUPDATE = 'playback:settingsupdate';
|
|
3539
3539
|
/**
|
|
3540
3540
|
* Fired when playback loaded its metadata
|
|
3541
3541
|
*
|
|
@@ -3547,7 +3547,7 @@ Events$2.PLAYBACK_SETTINGSUPDATE = 'playback:settingsupdate';
|
|
|
3547
3547
|
* @param {Object} [metadata.data]
|
|
3548
3548
|
* extra meta data
|
|
3549
3549
|
*/
|
|
3550
|
-
Events$
|
|
3550
|
+
Events$1.PLAYBACK_LOADEDMETADATA = 'playback:loadedmetadata';
|
|
3551
3551
|
/**
|
|
3552
3552
|
* Fired when playback updates its video quality
|
|
3553
3553
|
*
|
|
@@ -3555,7 +3555,7 @@ Events$2.PLAYBACK_LOADEDMETADATA = 'playback:loadedmetadata';
|
|
|
3555
3555
|
* @param {Boolean} isHD
|
|
3556
3556
|
* true when is on HD, false otherwise
|
|
3557
3557
|
*/
|
|
3558
|
-
Events$
|
|
3558
|
+
Events$1.PLAYBACK_HIGHDEFINITIONUPDATE = 'playback:highdefinitionupdate';
|
|
3559
3559
|
/**
|
|
3560
3560
|
* Fired when playback updates its bitrate
|
|
3561
3561
|
*
|
|
@@ -3571,7 +3571,7 @@ Events$2.PLAYBACK_HIGHDEFINITIONUPDATE = 'playback:highdefinitionupdate';
|
|
|
3571
3571
|
* @param {Number} [bitrate.level]
|
|
3572
3572
|
* playback level when it's available, it could be just a map for width (0 => 240, 1 => 480, 2 => 720)
|
|
3573
3573
|
*/
|
|
3574
|
-
Events$
|
|
3574
|
+
Events$1.PLAYBACK_BITRATE = 'playback:bitrate';
|
|
3575
3575
|
/**
|
|
3576
3576
|
* Fired when the playback has its levels
|
|
3577
3577
|
*
|
|
@@ -3581,21 +3581,21 @@ Events$2.PLAYBACK_BITRATE = 'playback:bitrate';
|
|
|
3581
3581
|
* @param {Number} initial
|
|
3582
3582
|
* the initial level otherwise -1 (AUTO)
|
|
3583
3583
|
*/
|
|
3584
|
-
Events$
|
|
3584
|
+
Events$1.PLAYBACK_LEVELS_AVAILABLE = 'playback:levels:available';
|
|
3585
3585
|
/**
|
|
3586
3586
|
* Fired when the playback starts to switch level
|
|
3587
3587
|
*
|
|
3588
3588
|
* @event PLAYBACK_LEVEL_SWITCH_START
|
|
3589
3589
|
*
|
|
3590
3590
|
*/
|
|
3591
|
-
Events$
|
|
3591
|
+
Events$1.PLAYBACK_LEVEL_SWITCH_START = 'playback:levels:switch:start';
|
|
3592
3592
|
/**
|
|
3593
3593
|
* Fired when the playback ends the level switch
|
|
3594
3594
|
*
|
|
3595
3595
|
* @event PLAYBACK_LEVEL_SWITCH_END
|
|
3596
3596
|
*
|
|
3597
3597
|
*/
|
|
3598
|
-
Events$
|
|
3598
|
+
Events$1.PLAYBACK_LEVEL_SWITCH_END = 'playback:levels:switch:end';
|
|
3599
3599
|
|
|
3600
3600
|
/**
|
|
3601
3601
|
* Fired when playback internal state changes
|
|
@@ -3606,31 +3606,31 @@ Events$2.PLAYBACK_LEVEL_SWITCH_END = 'playback:levels:switch:end';
|
|
|
3606
3606
|
* @param {String} [state.type]
|
|
3607
3607
|
* the playback type
|
|
3608
3608
|
*/
|
|
3609
|
-
Events$
|
|
3609
|
+
Events$1.PLAYBACK_PLAYBACKSTATE = 'playback:playbackstate';
|
|
3610
3610
|
/**
|
|
3611
3611
|
* Fired when DVR becomes enabled/disabled.
|
|
3612
3612
|
*
|
|
3613
3613
|
* @event PLAYBACK_DVR
|
|
3614
3614
|
* @param {boolean} state true if dvr enabled
|
|
3615
3615
|
*/
|
|
3616
|
-
Events$
|
|
3616
|
+
Events$1.PLAYBACK_DVR = 'playback:dvr';
|
|
3617
3617
|
// TODO doc
|
|
3618
|
-
Events$
|
|
3618
|
+
Events$1.PLAYBACK_MEDIACONTROL_DISABLE = 'playback:mediacontrol:disable';
|
|
3619
3619
|
// TODO doc
|
|
3620
|
-
Events$
|
|
3620
|
+
Events$1.PLAYBACK_MEDIACONTROL_ENABLE = 'playback:mediacontrol:enable';
|
|
3621
3621
|
/**
|
|
3622
3622
|
* Fired when the media for a playback ends.
|
|
3623
3623
|
*
|
|
3624
3624
|
* @event PLAYBACK_ENDED
|
|
3625
3625
|
* @param {String} name the name of the playback
|
|
3626
3626
|
*/
|
|
3627
|
-
Events$
|
|
3627
|
+
Events$1.PLAYBACK_ENDED = 'playback:ended';
|
|
3628
3628
|
/**
|
|
3629
3629
|
* Fired when user requests `play()`
|
|
3630
3630
|
*
|
|
3631
3631
|
* @event PLAYBACK_PLAY_INTENT
|
|
3632
3632
|
*/
|
|
3633
|
-
Events$
|
|
3633
|
+
Events$1.PLAYBACK_PLAY_INTENT = 'playback:play:intent';
|
|
3634
3634
|
/**
|
|
3635
3635
|
* Fired when the media for a playback starts playing.
|
|
3636
3636
|
* This is not necessarily when the user requests `play()`
|
|
@@ -3640,31 +3640,31 @@ Events$2.PLAYBACK_PLAY_INTENT = 'playback:play:intent';
|
|
|
3640
3640
|
*
|
|
3641
3641
|
* @event PLAYBACK_PLAY
|
|
3642
3642
|
*/
|
|
3643
|
-
Events$
|
|
3643
|
+
Events$1.PLAYBACK_PLAY = 'playback:play';
|
|
3644
3644
|
/**
|
|
3645
3645
|
* Fired when the media for a playback pauses.
|
|
3646
3646
|
*
|
|
3647
3647
|
* @event PLAYBACK_PAUSE
|
|
3648
3648
|
*/
|
|
3649
|
-
Events$
|
|
3649
|
+
Events$1.PLAYBACK_PAUSE = 'playback:pause';
|
|
3650
3650
|
/**
|
|
3651
3651
|
* Fired when the media for a playback is seeking.
|
|
3652
3652
|
*
|
|
3653
3653
|
* @event PLAYBACK_SEEK
|
|
3654
3654
|
*/
|
|
3655
|
-
Events$
|
|
3655
|
+
Events$1.PLAYBACK_SEEK = 'playback:seek';
|
|
3656
3656
|
/**
|
|
3657
3657
|
* Fired when the media for a playback is seeked.
|
|
3658
3658
|
*
|
|
3659
3659
|
* @event PLAYBACK_SEEKED
|
|
3660
3660
|
*/
|
|
3661
|
-
Events$
|
|
3661
|
+
Events$1.PLAYBACK_SEEKED = 'playback:seeked';
|
|
3662
3662
|
/**
|
|
3663
3663
|
* Fired when the media for a playback is stopped.
|
|
3664
3664
|
*
|
|
3665
3665
|
* @event PLAYBACK_STOP
|
|
3666
3666
|
*/
|
|
3667
|
-
Events$
|
|
3667
|
+
Events$1.PLAYBACK_STOP = 'playback:stop';
|
|
3668
3668
|
/**
|
|
3669
3669
|
* Fired if an error occurs in the playback.
|
|
3670
3670
|
*
|
|
@@ -3672,11 +3672,11 @@ Events$2.PLAYBACK_STOP = 'playback:stop';
|
|
|
3672
3672
|
* @param {Object} error An object containing the error details
|
|
3673
3673
|
* @param {String} name Playback name
|
|
3674
3674
|
*/
|
|
3675
|
-
Events$
|
|
3675
|
+
Events$1.PLAYBACK_ERROR = 'playback:error';
|
|
3676
3676
|
// TODO doc
|
|
3677
|
-
Events$
|
|
3677
|
+
Events$1.PLAYBACK_STATS_ADD = 'playback:stats:add';
|
|
3678
3678
|
// TODO doc
|
|
3679
|
-
Events$
|
|
3679
|
+
Events$1.PLAYBACK_FRAGMENT_LOADED = 'playback:fragment:loaded';
|
|
3680
3680
|
/**
|
|
3681
3681
|
* Fired when a fragment has been appended into buffer
|
|
3682
3682
|
*
|
|
@@ -3684,15 +3684,15 @@ Events$2.PLAYBACK_FRAGMENT_LOADED = 'playback:fragment:loaded';
|
|
|
3684
3684
|
* @param {Object} data Data
|
|
3685
3685
|
*
|
|
3686
3686
|
*/
|
|
3687
|
-
Events$
|
|
3687
|
+
Events$1.PLAYBACK_FRAGMENT_BUFFERED = 'playback:fragment:buffered';
|
|
3688
3688
|
// TODO doc
|
|
3689
|
-
Events$
|
|
3689
|
+
Events$1.PLAYBACK_LEVEL_SWITCH = 'playback:level:switch';
|
|
3690
3690
|
/**
|
|
3691
3691
|
* Fired when subtitle is available on playback for display
|
|
3692
3692
|
*
|
|
3693
3693
|
* @event PLAYBACK_SUBTITLE_AVAILABLE
|
|
3694
3694
|
*/
|
|
3695
|
-
Events$
|
|
3695
|
+
Events$1.PLAYBACK_SUBTITLE_AVAILABLE = 'playback:subtitle:available';
|
|
3696
3696
|
/**
|
|
3697
3697
|
* Fired when playback subtitle track has changed
|
|
3698
3698
|
*
|
|
@@ -3702,28 +3702,28 @@ Events$2.PLAYBACK_SUBTITLE_AVAILABLE = 'playback:subtitle:available';
|
|
|
3702
3702
|
* @param {Number} [track.id]
|
|
3703
3703
|
* selected track id
|
|
3704
3704
|
*/
|
|
3705
|
-
Events$
|
|
3705
|
+
Events$1.PLAYBACK_SUBTITLE_CHANGED = 'playback:subtitle:changed';
|
|
3706
3706
|
|
|
3707
3707
|
/**
|
|
3708
3708
|
* Fired when audio tracks are available to be used on the playback
|
|
3709
3709
|
* @event PLAYBACK_AUDIO_AVAILABLE
|
|
3710
3710
|
* @param {import('../playback/playback').AudioTrack[]} tracks - list of available audio tracks
|
|
3711
3711
|
*/
|
|
3712
|
-
Events$
|
|
3712
|
+
Events$1.PLAYBACK_AUDIO_AVAILABLE = 'playback:audio:available';
|
|
3713
3713
|
|
|
3714
3714
|
/**
|
|
3715
3715
|
* Fired whenever the current audio track has changed
|
|
3716
3716
|
* @event PLAYBACK_AUDIO_CHANGED
|
|
3717
3717
|
* @param {import('../playback/playback').AudioTrack} track - audio track active after change
|
|
3718
3718
|
*/
|
|
3719
|
-
Events$
|
|
3719
|
+
Events$1.PLAYBACK_AUDIO_CHANGED = 'playback:audio:changed';
|
|
3720
3720
|
|
|
3721
3721
|
/**
|
|
3722
3722
|
* Fired when the playback was resized.
|
|
3723
3723
|
*
|
|
3724
3724
|
* @event PLAYBACK_RESIZE
|
|
3725
3725
|
*/
|
|
3726
|
-
Events$
|
|
3726
|
+
Events$1.PLAYBACK_RESIZE = 'playback:resize';
|
|
3727
3727
|
|
|
3728
3728
|
// Core Events
|
|
3729
3729
|
/**
|
|
@@ -3731,40 +3731,40 @@ Events$2.PLAYBACK_RESIZE = 'playback:resize';
|
|
|
3731
3731
|
*
|
|
3732
3732
|
* @event CORE_CONTAINERS_CREATED
|
|
3733
3733
|
*/
|
|
3734
|
-
Events$
|
|
3734
|
+
Events$1.CORE_CONTAINERS_CREATED = 'core:containers:created';
|
|
3735
3735
|
/**
|
|
3736
3736
|
* Fired when the active container changed
|
|
3737
3737
|
*
|
|
3738
3738
|
* @event CORE_ACTIVE_CONTAINER_CHANGED
|
|
3739
3739
|
*/
|
|
3740
|
-
Events$
|
|
3740
|
+
Events$1.CORE_ACTIVE_CONTAINER_CHANGED = 'core:active:container:changed';
|
|
3741
3741
|
/**
|
|
3742
3742
|
* Fired when the options were changed for the core
|
|
3743
3743
|
*
|
|
3744
3744
|
* @event CORE_OPTIONS_CHANGE
|
|
3745
3745
|
* @param {Object} new options provided to configure() method
|
|
3746
3746
|
*/
|
|
3747
|
-
Events$
|
|
3747
|
+
Events$1.CORE_OPTIONS_CHANGE = 'core:options:change';
|
|
3748
3748
|
/**
|
|
3749
3749
|
* Fired after creating containers, when the core is ready
|
|
3750
3750
|
*
|
|
3751
3751
|
* @event CORE_READY
|
|
3752
3752
|
*/
|
|
3753
|
-
Events$
|
|
3753
|
+
Events$1.CORE_READY = 'core:ready';
|
|
3754
3754
|
/**
|
|
3755
3755
|
* Fired when the fullscreen state change
|
|
3756
3756
|
*
|
|
3757
3757
|
* @event CORE_FULLSCREEN
|
|
3758
3758
|
* @param {Boolean} whether or not the player is on fullscreen mode
|
|
3759
3759
|
*/
|
|
3760
|
-
Events$
|
|
3760
|
+
Events$1.CORE_FULLSCREEN = 'core:fullscreen';
|
|
3761
3761
|
/**
|
|
3762
3762
|
* Fired when core updates size
|
|
3763
3763
|
*
|
|
3764
3764
|
* @event CORE_RESIZE
|
|
3765
3765
|
* @param {Object} currentSize an object with the current size
|
|
3766
3766
|
*/
|
|
3767
|
-
Events$
|
|
3767
|
+
Events$1.CORE_RESIZE = 'core:resize';
|
|
3768
3768
|
/**
|
|
3769
3769
|
* Fired when the screen orientation has changed.
|
|
3770
3770
|
* This event is trigger only for mobile devices.
|
|
@@ -3777,21 +3777,21 @@ Events$2.CORE_RESIZE = 'core:resize';
|
|
|
3777
3777
|
* @param {String} [screen.orientation]
|
|
3778
3778
|
* screen orientation (ie: 'landscape' or 'portrait')
|
|
3779
3779
|
*/
|
|
3780
|
-
Events$
|
|
3780
|
+
Events$1.CORE_SCREEN_ORIENTATION_CHANGED = 'core:screen:orientation:changed';
|
|
3781
3781
|
/**
|
|
3782
3782
|
* Fired when occurs mouse move event on core element
|
|
3783
3783
|
*
|
|
3784
3784
|
* @event CORE_MOUSE_MOVE
|
|
3785
3785
|
* @param {Object} event a DOM event
|
|
3786
3786
|
*/
|
|
3787
|
-
Events$
|
|
3787
|
+
Events$1.CORE_MOUSE_MOVE = 'core:mousemove';
|
|
3788
3788
|
/**
|
|
3789
3789
|
* Fired when occurs mouse leave event on core element
|
|
3790
3790
|
*
|
|
3791
3791
|
* @event CORE_MOUSE_LEAVE
|
|
3792
3792
|
* @param {Object} event a DOM event
|
|
3793
3793
|
*/
|
|
3794
|
-
Events$
|
|
3794
|
+
Events$1.CORE_MOUSE_LEAVE = 'core:mouseleave';
|
|
3795
3795
|
|
|
3796
3796
|
// Container Events
|
|
3797
3797
|
/**
|
|
@@ -3803,8 +3803,8 @@ Events$2.CORE_MOUSE_LEAVE = 'core:mouseleave';
|
|
|
3803
3803
|
* @param {String} [state.type]
|
|
3804
3804
|
* the playback type
|
|
3805
3805
|
*/
|
|
3806
|
-
Events$
|
|
3807
|
-
Events$
|
|
3806
|
+
Events$1.CONTAINER_PLAYBACKSTATE = 'container:playbackstate';
|
|
3807
|
+
Events$1.CONTAINER_PLAYBACKDVRSTATECHANGED = 'container:dvr';
|
|
3808
3808
|
/**
|
|
3809
3809
|
* Fired when the container updates its bitrate
|
|
3810
3810
|
*
|
|
@@ -3820,15 +3820,15 @@ Events$2.CONTAINER_PLAYBACKDVRSTATECHANGED = 'container:dvr';
|
|
|
3820
3820
|
* @param {Number} [bitrate.level]
|
|
3821
3821
|
* playback level when it's available, it could be just a map for width (0 => 240, 1 => 480, 2 => 720)
|
|
3822
3822
|
*/
|
|
3823
|
-
Events$
|
|
3824
|
-
Events$
|
|
3825
|
-
Events$
|
|
3823
|
+
Events$1.CONTAINER_BITRATE = 'container:bitrate';
|
|
3824
|
+
Events$1.CONTAINER_STATS_REPORT = 'container:stats:report';
|
|
3825
|
+
Events$1.CONTAINER_DESTROYED = 'container:destroyed';
|
|
3826
3826
|
/**
|
|
3827
3827
|
* Fired when the container is ready
|
|
3828
3828
|
*
|
|
3829
3829
|
* @event CONTAINER_READY
|
|
3830
3830
|
*/
|
|
3831
|
-
Events$
|
|
3831
|
+
Events$1.CONTAINER_READY = 'container:ready';
|
|
3832
3832
|
|
|
3833
3833
|
/**
|
|
3834
3834
|
* Fired when the container was resized.
|
|
@@ -3837,8 +3837,8 @@ Events$2.CONTAINER_READY = 'container:ready';
|
|
|
3837
3837
|
*
|
|
3838
3838
|
* @event CONTAINER_RESIZE
|
|
3839
3839
|
*/
|
|
3840
|
-
Events$
|
|
3841
|
-
Events$
|
|
3840
|
+
Events$1.CONTAINER_RESIZE = 'container:resize';
|
|
3841
|
+
Events$1.CONTAINER_ERROR = 'container:error';
|
|
3842
3842
|
/**
|
|
3843
3843
|
* Fired when the container loaded its metadata
|
|
3844
3844
|
*
|
|
@@ -3850,14 +3850,14 @@ Events$2.CONTAINER_ERROR = 'container:error';
|
|
|
3850
3850
|
* @param {Object} [metadata.data]
|
|
3851
3851
|
* extra meta data
|
|
3852
3852
|
*/
|
|
3853
|
-
Events$
|
|
3853
|
+
Events$1.CONTAINER_LOADEDMETADATA = 'container:loadedmetadata';
|
|
3854
3854
|
|
|
3855
3855
|
/**
|
|
3856
3856
|
* Fired when subtitle is available on container for display
|
|
3857
3857
|
*
|
|
3858
3858
|
* @event CONTAINER_SUBTITLE_AVAILABLE
|
|
3859
3859
|
*/
|
|
3860
|
-
Events$
|
|
3860
|
+
Events$1.CONTAINER_SUBTITLE_AVAILABLE = 'container:subtitle:available';
|
|
3861
3861
|
/**
|
|
3862
3862
|
* Fired when subtitle track has changed
|
|
3863
3863
|
*
|
|
@@ -3867,21 +3867,21 @@ Events$2.CONTAINER_SUBTITLE_AVAILABLE = 'container:subtitle:available';
|
|
|
3867
3867
|
* @param {Number} [track.id]
|
|
3868
3868
|
* selected track id
|
|
3869
3869
|
*/
|
|
3870
|
-
Events$
|
|
3870
|
+
Events$1.CONTAINER_SUBTITLE_CHANGED = 'container:subtitle:changed';
|
|
3871
3871
|
|
|
3872
3872
|
/**
|
|
3873
3873
|
* Fired when audio tracks are available to be used on the container
|
|
3874
3874
|
* @event CONTAINER_AUDIO_AVAILABLE
|
|
3875
3875
|
* @param {import('../playback/playback').AudioTrack[]} tracks - list of available audio tracks
|
|
3876
3876
|
*/
|
|
3877
|
-
Events$
|
|
3877
|
+
Events$1.CONTAINER_AUDIO_AVAILABLE = 'container:audio:available';
|
|
3878
3878
|
|
|
3879
3879
|
/**
|
|
3880
3880
|
* Fired whenever the current audio track has changed
|
|
3881
3881
|
* @event CONTAINER_AUDIO_CHANGED
|
|
3882
3882
|
* @param {import('../playback/playback').AudioTrack} track - audio track active after change
|
|
3883
3883
|
*/
|
|
3884
|
-
Events$
|
|
3884
|
+
Events$1.CONTAINER_AUDIO_CHANGED = 'container:audio:changed';
|
|
3885
3885
|
|
|
3886
3886
|
/**
|
|
3887
3887
|
* Fired when the time is updated on container
|
|
@@ -3894,7 +3894,7 @@ Events$2.CONTAINER_AUDIO_CHANGED = 'container:audio:changed';
|
|
|
3894
3894
|
* @param {Number} [progress.total]
|
|
3895
3895
|
* total time (in seconds)
|
|
3896
3896
|
*/
|
|
3897
|
-
Events$
|
|
3897
|
+
Events$1.CONTAINER_TIMEUPDATE = 'container:timeupdate';
|
|
3898
3898
|
/**
|
|
3899
3899
|
* Fired when the container is downloading the media
|
|
3900
3900
|
*
|
|
@@ -3908,29 +3908,29 @@ Events$2.CONTAINER_TIMEUPDATE = 'container:timeupdate';
|
|
|
3908
3908
|
* @param {Number} [progress.total]
|
|
3909
3909
|
* total content to be downloaded
|
|
3910
3910
|
*/
|
|
3911
|
-
Events$
|
|
3912
|
-
Events$
|
|
3913
|
-
Events$
|
|
3914
|
-
Events$
|
|
3915
|
-
Events$
|
|
3916
|
-
Events$
|
|
3917
|
-
Events$
|
|
3918
|
-
Events$
|
|
3919
|
-
Events$
|
|
3920
|
-
Events$
|
|
3921
|
-
Events$
|
|
3922
|
-
Events$
|
|
3911
|
+
Events$1.CONTAINER_PROGRESS = 'container:progress';
|
|
3912
|
+
Events$1.CONTAINER_PLAY = 'container:play';
|
|
3913
|
+
Events$1.CONTAINER_STOP = 'container:stop';
|
|
3914
|
+
Events$1.CONTAINER_PAUSE = 'container:pause';
|
|
3915
|
+
Events$1.CONTAINER_ENDED = 'container:ended';
|
|
3916
|
+
Events$1.CONTAINER_CLICK = 'container:click';
|
|
3917
|
+
Events$1.CONTAINER_DBLCLICK = 'container:dblclick';
|
|
3918
|
+
Events$1.CONTAINER_CONTEXTMENU = 'container:contextmenu';
|
|
3919
|
+
Events$1.CONTAINER_MOUSE_ENTER = 'container:mouseenter';
|
|
3920
|
+
Events$1.CONTAINER_MOUSE_LEAVE = 'container:mouseleave';
|
|
3921
|
+
Events$1.CONTAINER_MOUSE_UP = 'container:mouseup';
|
|
3922
|
+
Events$1.CONTAINER_MOUSE_DOWN = 'container:mousedown';
|
|
3923
3923
|
|
|
3924
3924
|
/**
|
|
3925
3925
|
* Fired when the container enters on Picture-in-Picture mode
|
|
3926
3926
|
* @event CONTAINER_PIP_ENTER
|
|
3927
3927
|
*/
|
|
3928
|
-
Events$
|
|
3928
|
+
Events$1.CONTAINER_PIP_ENTER = 'container:picture-in-picture:enter';
|
|
3929
3929
|
/**
|
|
3930
3930
|
* Fired when the container exits from Picture-in-Picture mode
|
|
3931
3931
|
* @event CONTAINER_PIP_EXIT
|
|
3932
3932
|
*/
|
|
3933
|
-
Events$
|
|
3933
|
+
Events$1.CONTAINER_PIP_EXIT = 'container:picture-in-picture:exit';
|
|
3934
3934
|
|
|
3935
3935
|
/**
|
|
3936
3936
|
* Fired when the container seeks the video
|
|
@@ -3938,34 +3938,34 @@ Events$2.CONTAINER_PIP_EXIT = 'container:picture-in-picture:exit';
|
|
|
3938
3938
|
* @event CONTAINER_SEEK
|
|
3939
3939
|
* @param {Number} time the current time in seconds
|
|
3940
3940
|
*/
|
|
3941
|
-
Events$
|
|
3941
|
+
Events$1.CONTAINER_SEEK = 'container:seek';
|
|
3942
3942
|
/**
|
|
3943
3943
|
* Fired when the container was finished the seek video
|
|
3944
3944
|
*
|
|
3945
3945
|
* @event CONTAINER_SEEKED
|
|
3946
3946
|
* @param {Number} time the current time in seconds
|
|
3947
3947
|
*/
|
|
3948
|
-
Events$
|
|
3949
|
-
Events$
|
|
3950
|
-
Events$
|
|
3948
|
+
Events$1.CONTAINER_SEEKED = 'container:seeked';
|
|
3949
|
+
Events$1.CONTAINER_VOLUME = 'container:volume';
|
|
3950
|
+
Events$1.CONTAINER_FULLSCREEN = 'container:fullscreen';
|
|
3951
3951
|
/**
|
|
3952
3952
|
* Fired when container is buffering
|
|
3953
3953
|
*
|
|
3954
3954
|
* @event CONTAINER_STATE_BUFFERING
|
|
3955
3955
|
*/
|
|
3956
|
-
Events$
|
|
3956
|
+
Events$1.CONTAINER_STATE_BUFFERING = 'container:state:buffering';
|
|
3957
3957
|
/**
|
|
3958
3958
|
* Fired when the container filled the buffer
|
|
3959
3959
|
*
|
|
3960
3960
|
* @event CONTAINER_STATE_BUFFERFULL
|
|
3961
3961
|
*/
|
|
3962
|
-
Events$
|
|
3962
|
+
Events$1.CONTAINER_STATE_BUFFERFULL = 'container:state:bufferfull';
|
|
3963
3963
|
/**
|
|
3964
3964
|
* Fired when the container changes any settings (volume, seek and etc)
|
|
3965
3965
|
*
|
|
3966
3966
|
* @event CONTAINER_SETTINGSUPDATE
|
|
3967
3967
|
*/
|
|
3968
|
-
Events$
|
|
3968
|
+
Events$1.CONTAINER_SETTINGSUPDATE = 'container:settingsupdate';
|
|
3969
3969
|
/**
|
|
3970
3970
|
* Fired when container updates its video quality
|
|
3971
3971
|
*
|
|
@@ -3973,50 +3973,50 @@ Events$2.CONTAINER_SETTINGSUPDATE = 'container:settingsupdate';
|
|
|
3973
3973
|
* @param {Boolean} isHD
|
|
3974
3974
|
* true when is on HD, false otherwise
|
|
3975
3975
|
*/
|
|
3976
|
-
Events$
|
|
3976
|
+
Events$1.CONTAINER_HIGHDEFINITIONUPDATE = 'container:highdefinitionupdate';
|
|
3977
3977
|
|
|
3978
3978
|
/**
|
|
3979
3979
|
* Fired when the media control shows
|
|
3980
3980
|
*
|
|
3981
3981
|
* @event CONTAINER_MEDIACONTROL_SHOW
|
|
3982
3982
|
*/
|
|
3983
|
-
Events$
|
|
3983
|
+
Events$1.CONTAINER_MEDIACONTROL_SHOW = 'container:mediacontrol:show';
|
|
3984
3984
|
/**
|
|
3985
3985
|
* Fired when the media control hides
|
|
3986
3986
|
*
|
|
3987
3987
|
* @event CONTAINER_MEDIACONTROL_HIDE
|
|
3988
3988
|
*/
|
|
3989
|
-
Events$
|
|
3990
|
-
Events$
|
|
3991
|
-
Events$
|
|
3992
|
-
Events$
|
|
3989
|
+
Events$1.CONTAINER_MEDIACONTROL_HIDE = 'container:mediacontrol:hide';
|
|
3990
|
+
Events$1.CONTAINER_MEDIACONTROL_DISABLE = 'container:mediacontrol:disable';
|
|
3991
|
+
Events$1.CONTAINER_MEDIACONTROL_ENABLE = 'container:mediacontrol:enable';
|
|
3992
|
+
Events$1.CONTAINER_STATS_ADD = 'container:stats:add';
|
|
3993
3993
|
/**
|
|
3994
3994
|
* Fired when the options were changed for the container
|
|
3995
3995
|
*
|
|
3996
3996
|
* @event CONTAINER_OPTIONS_CHANGE
|
|
3997
3997
|
*/
|
|
3998
|
-
Events$
|
|
3998
|
+
Events$1.CONTAINER_OPTIONS_CHANGE = 'container:options:change';
|
|
3999
3999
|
|
|
4000
4000
|
// MediaControl Events
|
|
4001
|
-
Events$
|
|
4001
|
+
Events$1.MEDIACONTROL_RENDERED = 'mediacontrol:rendered';
|
|
4002
4002
|
/**
|
|
4003
4003
|
* Fired when the player enters/exit on fullscreen
|
|
4004
4004
|
*
|
|
4005
4005
|
* @event MEDIACONTROL_FULLSCREEN
|
|
4006
4006
|
*/
|
|
4007
|
-
Events$
|
|
4007
|
+
Events$1.MEDIACONTROL_FULLSCREEN = 'mediacontrol:fullscreen';
|
|
4008
4008
|
/**
|
|
4009
4009
|
* Fired when the media control shows
|
|
4010
4010
|
*
|
|
4011
4011
|
* @event MEDIACONTROL_SHOW
|
|
4012
4012
|
*/
|
|
4013
|
-
Events$
|
|
4013
|
+
Events$1.MEDIACONTROL_SHOW = 'mediacontrol:show';
|
|
4014
4014
|
/**
|
|
4015
4015
|
* Fired when the media control hides
|
|
4016
4016
|
*
|
|
4017
4017
|
* @event MEDIACONTROL_HIDE
|
|
4018
4018
|
*/
|
|
4019
|
-
Events$
|
|
4019
|
+
Events$1.MEDIACONTROL_HIDE = 'mediacontrol:hide';
|
|
4020
4020
|
/**
|
|
4021
4021
|
* Fired when mouse enters on the seekbar
|
|
4022
4022
|
*
|
|
@@ -4024,7 +4024,7 @@ Events$2.MEDIACONTROL_HIDE = 'mediacontrol:hide';
|
|
|
4024
4024
|
* @param {Object} event
|
|
4025
4025
|
* the javascript event
|
|
4026
4026
|
*/
|
|
4027
|
-
Events$
|
|
4027
|
+
Events$1.MEDIACONTROL_MOUSEMOVE_SEEKBAR = 'mediacontrol:mousemove:seekbar';
|
|
4028
4028
|
/**
|
|
4029
4029
|
* Fired when mouse leaves the seekbar
|
|
4030
4030
|
*
|
|
@@ -4032,31 +4032,31 @@ Events$2.MEDIACONTROL_MOUSEMOVE_SEEKBAR = 'mediacontrol:mousemove:seekbar';
|
|
|
4032
4032
|
* @param {Object} event
|
|
4033
4033
|
* the javascript event
|
|
4034
4034
|
*/
|
|
4035
|
-
Events$
|
|
4035
|
+
Events$1.MEDIACONTROL_MOUSELEAVE_SEEKBAR = 'mediacontrol:mouseleave:seekbar';
|
|
4036
4036
|
/**
|
|
4037
4037
|
* Fired when the media is being played
|
|
4038
4038
|
*
|
|
4039
4039
|
* @event MEDIACONTROL_PLAYING
|
|
4040
4040
|
*/
|
|
4041
|
-
Events$
|
|
4041
|
+
Events$1.MEDIACONTROL_PLAYING = 'mediacontrol:playing';
|
|
4042
4042
|
/**
|
|
4043
4043
|
* Fired when the media is not being played
|
|
4044
4044
|
*
|
|
4045
4045
|
* @event MEDIACONTROL_NOTPLAYING
|
|
4046
4046
|
*/
|
|
4047
|
-
Events$
|
|
4047
|
+
Events$1.MEDIACONTROL_NOTPLAYING = 'mediacontrol:notplaying';
|
|
4048
4048
|
/**
|
|
4049
4049
|
* Fired when the container was changed
|
|
4050
4050
|
*
|
|
4051
4051
|
* @event MEDIACONTROL_CONTAINERCHANGED
|
|
4052
4052
|
*/
|
|
4053
|
-
Events$
|
|
4053
|
+
Events$1.MEDIACONTROL_CONTAINERCHANGED = 'mediacontrol:containerchanged';
|
|
4054
4054
|
/**
|
|
4055
4055
|
* Fired when the options were changed for the mediacontrol
|
|
4056
4056
|
*
|
|
4057
4057
|
* @event MEDIACONTROL_OPTIONS_CHANGE
|
|
4058
4058
|
*/
|
|
4059
|
-
Events$
|
|
4059
|
+
Events$1.MEDIACONTROL_OPTIONS_CHANGE = 'mediacontrol:options:change';
|
|
4060
4060
|
|
|
4061
4061
|
/**
|
|
4062
4062
|
* @class BaseObject
|
|
@@ -4097,7 +4097,7 @@ var BaseObject = /*#__PURE__*/function (_Events) {
|
|
|
4097
4097
|
return this._options;
|
|
4098
4098
|
}
|
|
4099
4099
|
}]);
|
|
4100
|
-
}(Events$
|
|
4100
|
+
}(Events$1);
|
|
4101
4101
|
|
|
4102
4102
|
/* eslint-disable no-var */
|
|
4103
4103
|
// Simple JavaScript Templating
|
|
@@ -4502,7 +4502,7 @@ var PlayerError = /*#__PURE__*/function (_BaseObject) {
|
|
|
4502
4502
|
Log.warn(this.name, 'Core is not set. Error: ', err);
|
|
4503
4503
|
return;
|
|
4504
4504
|
}
|
|
4505
|
-
this.core.trigger(Events$
|
|
4505
|
+
this.core.trigger(Events$1.ERROR, err);
|
|
4506
4506
|
}
|
|
4507
4507
|
}], [{
|
|
4508
4508
|
key: "Levels",
|
|
@@ -4820,74 +4820,74 @@ var Container = /*#__PURE__*/function (_UIObject) {
|
|
|
4820
4820
|
}, {
|
|
4821
4821
|
key: "bindEvents",
|
|
4822
4822
|
value: function bindEvents() {
|
|
4823
|
-
this.listenTo(this.playback, Events$
|
|
4824
|
-
this.listenTo(this.playback, Events$
|
|
4825
|
-
this.listenTo(this.playback, Events$
|
|
4826
|
-
this.listenTo(this.playback, Events$
|
|
4827
|
-
this.listenTo(this.playback, Events$
|
|
4828
|
-
this.listenTo(this.playback, Events$
|
|
4829
|
-
this.listenTo(this.playback, Events$
|
|
4830
|
-
this.listenTo(this.playback, Events$
|
|
4831
|
-
this.listenTo(this.playback, Events$
|
|
4832
|
-
this.listenTo(this.playback, Events$
|
|
4833
|
-
this.listenTo(this.playback, Events$
|
|
4834
|
-
this.listenTo(this.playback, Events$
|
|
4835
|
-
this.listenTo(this.playback, Events$
|
|
4836
|
-
this.listenTo(this.playback, Events$
|
|
4837
|
-
this.listenTo(this.playback, Events$
|
|
4838
|
-
this.listenTo(this.playback, Events$
|
|
4839
|
-
this.listenTo(this.playback, Events$
|
|
4840
|
-
this.listenTo(this.playback, Events$
|
|
4841
|
-
this.listenTo(this.playback, Events$
|
|
4842
|
-
this.listenTo(this.playback, Events$
|
|
4843
|
-
this.listenTo(this.playback, Events$
|
|
4844
|
-
this.listenTo(this.playback, Events$
|
|
4845
|
-
this.listenTo(this.playback, Events$
|
|
4846
|
-
this.listenTo(this.playback, Events$
|
|
4847
|
-
this.listenTo(this.playback, Events$
|
|
4848
|
-
this.listenTo(this.playback, Events$
|
|
4823
|
+
this.listenTo(this.playback, Events$1.PLAYBACK_PROGRESS, this.onProgress);
|
|
4824
|
+
this.listenTo(this.playback, Events$1.PLAYBACK_TIMEUPDATE, this.timeUpdated);
|
|
4825
|
+
this.listenTo(this.playback, Events$1.PLAYBACK_READY, this.ready);
|
|
4826
|
+
this.listenTo(this.playback, Events$1.PLAYBACK_BUFFERING, this.onBuffering);
|
|
4827
|
+
this.listenTo(this.playback, Events$1.PLAYBACK_BUFFERFULL, this.bufferfull);
|
|
4828
|
+
this.listenTo(this.playback, Events$1.PLAYBACK_SETTINGSUPDATE, this.settingsUpdate);
|
|
4829
|
+
this.listenTo(this.playback, Events$1.PLAYBACK_LOADEDMETADATA, this.loadedMetadata);
|
|
4830
|
+
this.listenTo(this.playback, Events$1.PLAYBACK_HIGHDEFINITIONUPDATE, this.highDefinitionUpdate);
|
|
4831
|
+
this.listenTo(this.playback, Events$1.PLAYBACK_BITRATE, this.updateBitrate);
|
|
4832
|
+
this.listenTo(this.playback, Events$1.PLAYBACK_PLAYBACKSTATE, this.playbackStateChanged);
|
|
4833
|
+
this.listenTo(this.playback, Events$1.PLAYBACK_DVR, this.playbackDvrStateChanged);
|
|
4834
|
+
this.listenTo(this.playback, Events$1.PLAYBACK_MEDIACONTROL_DISABLE, this.disableMediaControl);
|
|
4835
|
+
this.listenTo(this.playback, Events$1.PLAYBACK_MEDIACONTROL_ENABLE, this.enableMediaControl);
|
|
4836
|
+
this.listenTo(this.playback, Events$1.PLAYBACK_SEEK, this.onSeek);
|
|
4837
|
+
this.listenTo(this.playback, Events$1.PLAYBACK_SEEKED, this.onSeeked);
|
|
4838
|
+
this.listenTo(this.playback, Events$1.PLAYBACK_ENDED, this.onEnded);
|
|
4839
|
+
this.listenTo(this.playback, Events$1.PLAYBACK_PLAY, this.playing);
|
|
4840
|
+
this.listenTo(this.playback, Events$1.PLAYBACK_PAUSE, this.paused);
|
|
4841
|
+
this.listenTo(this.playback, Events$1.PLAYBACK_STOP, this.stopped);
|
|
4842
|
+
this.listenTo(this.playback, Events$1.PLAYBACK_ERROR, this.error);
|
|
4843
|
+
this.listenTo(this.playback, Events$1.PLAYBACK_SUBTITLE_AVAILABLE, this.subtitleAvailable);
|
|
4844
|
+
this.listenTo(this.playback, Events$1.PLAYBACK_SUBTITLE_CHANGED, this.subtitleChanged);
|
|
4845
|
+
this.listenTo(this.playback, Events$1.PLAYBACK_AUDIO_AVAILABLE, this.audioAvailable);
|
|
4846
|
+
this.listenTo(this.playback, Events$1.PLAYBACK_AUDIO_CHANGED, this.audioChanged);
|
|
4847
|
+
this.listenTo(this.playback, Events$1.PLAYBACK_PIP_ENTER, this.onEnterPiP);
|
|
4848
|
+
this.listenTo(this.playback, Events$1.PLAYBACK_PIP_EXIT, this.onExitPiP);
|
|
4849
4849
|
}
|
|
4850
4850
|
}, {
|
|
4851
4851
|
key: "subtitleAvailable",
|
|
4852
4852
|
value: function subtitleAvailable() {
|
|
4853
|
-
this.trigger(Events$
|
|
4853
|
+
this.trigger(Events$1.CONTAINER_SUBTITLE_AVAILABLE);
|
|
4854
4854
|
}
|
|
4855
4855
|
}, {
|
|
4856
4856
|
key: "subtitleChanged",
|
|
4857
4857
|
value: function subtitleChanged(track) {
|
|
4858
|
-
this.trigger(Events$
|
|
4858
|
+
this.trigger(Events$1.CONTAINER_SUBTITLE_CHANGED, track);
|
|
4859
4859
|
}
|
|
4860
4860
|
}, {
|
|
4861
4861
|
key: "audioAvailable",
|
|
4862
4862
|
value: function audioAvailable(tracks) {
|
|
4863
|
-
this.trigger(Events$
|
|
4863
|
+
this.trigger(Events$1.CONTAINER_AUDIO_AVAILABLE, tracks);
|
|
4864
4864
|
}
|
|
4865
4865
|
}, {
|
|
4866
4866
|
key: "audioChanged",
|
|
4867
4867
|
value: function audioChanged(track) {
|
|
4868
|
-
this.trigger(Events$
|
|
4868
|
+
this.trigger(Events$1.CONTAINER_AUDIO_CHANGED, track);
|
|
4869
4869
|
}
|
|
4870
4870
|
}, {
|
|
4871
4871
|
key: "playbackStateChanged",
|
|
4872
4872
|
value: function playbackStateChanged(state) {
|
|
4873
|
-
this.trigger(Events$
|
|
4873
|
+
this.trigger(Events$1.CONTAINER_PLAYBACKSTATE, state);
|
|
4874
4874
|
}
|
|
4875
4875
|
}, {
|
|
4876
4876
|
key: "playbackDvrStateChanged",
|
|
4877
4877
|
value: function playbackDvrStateChanged(dvrInUse) {
|
|
4878
4878
|
this.settings = this.playback.settings;
|
|
4879
4879
|
this.dvrInUse = dvrInUse;
|
|
4880
|
-
this.trigger(Events$
|
|
4880
|
+
this.trigger(Events$1.CONTAINER_PLAYBACKDVRSTATECHANGED, dvrInUse);
|
|
4881
4881
|
}
|
|
4882
4882
|
}, {
|
|
4883
4883
|
key: "updateBitrate",
|
|
4884
4884
|
value: function updateBitrate(newBitrate) {
|
|
4885
|
-
this.trigger(Events$
|
|
4885
|
+
this.trigger(Events$1.CONTAINER_BITRATE, newBitrate);
|
|
4886
4886
|
}
|
|
4887
4887
|
}, {
|
|
4888
4888
|
key: "statsReport",
|
|
4889
4889
|
value: function statsReport(metrics) {
|
|
4890
|
-
this.trigger(Events$
|
|
4890
|
+
this.trigger(Events$1.CONTAINER_STATS_REPORT, metrics);
|
|
4891
4891
|
}
|
|
4892
4892
|
}, {
|
|
4893
4893
|
key: "getPlaybackType",
|
|
@@ -4925,7 +4925,7 @@ var Container = /*#__PURE__*/function (_UIObject) {
|
|
|
4925
4925
|
key: "destroy",
|
|
4926
4926
|
value: function destroy() {
|
|
4927
4927
|
this.disableResizeObserver();
|
|
4928
|
-
this.trigger(Events$
|
|
4928
|
+
this.trigger(Events$1.CONTAINER_DESTROYED, this, this.name);
|
|
4929
4929
|
this.stopListening();
|
|
4930
4930
|
this.plugins.forEach(function (plugin) {
|
|
4931
4931
|
return plugin.destroy();
|
|
@@ -4942,7 +4942,7 @@ var Container = /*#__PURE__*/function (_UIObject) {
|
|
|
4942
4942
|
key: "ready",
|
|
4943
4943
|
value: function ready() {
|
|
4944
4944
|
this.isReady = true;
|
|
4945
|
-
this.trigger(Events$
|
|
4945
|
+
this.trigger(Events$1.CONTAINER_READY, this.name);
|
|
4946
4946
|
}
|
|
4947
4947
|
}, {
|
|
4948
4948
|
key: "isPlaying",
|
|
@@ -4968,18 +4968,18 @@ var Container = /*#__PURE__*/function (_UIObject) {
|
|
|
4968
4968
|
key: "error",
|
|
4969
4969
|
value: function error(_error) {
|
|
4970
4970
|
if (!this.isReady) this.ready();
|
|
4971
|
-
this.trigger(Events$
|
|
4971
|
+
this.trigger(Events$1.CONTAINER_ERROR, _error, this.name);
|
|
4972
4972
|
}
|
|
4973
4973
|
}, {
|
|
4974
4974
|
key: "loadedMetadata",
|
|
4975
4975
|
value: function loadedMetadata(metadata) {
|
|
4976
|
-
this.trigger(Events$
|
|
4976
|
+
this.trigger(Events$1.CONTAINER_LOADEDMETADATA, metadata);
|
|
4977
4977
|
}
|
|
4978
4978
|
}, {
|
|
4979
4979
|
key: "timeUpdated",
|
|
4980
4980
|
value: function timeUpdated(timeProgress) {
|
|
4981
4981
|
this.currentTime = timeProgress.current;
|
|
4982
|
-
this.trigger(Events$
|
|
4982
|
+
this.trigger(Events$1.CONTAINER_TIMEUPDATE, timeProgress, this.name);
|
|
4983
4983
|
}
|
|
4984
4984
|
}, {
|
|
4985
4985
|
key: "onProgress",
|
|
@@ -4987,24 +4987,24 @@ var Container = /*#__PURE__*/function (_UIObject) {
|
|
|
4987
4987
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
4988
4988
|
args[_key] = arguments[_key];
|
|
4989
4989
|
}
|
|
4990
|
-
this.trigger.apply(this, [Events$
|
|
4990
|
+
this.trigger.apply(this, [Events$1.CONTAINER_PROGRESS].concat(args, [this.name]));
|
|
4991
4991
|
}
|
|
4992
4992
|
}, {
|
|
4993
4993
|
key: "playing",
|
|
4994
4994
|
value: function playing() {
|
|
4995
|
-
this.trigger(Events$
|
|
4995
|
+
this.trigger(Events$1.CONTAINER_PLAY, this.name, this.actionsMetadata.playEvent || {});
|
|
4996
4996
|
this.actionsMetadata.playEvent = {};
|
|
4997
4997
|
}
|
|
4998
4998
|
}, {
|
|
4999
4999
|
key: "paused",
|
|
5000
5000
|
value: function paused() {
|
|
5001
|
-
this.trigger(Events$
|
|
5001
|
+
this.trigger(Events$1.CONTAINER_PAUSE, this.name, this.actionsMetadata.pauseEvent || {});
|
|
5002
5002
|
this.actionsMetadata.pauseEvent = {};
|
|
5003
5003
|
}
|
|
5004
5004
|
}, {
|
|
5005
5005
|
key: "stopped",
|
|
5006
5006
|
value: function stopped() {
|
|
5007
|
-
this.trigger(Events$
|
|
5007
|
+
this.trigger(Events$1.CONTAINER_STOP, this.actionsMetadata.stopEvent || {});
|
|
5008
5008
|
this.actionsMetadata.stopEvent = {};
|
|
5009
5009
|
}
|
|
5010
5010
|
|
|
@@ -5055,7 +5055,7 @@ var Container = /*#__PURE__*/function (_UIObject) {
|
|
|
5055
5055
|
}, {
|
|
5056
5056
|
key: "onEnded",
|
|
5057
5057
|
value: function onEnded() {
|
|
5058
|
-
this.trigger(Events$
|
|
5058
|
+
this.trigger(Events$1.CONTAINER_ENDED, this, this.name);
|
|
5059
5059
|
this.currentTime = 0;
|
|
5060
5060
|
}
|
|
5061
5061
|
}, {
|
|
@@ -5066,7 +5066,7 @@ var Container = /*#__PURE__*/function (_UIObject) {
|
|
|
5066
5066
|
// The event is delayed because it can be canceled by a double-click event
|
|
5067
5067
|
// An example of use is to prevent playback from pausing when switching to full screen
|
|
5068
5068
|
this.clickTimer = setTimeout(function () {
|
|
5069
|
-
_this2.clickTimer && _this2.trigger(Events$
|
|
5069
|
+
_this2.clickTimer && _this2.trigger(Events$1.CONTAINER_CLICK, _this2, _this2.name);
|
|
5070
5070
|
}, this.clickDelay);
|
|
5071
5071
|
}
|
|
5072
5072
|
}
|
|
@@ -5081,7 +5081,7 @@ var Container = /*#__PURE__*/function (_UIObject) {
|
|
|
5081
5081
|
value: function dblClicked() {
|
|
5082
5082
|
if (!this.options.chromeless || this.options.allowUserInteraction) {
|
|
5083
5083
|
this.cancelClicked();
|
|
5084
|
-
this.trigger(Events$
|
|
5084
|
+
this.trigger(Events$1.CONTAINER_DBLCLICK, this, this.name);
|
|
5085
5085
|
}
|
|
5086
5086
|
}
|
|
5087
5087
|
}, {
|
|
@@ -5091,14 +5091,14 @@ var Container = /*#__PURE__*/function (_UIObject) {
|
|
|
5091
5091
|
if (!this.options.chromeless || this.options.allowUserInteraction) {
|
|
5092
5092
|
this.dblTapHandler.handle(evt, function () {
|
|
5093
5093
|
_this3.cancelClicked();
|
|
5094
|
-
_this3.trigger(Events$
|
|
5094
|
+
_this3.trigger(Events$1.CONTAINER_DBLCLICK, _this3, _this3.name);
|
|
5095
5095
|
});
|
|
5096
5096
|
}
|
|
5097
5097
|
}
|
|
5098
5098
|
}, {
|
|
5099
5099
|
key: "onContextMenu",
|
|
5100
5100
|
value: function onContextMenu(event) {
|
|
5101
|
-
if (!this.options.chromeless || this.options.allowUserInteraction) this.trigger(Events$
|
|
5101
|
+
if (!this.options.chromeless || this.options.allowUserInteraction) this.trigger(Events$1.CONTAINER_CONTEXTMENU, event, this.name);
|
|
5102
5102
|
}
|
|
5103
5103
|
}, {
|
|
5104
5104
|
key: "seek",
|
|
@@ -5108,12 +5108,12 @@ var Container = /*#__PURE__*/function (_UIObject) {
|
|
|
5108
5108
|
}, {
|
|
5109
5109
|
key: "onSeek",
|
|
5110
5110
|
value: function onSeek(time) {
|
|
5111
|
-
this.trigger(Events$
|
|
5111
|
+
this.trigger(Events$1.CONTAINER_SEEK, time, this.name);
|
|
5112
5112
|
}
|
|
5113
5113
|
}, {
|
|
5114
5114
|
key: "onSeeked",
|
|
5115
5115
|
value: function onSeeked() {
|
|
5116
|
-
this.trigger(Events$
|
|
5116
|
+
this.trigger(Events$1.CONTAINER_SEEKED, this.name);
|
|
5117
5117
|
}
|
|
5118
5118
|
}, {
|
|
5119
5119
|
key: "seekPercentage",
|
|
@@ -5128,33 +5128,33 @@ var Container = /*#__PURE__*/function (_UIObject) {
|
|
|
5128
5128
|
key: "setVolume",
|
|
5129
5129
|
value: function setVolume(value) {
|
|
5130
5130
|
this.volume = parseFloat(value);
|
|
5131
|
-
this.trigger(Events$
|
|
5131
|
+
this.trigger(Events$1.CONTAINER_VOLUME, this.volume, this.name);
|
|
5132
5132
|
this.playback.volume(this.volume);
|
|
5133
5133
|
}
|
|
5134
5134
|
}, {
|
|
5135
5135
|
key: "fullscreen",
|
|
5136
5136
|
value: function fullscreen() {
|
|
5137
|
-
this.trigger(Events$
|
|
5137
|
+
this.trigger(Events$1.CONTAINER_FULLSCREEN, this.name);
|
|
5138
5138
|
}
|
|
5139
5139
|
}, {
|
|
5140
5140
|
key: "onBuffering",
|
|
5141
5141
|
value: function onBuffering() {
|
|
5142
|
-
this.trigger(Events$
|
|
5142
|
+
this.trigger(Events$1.CONTAINER_STATE_BUFFERING, this.name);
|
|
5143
5143
|
}
|
|
5144
5144
|
}, {
|
|
5145
5145
|
key: "bufferfull",
|
|
5146
5146
|
value: function bufferfull() {
|
|
5147
|
-
this.trigger(Events$
|
|
5147
|
+
this.trigger(Events$1.CONTAINER_STATE_BUFFERFULL, this.name);
|
|
5148
5148
|
}
|
|
5149
5149
|
}, {
|
|
5150
5150
|
key: "onEnterPiP",
|
|
5151
5151
|
value: function onEnterPiP() {
|
|
5152
|
-
this.trigger(Events$
|
|
5152
|
+
this.trigger(Events$1.CONTAINER_PIP_ENTER, this.name);
|
|
5153
5153
|
}
|
|
5154
5154
|
}, {
|
|
5155
5155
|
key: "onExitPiP",
|
|
5156
5156
|
value: function onExitPiP() {
|
|
5157
|
-
this.trigger(Events$
|
|
5157
|
+
this.trigger(Events$1.CONTAINER_PIP_EXIT, this.name);
|
|
5158
5158
|
}
|
|
5159
5159
|
|
|
5160
5160
|
/**
|
|
@@ -5195,22 +5195,22 @@ var Container = /*#__PURE__*/function (_UIObject) {
|
|
|
5195
5195
|
}, {
|
|
5196
5196
|
key: "mouseEnter",
|
|
5197
5197
|
value: function mouseEnter() {
|
|
5198
|
-
if (!this.options.chromeless || this.options.allowUserInteraction) this.trigger(Events$
|
|
5198
|
+
if (!this.options.chromeless || this.options.allowUserInteraction) this.trigger(Events$1.CONTAINER_MOUSE_ENTER);
|
|
5199
5199
|
}
|
|
5200
5200
|
}, {
|
|
5201
5201
|
key: "mouseLeave",
|
|
5202
5202
|
value: function mouseLeave() {
|
|
5203
|
-
if (!this.options.chromeless || this.options.allowUserInteraction) this.trigger(Events$
|
|
5203
|
+
if (!this.options.chromeless || this.options.allowUserInteraction) this.trigger(Events$1.CONTAINER_MOUSE_LEAVE);
|
|
5204
5204
|
}
|
|
5205
5205
|
}, {
|
|
5206
5206
|
key: "mouseUp",
|
|
5207
5207
|
value: function mouseUp() {
|
|
5208
|
-
if (!this.options.chromeless || this.options.allowUserInteraction) this.trigger(Events$
|
|
5208
|
+
if (!this.options.chromeless || this.options.allowUserInteraction) this.trigger(Events$1.CONTAINER_MOUSE_UP);
|
|
5209
5209
|
}
|
|
5210
5210
|
}, {
|
|
5211
5211
|
key: "mouseDown",
|
|
5212
5212
|
value: function mouseDown() {
|
|
5213
|
-
if (!this.options.chromeless || this.options.allowUserInteraction) this.trigger(Events$
|
|
5213
|
+
if (!this.options.chromeless || this.options.allowUserInteraction) this.trigger(Events$1.CONTAINER_MOUSE_DOWN);
|
|
5214
5214
|
}
|
|
5215
5215
|
}, {
|
|
5216
5216
|
key: "enterPiP",
|
|
@@ -5226,12 +5226,12 @@ var Container = /*#__PURE__*/function (_UIObject) {
|
|
|
5226
5226
|
key: "settingsUpdate",
|
|
5227
5227
|
value: function settingsUpdate() {
|
|
5228
5228
|
this.settings = this.playback.settings;
|
|
5229
|
-
this.trigger(Events$
|
|
5229
|
+
this.trigger(Events$1.CONTAINER_SETTINGSUPDATE);
|
|
5230
5230
|
}
|
|
5231
5231
|
}, {
|
|
5232
5232
|
key: "highDefinitionUpdate",
|
|
5233
5233
|
value: function highDefinitionUpdate(isHD) {
|
|
5234
|
-
this.trigger(Events$
|
|
5234
|
+
this.trigger(Events$1.CONTAINER_HIGHDEFINITIONUPDATE, isHD);
|
|
5235
5235
|
}
|
|
5236
5236
|
}, {
|
|
5237
5237
|
key: "isHighDefinitionInUse",
|
|
@@ -5243,7 +5243,7 @@ var Container = /*#__PURE__*/function (_UIObject) {
|
|
|
5243
5243
|
value: function disableMediaControl() {
|
|
5244
5244
|
if (!this.mediaControlDisabled) {
|
|
5245
5245
|
this.mediaControlDisabled = true;
|
|
5246
|
-
this.trigger(Events$
|
|
5246
|
+
this.trigger(Events$1.CONTAINER_MEDIACONTROL_DISABLE);
|
|
5247
5247
|
}
|
|
5248
5248
|
}
|
|
5249
5249
|
}, {
|
|
@@ -5251,7 +5251,7 @@ var Container = /*#__PURE__*/function (_UIObject) {
|
|
|
5251
5251
|
value: function enableMediaControl() {
|
|
5252
5252
|
if (this.mediaControlDisabled) {
|
|
5253
5253
|
this.mediaControlDisabled = false;
|
|
5254
|
-
this.trigger(Events$
|
|
5254
|
+
this.trigger(Events$1.CONTAINER_MEDIACONTROL_ENABLE);
|
|
5255
5255
|
}
|
|
5256
5256
|
}
|
|
5257
5257
|
}, {
|
|
@@ -5286,7 +5286,7 @@ var Container = /*#__PURE__*/function (_UIObject) {
|
|
|
5286
5286
|
var isResize = height !== newSize.height || width !== newSize.width;
|
|
5287
5287
|
if (!isResize) return;
|
|
5288
5288
|
this.currentSize = newSize;
|
|
5289
|
-
this.trigger(Events$
|
|
5289
|
+
this.trigger(Events$1.CONTAINER_RESIZE, newSize);
|
|
5290
5290
|
}
|
|
5291
5291
|
|
|
5292
5292
|
/**
|
|
@@ -5313,7 +5313,7 @@ var Container = /*#__PURE__*/function (_UIObject) {
|
|
|
5313
5313
|
this._options = $.extend(true, this._options, options);
|
|
5314
5314
|
this.updateStyle();
|
|
5315
5315
|
this.playback.configure(this.options);
|
|
5316
|
-
this.trigger(Events$
|
|
5316
|
+
this.trigger(Events$1.CONTAINER_OPTIONS_CHANGE);
|
|
5317
5317
|
}
|
|
5318
5318
|
}, {
|
|
5319
5319
|
key: "render",
|
|
@@ -5735,7 +5735,7 @@ var Playback = /*#__PURE__*/function (_UIObject) {
|
|
|
5735
5735
|
}, {
|
|
5736
5736
|
key: "onResize",
|
|
5737
5737
|
value: function onResize(options) {
|
|
5738
|
-
this.trigger(Events$
|
|
5738
|
+
this.trigger(Events$1.PLAYBACK_RESIZE, options);
|
|
5739
5739
|
return this;
|
|
5740
5740
|
}
|
|
5741
5741
|
}]);
|
|
@@ -5864,7 +5864,7 @@ var ContainerFactory = /*#__PURE__*/function (_BaseObject) {
|
|
|
5864
5864
|
var defer = $.Deferred();
|
|
5865
5865
|
defer.promise(container);
|
|
5866
5866
|
this.addContainerPlugins(container);
|
|
5867
|
-
this.listenToOnce(container, Events$
|
|
5867
|
+
this.listenToOnce(container, Events$1.CONTAINER_READY, function () {
|
|
5868
5868
|
return defer.resolve(container);
|
|
5869
5869
|
});
|
|
5870
5870
|
return container;
|
|
@@ -5996,7 +5996,7 @@ var Core = /*#__PURE__*/function (_UIObject) {
|
|
|
5996
5996
|
*/,
|
|
5997
5997
|
set: function set(container) {
|
|
5998
5998
|
this._activeContainer = container;
|
|
5999
|
-
this.trigger(Events$
|
|
5999
|
+
this.trigger(Events$1.CORE_ACTIVE_CONTAINER_CHANGED, this._activeContainer);
|
|
6000
6000
|
}
|
|
6001
6001
|
|
|
6002
6002
|
/**
|
|
@@ -6121,7 +6121,7 @@ var Core = /*#__PURE__*/function (_UIObject) {
|
|
|
6121
6121
|
this.oldWidth = newSize.width;
|
|
6122
6122
|
this.computedSize = newSize;
|
|
6123
6123
|
this.firstResize = false;
|
|
6124
|
-
this.trigger(Events$
|
|
6124
|
+
this.trigger(Events$1.CORE_RESIZE, newSize);
|
|
6125
6125
|
}
|
|
6126
6126
|
}, {
|
|
6127
6127
|
key: "disableResizeObserver",
|
|
@@ -6136,7 +6136,7 @@ var Core = /*#__PURE__*/function (_UIObject) {
|
|
|
6136
6136
|
$.when.apply($, containers).done(function () {
|
|
6137
6137
|
_this4.defer.resolve(_this4);
|
|
6138
6138
|
_this4.ready = true;
|
|
6139
|
-
_this4.trigger(Events$
|
|
6139
|
+
_this4.trigger(Events$1.CORE_READY);
|
|
6140
6140
|
});
|
|
6141
6141
|
}
|
|
6142
6142
|
}, {
|
|
@@ -6191,7 +6191,7 @@ var Core = /*#__PURE__*/function (_UIObject) {
|
|
|
6191
6191
|
}, {
|
|
6192
6192
|
key: "handleFullscreenChange",
|
|
6193
6193
|
value: function handleFullscreenChange() {
|
|
6194
|
-
this.trigger(Events$
|
|
6194
|
+
this.trigger(Events$1.CORE_FULLSCREEN, this.isFullscreen());
|
|
6195
6195
|
this.updateSize();
|
|
6196
6196
|
}
|
|
6197
6197
|
}, {
|
|
@@ -6204,7 +6204,7 @@ var Core = /*#__PURE__*/function (_UIObject) {
|
|
|
6204
6204
|
width: this.el.clientWidth,
|
|
6205
6205
|
height: this.el.clientHeight
|
|
6206
6206
|
});
|
|
6207
|
-
this.trigger(Events$
|
|
6207
|
+
this.trigger(Events$1.CORE_SCREEN_ORIENTATION_CHANGED, {
|
|
6208
6208
|
event: event,
|
|
6209
6209
|
orientation: this._screenOrientation
|
|
6210
6210
|
});
|
|
@@ -6221,14 +6221,14 @@ var Core = /*#__PURE__*/function (_UIObject) {
|
|
|
6221
6221
|
}, {
|
|
6222
6222
|
key: "setupContainer",
|
|
6223
6223
|
value: function setupContainer(container) {
|
|
6224
|
-
this.listenTo(container, Events$
|
|
6224
|
+
this.listenTo(container, Events$1.CONTAINER_DESTROYED, this.removeContainer);
|
|
6225
6225
|
this.containers.push(container);
|
|
6226
6226
|
}
|
|
6227
6227
|
}, {
|
|
6228
6228
|
key: "setupContainers",
|
|
6229
6229
|
value: function setupContainers(containers) {
|
|
6230
6230
|
containers.forEach(this.setupContainer.bind(this));
|
|
6231
|
-
this.trigger(Events$
|
|
6231
|
+
this.trigger(Events$1.CORE_CONTAINERS_CREATED);
|
|
6232
6232
|
this.renderContainers();
|
|
6233
6233
|
this.activeContainer = containers[0];
|
|
6234
6234
|
this.render();
|
|
@@ -6310,12 +6310,12 @@ var Core = /*#__PURE__*/function (_UIObject) {
|
|
|
6310
6310
|
}, {
|
|
6311
6311
|
key: "onMouseMove",
|
|
6312
6312
|
value: function onMouseMove(event) {
|
|
6313
|
-
this.trigger(Events$
|
|
6313
|
+
this.trigger(Events$1.CORE_MOUSE_MOVE, event);
|
|
6314
6314
|
}
|
|
6315
6315
|
}, {
|
|
6316
6316
|
key: "onMouseLeave",
|
|
6317
6317
|
value: function onMouseLeave(event) {
|
|
6318
|
-
this.trigger(Events$
|
|
6318
|
+
this.trigger(Events$1.CORE_MOUSE_LEAVE, event);
|
|
6319
6319
|
}
|
|
6320
6320
|
|
|
6321
6321
|
/**
|
|
@@ -6331,7 +6331,7 @@ var Core = /*#__PURE__*/function (_UIObject) {
|
|
|
6331
6331
|
this.configureDomRecycler();
|
|
6332
6332
|
var sources = options.source || options.sources;
|
|
6333
6333
|
sources && this.load(sources, options.mimeType || this.options.mimeType);
|
|
6334
|
-
this.trigger(Events$
|
|
6334
|
+
this.trigger(Events$1.CORE_OPTIONS_CHANGE, options); // Trigger with newly provided options
|
|
6335
6335
|
this.containers.forEach(function (container) {
|
|
6336
6336
|
return container.configure(_this7.options);
|
|
6337
6337
|
});
|
|
@@ -6978,17 +6978,17 @@ var Player = /*#__PURE__*/function (_BaseObject) {
|
|
|
6978
6978
|
key: "eventsMapping",
|
|
6979
6979
|
get: function get() {
|
|
6980
6980
|
return {
|
|
6981
|
-
onReady: Events$
|
|
6982
|
-
onResize: Events$
|
|
6983
|
-
onPlay: Events$
|
|
6984
|
-
onPause: Events$
|
|
6985
|
-
onStop: Events$
|
|
6986
|
-
onEnded: Events$
|
|
6987
|
-
onSeek: Events$
|
|
6988
|
-
onError: Events$
|
|
6989
|
-
onTimeUpdate: Events$
|
|
6990
|
-
onVolumeUpdate: Events$
|
|
6991
|
-
onSubtitleAvailable: Events$
|
|
6981
|
+
onReady: Events$1.PLAYER_READY,
|
|
6982
|
+
onResize: Events$1.PLAYER_RESIZE,
|
|
6983
|
+
onPlay: Events$1.PLAYER_PLAY,
|
|
6984
|
+
onPause: Events$1.PLAYER_PAUSE,
|
|
6985
|
+
onStop: Events$1.PLAYER_STOP,
|
|
6986
|
+
onEnded: Events$1.PLAYER_ENDED,
|
|
6987
|
+
onSeek: Events$1.PLAYER_SEEK,
|
|
6988
|
+
onError: Events$1.PLAYER_ERROR,
|
|
6989
|
+
onTimeUpdate: Events$1.PLAYER_TIMEUPDATE,
|
|
6990
|
+
onVolumeUpdate: Events$1.PLAYER_VOLUMEUPDATE,
|
|
6991
|
+
onSubtitleAvailable: Events$1.PLAYER_SUBTITLE_AVAILABLE
|
|
6992
6992
|
};
|
|
6993
6993
|
}
|
|
6994
6994
|
}, {
|
|
@@ -7017,10 +7017,10 @@ var Player = /*#__PURE__*/function (_BaseObject) {
|
|
|
7017
7017
|
}, {
|
|
7018
7018
|
key: "_addEventListeners",
|
|
7019
7019
|
value: function _addEventListeners() {
|
|
7020
|
-
if (!this.core.isReady) this.listenToOnce(this.core, Events$
|
|
7021
|
-
this.listenTo(this.core, Events$
|
|
7022
|
-
this.listenTo(this.core, Events$
|
|
7023
|
-
this.listenTo(this.core, Events$
|
|
7020
|
+
if (!this.core.isReady) this.listenToOnce(this.core, Events$1.CORE_READY, this._onReady);else this._onReady();
|
|
7021
|
+
this.listenTo(this.core, Events$1.CORE_ACTIVE_CONTAINER_CHANGED, this._containerChanged);
|
|
7022
|
+
this.listenTo(this.core, Events$1.CORE_FULLSCREEN, this._onFullscreenChange);
|
|
7023
|
+
this.listenTo(this.core, Events$1.CORE_RESIZE, this._onResize);
|
|
7024
7024
|
return this;
|
|
7025
7025
|
}
|
|
7026
7026
|
}, {
|
|
@@ -7028,15 +7028,15 @@ var Player = /*#__PURE__*/function (_BaseObject) {
|
|
|
7028
7028
|
value: function _addContainerEventListeners() {
|
|
7029
7029
|
var container = this.core.activeContainer;
|
|
7030
7030
|
if (container) {
|
|
7031
|
-
this.listenTo(container, Events$
|
|
7032
|
-
this.listenTo(container, Events$
|
|
7033
|
-
this.listenTo(container, Events$
|
|
7034
|
-
this.listenTo(container, Events$
|
|
7035
|
-
this.listenTo(container, Events$
|
|
7036
|
-
this.listenTo(container, Events$
|
|
7037
|
-
this.listenTo(container, Events$
|
|
7038
|
-
this.listenTo(container, Events$
|
|
7039
|
-
this.listenTo(container, Events$
|
|
7031
|
+
this.listenTo(container, Events$1.CONTAINER_PLAY, this._onPlay);
|
|
7032
|
+
this.listenTo(container, Events$1.CONTAINER_PAUSE, this._onPause);
|
|
7033
|
+
this.listenTo(container, Events$1.CONTAINER_STOP, this._onStop);
|
|
7034
|
+
this.listenTo(container, Events$1.CONTAINER_ENDED, this._onEnded);
|
|
7035
|
+
this.listenTo(container, Events$1.CONTAINER_SEEK, this._onSeek);
|
|
7036
|
+
this.listenTo(container, Events$1.CONTAINER_ERROR, this._onError);
|
|
7037
|
+
this.listenTo(container, Events$1.CONTAINER_TIMEUPDATE, this._onTimeUpdate);
|
|
7038
|
+
this.listenTo(container, Events$1.CONTAINER_VOLUME, this._onVolumeUpdate);
|
|
7039
|
+
this.listenTo(container, Events$1.CONTAINER_SUBTITLE_AVAILABLE, this._onSubtitleAvailable);
|
|
7040
7040
|
}
|
|
7041
7041
|
return this;
|
|
7042
7042
|
}
|
|
@@ -7072,65 +7072,65 @@ var Player = /*#__PURE__*/function (_BaseObject) {
|
|
|
7072
7072
|
value: function _onReady() {
|
|
7073
7073
|
this._ready = true;
|
|
7074
7074
|
this._addContainerEventListeners();
|
|
7075
|
-
this.trigger(Events$
|
|
7075
|
+
this.trigger(Events$1.PLAYER_READY);
|
|
7076
7076
|
}
|
|
7077
7077
|
}, {
|
|
7078
7078
|
key: "_onFullscreenChange",
|
|
7079
7079
|
value: function _onFullscreenChange(fullscreen) {
|
|
7080
|
-
this.trigger(Events$
|
|
7080
|
+
this.trigger(Events$1.PLAYER_FULLSCREEN, fullscreen);
|
|
7081
7081
|
}
|
|
7082
7082
|
}, {
|
|
7083
7083
|
key: "_onVolumeUpdate",
|
|
7084
7084
|
value: function _onVolumeUpdate(volume) {
|
|
7085
|
-
this.trigger(Events$
|
|
7085
|
+
this.trigger(Events$1.PLAYER_VOLUMEUPDATE, volume);
|
|
7086
7086
|
}
|
|
7087
7087
|
}, {
|
|
7088
7088
|
key: "_onSubtitleAvailable",
|
|
7089
7089
|
value: function _onSubtitleAvailable() {
|
|
7090
|
-
this.trigger(Events$
|
|
7090
|
+
this.trigger(Events$1.PLAYER_SUBTITLE_AVAILABLE);
|
|
7091
7091
|
}
|
|
7092
7092
|
}, {
|
|
7093
7093
|
key: "_onResize",
|
|
7094
7094
|
value: function _onResize(size) {
|
|
7095
|
-
this.trigger(Events$
|
|
7095
|
+
this.trigger(Events$1.PLAYER_RESIZE, size);
|
|
7096
7096
|
}
|
|
7097
7097
|
}, {
|
|
7098
7098
|
key: "_onPlay",
|
|
7099
7099
|
value: function _onPlay(_) {
|
|
7100
7100
|
var eventMetadata = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
7101
|
-
this.trigger(Events$
|
|
7101
|
+
this.trigger(Events$1.PLAYER_PLAY, eventMetadata);
|
|
7102
7102
|
}
|
|
7103
7103
|
}, {
|
|
7104
7104
|
key: "_onPause",
|
|
7105
7105
|
value: function _onPause(_) {
|
|
7106
7106
|
var eventMetadata = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
7107
|
-
this.trigger(Events$
|
|
7107
|
+
this.trigger(Events$1.PLAYER_PAUSE, eventMetadata);
|
|
7108
7108
|
}
|
|
7109
7109
|
}, {
|
|
7110
7110
|
key: "_onStop",
|
|
7111
7111
|
value: function _onStop() {
|
|
7112
7112
|
var eventMetadata = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
7113
|
-
this.trigger(Events$
|
|
7113
|
+
this.trigger(Events$1.PLAYER_STOP, this.getCurrentTime(), eventMetadata);
|
|
7114
7114
|
}
|
|
7115
7115
|
}, {
|
|
7116
7116
|
key: "_onEnded",
|
|
7117
7117
|
value: function _onEnded() {
|
|
7118
|
-
this.trigger(Events$
|
|
7118
|
+
this.trigger(Events$1.PLAYER_ENDED);
|
|
7119
7119
|
}
|
|
7120
7120
|
}, {
|
|
7121
7121
|
key: "_onSeek",
|
|
7122
7122
|
value: function _onSeek(time) {
|
|
7123
|
-
this.trigger(Events$
|
|
7123
|
+
this.trigger(Events$1.PLAYER_SEEK, time);
|
|
7124
7124
|
}
|
|
7125
7125
|
}, {
|
|
7126
7126
|
key: "_onTimeUpdate",
|
|
7127
7127
|
value: function _onTimeUpdate(timeProgress) {
|
|
7128
|
-
this.trigger(Events$
|
|
7128
|
+
this.trigger(Events$1.PLAYER_TIMEUPDATE, timeProgress);
|
|
7129
7129
|
}
|
|
7130
7130
|
}, {
|
|
7131
7131
|
key: "_onError",
|
|
7132
7132
|
value: function _onError(error) {
|
|
7133
|
-
this.trigger(Events$
|
|
7133
|
+
this.trigger(Events$1.PLAYER_ERROR, error);
|
|
7134
7134
|
}
|
|
7135
7135
|
}, {
|
|
7136
7136
|
key: "_normalizeSources",
|
|
@@ -7848,7 +7848,7 @@ var HTML5Video = /*#__PURE__*/function (_Playback) {
|
|
|
7848
7848
|
key: "_onLoadedMetadata",
|
|
7849
7849
|
value: function _onLoadedMetadata(e) {
|
|
7850
7850
|
this._handleBufferingEvents();
|
|
7851
|
-
this.trigger(Events$
|
|
7851
|
+
this.trigger(Events$1.PLAYBACK_LOADEDMETADATA, {
|
|
7852
7852
|
duration: e.target.duration,
|
|
7853
7853
|
data: e
|
|
7854
7854
|
});
|
|
@@ -7871,7 +7871,7 @@ var HTML5Video = /*#__PURE__*/function (_Playback) {
|
|
|
7871
7871
|
// that's why we check it again and update media control accordingly.
|
|
7872
7872
|
if (this.getPlaybackType() === Playback.VOD || this.getPlaybackType() === Playback.AOD) this.settings.left = ['playpause', 'position', 'duration'];else this.settings.left = ['playstop'];
|
|
7873
7873
|
this.settings.seekEnabled = this.isSeekEnabled();
|
|
7874
|
-
this.trigger(Events$
|
|
7874
|
+
this.trigger(Events$1.PLAYBACK_SETTINGSUPDATE);
|
|
7875
7875
|
}
|
|
7876
7876
|
}, {
|
|
7877
7877
|
key: "isSeekEnabled",
|
|
@@ -7914,7 +7914,7 @@ var HTML5Video = /*#__PURE__*/function (_Playback) {
|
|
|
7914
7914
|
key: "play",
|
|
7915
7915
|
value: function play() {
|
|
7916
7916
|
var _this4 = this;
|
|
7917
|
-
this.trigger(Events$
|
|
7917
|
+
this.trigger(Events$1.PLAYBACK_PLAY_INTENT);
|
|
7918
7918
|
this._stopped = false;
|
|
7919
7919
|
this._setupSrc(this._src);
|
|
7920
7920
|
this._handleBufferingEvents();
|
|
@@ -7940,7 +7940,7 @@ var HTML5Video = /*#__PURE__*/function (_Playback) {
|
|
|
7940
7940
|
this.el.load(); // load with no src to stop loading of the previous source and avoid leaks
|
|
7941
7941
|
this._stopPlayheadMovingChecks();
|
|
7942
7942
|
this._handleBufferingEvents();
|
|
7943
|
-
this.trigger(Events$
|
|
7943
|
+
this.trigger(Events$1.PLAYBACK_STOP);
|
|
7944
7944
|
}
|
|
7945
7945
|
}, {
|
|
7946
7946
|
key: "volume",
|
|
@@ -8060,7 +8060,7 @@ var HTML5Video = /*#__PURE__*/function (_Playback) {
|
|
|
8060
8060
|
this._checkForClosedCaptions();
|
|
8061
8061
|
this._startPlayheadMovingChecks();
|
|
8062
8062
|
this._handleBufferingEvents();
|
|
8063
|
-
this.trigger(Events$
|
|
8063
|
+
this.trigger(Events$1.PLAYBACK_PLAY);
|
|
8064
8064
|
}
|
|
8065
8065
|
}, {
|
|
8066
8066
|
key: "_onPause",
|
|
@@ -8068,7 +8068,7 @@ var HTML5Video = /*#__PURE__*/function (_Playback) {
|
|
|
8068
8068
|
this.dvrEnabled && this._updateDvr(true);
|
|
8069
8069
|
this._stopPlayheadMovingChecks();
|
|
8070
8070
|
this._handleBufferingEvents();
|
|
8071
|
-
this.trigger(Events$
|
|
8071
|
+
this.trigger(Events$1.PLAYBACK_PAUSE);
|
|
8072
8072
|
}
|
|
8073
8073
|
}, {
|
|
8074
8074
|
key: "_onSeeking",
|
|
@@ -8076,30 +8076,30 @@ var HTML5Video = /*#__PURE__*/function (_Playback) {
|
|
|
8076
8076
|
var currentTime = this.getCurrentTime();
|
|
8077
8077
|
// assume live if time within 3 seconds of end of stream
|
|
8078
8078
|
this.dvrEnabled && this._updateDvr(currentTime < this.getDuration() - 3);
|
|
8079
|
-
this.trigger(Events$
|
|
8079
|
+
this.trigger(Events$1.PLAYBACK_SEEK, currentTime);
|
|
8080
8080
|
this._handleBufferingEvents();
|
|
8081
8081
|
}
|
|
8082
8082
|
}, {
|
|
8083
8083
|
key: "_onSeeked",
|
|
8084
8084
|
value: function _onSeeked() {
|
|
8085
8085
|
this._handleBufferingEvents();
|
|
8086
|
-
this.trigger(Events$
|
|
8086
|
+
this.trigger(Events$1.PLAYBACK_SEEKED);
|
|
8087
8087
|
}
|
|
8088
8088
|
}, {
|
|
8089
8089
|
key: "_onEnded",
|
|
8090
8090
|
value: function _onEnded() {
|
|
8091
8091
|
this._handleBufferingEvents();
|
|
8092
|
-
this.trigger(Events$
|
|
8092
|
+
this.trigger(Events$1.PLAYBACK_ENDED, this.name);
|
|
8093
8093
|
}
|
|
8094
8094
|
}, {
|
|
8095
8095
|
key: "_onEnterPiP",
|
|
8096
8096
|
value: function _onEnterPiP() {
|
|
8097
|
-
this.trigger(Events$
|
|
8097
|
+
this.trigger(Events$1.PLAYBACK_PIP_ENTER, this.name);
|
|
8098
8098
|
}
|
|
8099
8099
|
}, {
|
|
8100
8100
|
key: "_onExitPiP",
|
|
8101
8101
|
value: function _onExitPiP() {
|
|
8102
|
-
this.trigger(Events$
|
|
8102
|
+
this.trigger(Events$1.PLAYBACK_PIP_EXIT, this.name);
|
|
8103
8103
|
}
|
|
8104
8104
|
}, {
|
|
8105
8105
|
key: "enterPiP",
|
|
@@ -8137,7 +8137,7 @@ var HTML5Video = /*#__PURE__*/function (_Playback) {
|
|
|
8137
8137
|
if (this._playheadMovingCheckEnabled) buffering = buffering || isLoading && playheadShouldBeMoving;
|
|
8138
8138
|
if (this._isBuffering !== buffering) {
|
|
8139
8139
|
this._isBuffering = buffering;
|
|
8140
|
-
if (buffering) this.trigger(Events$
|
|
8140
|
+
if (buffering) this.trigger(Events$1.PLAYBACK_BUFFERING, this.name);else this.trigger(Events$1.PLAYBACK_BUFFERFULL, this.name);
|
|
8141
8141
|
}
|
|
8142
8142
|
}
|
|
8143
8143
|
}, {
|
|
@@ -8153,7 +8153,7 @@ var HTML5Video = /*#__PURE__*/function (_Playback) {
|
|
|
8153
8153
|
raw: this.el.error,
|
|
8154
8154
|
level: isUnknownError ? PlayerError.Levels.WARN : PlayerError.Levels.FATAL
|
|
8155
8155
|
});
|
|
8156
|
-
if (isUnknownError) Log.warn(this.name, 'HTML5 unknown error: ', formattedError);else this.trigger(Events$
|
|
8156
|
+
if (isUnknownError) Log.warn(this.name, 'HTML5 unknown error: ', formattedError);else this.trigger(Events$1.PLAYBACK_ERROR, formattedError);
|
|
8157
8157
|
}
|
|
8158
8158
|
}, {
|
|
8159
8159
|
key: "destroy",
|
|
@@ -8171,8 +8171,8 @@ var HTML5Video = /*#__PURE__*/function (_Playback) {
|
|
|
8171
8171
|
}, {
|
|
8172
8172
|
key: "_updateDvr",
|
|
8173
8173
|
value: function _updateDvr(status) {
|
|
8174
|
-
this.trigger(Events$
|
|
8175
|
-
this.trigger(Events$
|
|
8174
|
+
this.trigger(Events$1.PLAYBACK_DVR, status);
|
|
8175
|
+
this.trigger(Events$1.PLAYBACK_STATS_ADD, {
|
|
8176
8176
|
'dvr': status
|
|
8177
8177
|
});
|
|
8178
8178
|
}
|
|
@@ -8231,7 +8231,7 @@ var HTML5Video = /*#__PURE__*/function (_Playback) {
|
|
|
8231
8231
|
key: "_onTimeUpdate",
|
|
8232
8232
|
value: function _onTimeUpdate() {
|
|
8233
8233
|
var duration = this.isLive ? this.getDuration() : this.el.duration;
|
|
8234
|
-
this.trigger(Events$
|
|
8234
|
+
this.trigger(Events$1.PLAYBACK_TIMEUPDATE, {
|
|
8235
8235
|
current: this.el.currentTime,
|
|
8236
8236
|
total: duration
|
|
8237
8237
|
}, this.name);
|
|
@@ -8254,7 +8254,7 @@ var HTML5Video = /*#__PURE__*/function (_Playback) {
|
|
|
8254
8254
|
current: buffered[bufferedPos].end,
|
|
8255
8255
|
total: this.el.duration
|
|
8256
8256
|
};
|
|
8257
|
-
this.trigger(Events$
|
|
8257
|
+
this.trigger(Events$1.PLAYBACK_PROGRESS, progress, buffered);
|
|
8258
8258
|
}
|
|
8259
8259
|
}, {
|
|
8260
8260
|
key: "_typeFor",
|
|
@@ -8269,7 +8269,7 @@ var HTML5Video = /*#__PURE__*/function (_Playback) {
|
|
|
8269
8269
|
value: function _ready() {
|
|
8270
8270
|
if (this._isReadyState) return;
|
|
8271
8271
|
this._isReadyState = true;
|
|
8272
|
-
this.trigger(Events$
|
|
8272
|
+
this.trigger(Events$1.PLAYBACK_READY, this.name);
|
|
8273
8273
|
}
|
|
8274
8274
|
}, {
|
|
8275
8275
|
key: "_checkForClosedCaptions",
|
|
@@ -8277,7 +8277,7 @@ var HTML5Video = /*#__PURE__*/function (_Playback) {
|
|
|
8277
8277
|
// Check if CC available only if current playback is HTML5Video
|
|
8278
8278
|
if (this.isHTML5Video && !this._ccIsSetup) {
|
|
8279
8279
|
if (this.hasClosedCaptionsTracks) {
|
|
8280
|
-
this.trigger(Events$
|
|
8280
|
+
this.trigger(Events$1.PLAYBACK_SUBTITLE_AVAILABLE);
|
|
8281
8281
|
var trackId = this.closedCaptionsTrackId;
|
|
8282
8282
|
this.closedCaptionsTrackId = trackId;
|
|
8283
8283
|
this.handleTextTrackChange = this._handleTextTrackChange.bind(this);
|
|
@@ -8297,7 +8297,7 @@ var HTML5Video = /*#__PURE__*/function (_Playback) {
|
|
|
8297
8297
|
};
|
|
8298
8298
|
if (this._ccTrackId !== track.id) {
|
|
8299
8299
|
this._ccTrackId = track.id;
|
|
8300
|
-
this.trigger(Events$
|
|
8300
|
+
this.trigger(Events$1.PLAYBACK_SUBTITLE_CHANGED, {
|
|
8301
8301
|
id: track.id
|
|
8302
8302
|
});
|
|
8303
8303
|
}
|
|
@@ -8354,7 +8354,7 @@ var HTML5Video = /*#__PURE__*/function (_Playback) {
|
|
|
8354
8354
|
});
|
|
8355
8355
|
showingTrack && (showingTrack.track.mode = 'showing');
|
|
8356
8356
|
this._ccTrackId = trackId;
|
|
8357
|
-
this.trigger(Events$
|
|
8357
|
+
this.trigger(Events$1.PLAYBACK_SUBTITLE_CHANGED, {
|
|
8358
8358
|
id: trackId
|
|
8359
8359
|
});
|
|
8360
8360
|
}
|
|
@@ -8438,7 +8438,7 @@ var HTML5Audio = /*#__PURE__*/function (_HTML5Video) {
|
|
|
8438
8438
|
value: function updateSettings() {
|
|
8439
8439
|
this.settings.left = ['playpause', 'position', 'duration'];
|
|
8440
8440
|
this.settings.seekEnabled = this.isSeekEnabled();
|
|
8441
|
-
this.trigger(Events$
|
|
8441
|
+
this.trigger(Events$1.PLAYBACK_SETTINGSUPDATE);
|
|
8442
8442
|
}
|
|
8443
8443
|
}, {
|
|
8444
8444
|
key: "getPlaybackType",
|
|
@@ -8513,19 +8513,19 @@ var HTMLImg = /*#__PURE__*/function (_Playback) {
|
|
|
8513
8513
|
baseUrl: this.options.baseUrl
|
|
8514
8514
|
});
|
|
8515
8515
|
this.$el.append(style[0]);
|
|
8516
|
-
this.trigger(Events$
|
|
8516
|
+
this.trigger(Events$1.PLAYBACK_READY, this.name);
|
|
8517
8517
|
return this;
|
|
8518
8518
|
}
|
|
8519
8519
|
}, {
|
|
8520
8520
|
key: "_onLoad",
|
|
8521
8521
|
value: function _onLoad() {
|
|
8522
|
-
this.trigger(Events$
|
|
8522
|
+
this.trigger(Events$1.PLAYBACK_ENDED, this.name);
|
|
8523
8523
|
}
|
|
8524
8524
|
}, {
|
|
8525
8525
|
key: "_onError",
|
|
8526
8526
|
value: function _onError(evt) {
|
|
8527
8527
|
var m = evt.type === 'error' ? 'load error' : 'loading aborted';
|
|
8528
|
-
this.trigger(Events$
|
|
8528
|
+
this.trigger(Events$1.PLAYBACK_ERROR, {
|
|
8529
8529
|
message: m
|
|
8530
8530
|
}, this.name);
|
|
8531
8531
|
}
|
|
@@ -8586,7 +8586,7 @@ var NoOp = /*#__PURE__*/function (_Playback) {
|
|
|
8586
8586
|
this.$el.html(this.template({
|
|
8587
8587
|
message: playbackNotSupported
|
|
8588
8588
|
}));
|
|
8589
|
-
this.trigger(Events$
|
|
8589
|
+
this.trigger(Events$1.PLAYBACK_READY, this.name);
|
|
8590
8590
|
var showForNoOp = !!(this.options.poster && this.options.poster.showForNoOp);
|
|
8591
8591
|
if (this.options.autoPlay || !showForNoOp) this._animate();
|
|
8592
8592
|
return this;
|
|
@@ -8834,7 +8834,7 @@ var SourcesPlugin = /*#__PURE__*/function (_CorePlugin) {
|
|
|
8834
8834
|
}, {
|
|
8835
8835
|
key: "bindEvents",
|
|
8836
8836
|
value: function bindEvents() {
|
|
8837
|
-
this.listenTo(this.core, Events$
|
|
8837
|
+
this.listenTo(this.core, Events$1.CORE_CONTAINERS_CREATED, this.onContainersCreated);
|
|
8838
8838
|
}
|
|
8839
8839
|
}, {
|
|
8840
8840
|
key: "onContainersCreated",
|
|
@@ -9109,7 +9109,7 @@ const isSafeInteger = Number.isSafeInteger || function (value) {
|
|
|
9109
9109
|
};
|
|
9110
9110
|
const MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || 9007199254740991;
|
|
9111
9111
|
|
|
9112
|
-
let Events
|
|
9112
|
+
let Events = /*#__PURE__*/function (Events) {
|
|
9113
9113
|
Events["MEDIA_ATTACHING"] = "hlsMediaAttaching";
|
|
9114
9114
|
Events["MEDIA_ATTACHED"] = "hlsMediaAttached";
|
|
9115
9115
|
Events["MEDIA_DETACHING"] = "hlsMediaDetaching";
|
|
@@ -12337,19 +12337,19 @@ class ErrorController {
|
|
|
12337
12337
|
}
|
|
12338
12338
|
registerListeners() {
|
|
12339
12339
|
const hls = this.hls;
|
|
12340
|
-
hls.on(Events
|
|
12341
|
-
hls.on(Events
|
|
12342
|
-
hls.on(Events
|
|
12340
|
+
hls.on(Events.ERROR, this.onError, this);
|
|
12341
|
+
hls.on(Events.MANIFEST_LOADING, this.onManifestLoading, this);
|
|
12342
|
+
hls.on(Events.LEVEL_UPDATED, this.onLevelUpdated, this);
|
|
12343
12343
|
}
|
|
12344
12344
|
unregisterListeners() {
|
|
12345
12345
|
const hls = this.hls;
|
|
12346
12346
|
if (!hls) {
|
|
12347
12347
|
return;
|
|
12348
12348
|
}
|
|
12349
|
-
hls.off(Events
|
|
12350
|
-
hls.off(Events
|
|
12351
|
-
hls.off(Events
|
|
12352
|
-
hls.off(Events
|
|
12349
|
+
hls.off(Events.ERROR, this.onError, this);
|
|
12350
|
+
hls.off(Events.ERROR, this.onErrorOut, this);
|
|
12351
|
+
hls.off(Events.MANIFEST_LOADING, this.onManifestLoading, this);
|
|
12352
|
+
hls.off(Events.LEVEL_UPDATED, this.onLevelUpdated, this);
|
|
12353
12353
|
}
|
|
12354
12354
|
destroy() {
|
|
12355
12355
|
this.unregisterListeners();
|
|
@@ -13608,7 +13608,7 @@ class AbrController {
|
|
|
13608
13608
|
Current BW estimate: ${isFiniteNumber(bwEstimate) ? bwEstimate | 0 : 'Unknown'} bps
|
|
13609
13609
|
New BW estimate: ${this.getBwEstimate() | 0} bps
|
|
13610
13610
|
Switching to level ${nextLoadLevel} @ ${nextLoadLevelBitrate | 0} bps`);
|
|
13611
|
-
hls.trigger(Events
|
|
13611
|
+
hls.trigger(Events.FRAG_LOAD_EMERGENCY_ABORTED, {
|
|
13612
13612
|
frag,
|
|
13613
13613
|
part,
|
|
13614
13614
|
stats
|
|
@@ -13634,15 +13634,15 @@ class AbrController {
|
|
|
13634
13634
|
const {
|
|
13635
13635
|
hls
|
|
13636
13636
|
} = this;
|
|
13637
|
-
hls.on(Events
|
|
13638
|
-
hls.on(Events
|
|
13639
|
-
hls.on(Events
|
|
13640
|
-
hls.on(Events
|
|
13641
|
-
hls.on(Events
|
|
13642
|
-
hls.on(Events
|
|
13643
|
-
hls.on(Events
|
|
13644
|
-
hls.on(Events
|
|
13645
|
-
hls.on(Events
|
|
13637
|
+
hls.on(Events.MANIFEST_LOADING, this.onManifestLoading, this);
|
|
13638
|
+
hls.on(Events.FRAG_LOADING, this.onFragLoading, this);
|
|
13639
|
+
hls.on(Events.FRAG_LOADED, this.onFragLoaded, this);
|
|
13640
|
+
hls.on(Events.FRAG_BUFFERED, this.onFragBuffered, this);
|
|
13641
|
+
hls.on(Events.LEVEL_SWITCHING, this.onLevelSwitching, this);
|
|
13642
|
+
hls.on(Events.LEVEL_LOADED, this.onLevelLoaded, this);
|
|
13643
|
+
hls.on(Events.LEVELS_UPDATED, this.onLevelsUpdated, this);
|
|
13644
|
+
hls.on(Events.MAX_AUTO_LEVEL_UPDATED, this.onMaxAutoLevelUpdated, this);
|
|
13645
|
+
hls.on(Events.ERROR, this.onError, this);
|
|
13646
13646
|
}
|
|
13647
13647
|
unregisterListeners() {
|
|
13648
13648
|
const {
|
|
@@ -13651,15 +13651,15 @@ class AbrController {
|
|
|
13651
13651
|
if (!hls) {
|
|
13652
13652
|
return;
|
|
13653
13653
|
}
|
|
13654
|
-
hls.off(Events
|
|
13655
|
-
hls.off(Events
|
|
13656
|
-
hls.off(Events
|
|
13657
|
-
hls.off(Events
|
|
13658
|
-
hls.off(Events
|
|
13659
|
-
hls.off(Events
|
|
13660
|
-
hls.off(Events
|
|
13661
|
-
hls.off(Events
|
|
13662
|
-
hls.off(Events
|
|
13654
|
+
hls.off(Events.MANIFEST_LOADING, this.onManifestLoading, this);
|
|
13655
|
+
hls.off(Events.FRAG_LOADING, this.onFragLoading, this);
|
|
13656
|
+
hls.off(Events.FRAG_LOADED, this.onFragLoaded, this);
|
|
13657
|
+
hls.off(Events.FRAG_BUFFERED, this.onFragBuffered, this);
|
|
13658
|
+
hls.off(Events.LEVEL_SWITCHING, this.onLevelSwitching, this);
|
|
13659
|
+
hls.off(Events.LEVEL_LOADED, this.onLevelLoaded, this);
|
|
13660
|
+
hls.off(Events.LEVELS_UPDATED, this.onLevelsUpdated, this);
|
|
13661
|
+
hls.off(Events.MAX_AUTO_LEVEL_UPDATED, this.onMaxAutoLevelUpdated, this);
|
|
13662
|
+
hls.off(Events.ERROR, this.onError, this);
|
|
13663
13663
|
}
|
|
13664
13664
|
destroy() {
|
|
13665
13665
|
this.unregisterListeners();
|
|
@@ -13798,7 +13798,7 @@ class AbrController {
|
|
|
13798
13798
|
part,
|
|
13799
13799
|
id: frag.type
|
|
13800
13800
|
};
|
|
13801
|
-
this.onFragBuffered(Events
|
|
13801
|
+
this.onFragBuffered(Events.FRAG_BUFFERED, fragBufferedData);
|
|
13802
13802
|
frag.bitrateTest = false;
|
|
13803
13803
|
} else {
|
|
13804
13804
|
// store level id after successful fragment load for playback
|
|
@@ -15379,7 +15379,7 @@ class BaseStreamController extends TaskLoop {
|
|
|
15379
15379
|
this.fragmentTracker = fragmentTracker;
|
|
15380
15380
|
this.config = hls.config;
|
|
15381
15381
|
this.decrypter = new Decrypter(hls.config);
|
|
15382
|
-
hls.on(Events
|
|
15382
|
+
hls.on(Events.MANIFEST_LOADED, this.onManifestLoaded, this);
|
|
15383
15383
|
}
|
|
15384
15384
|
doTick() {
|
|
15385
15385
|
this.onTickEnd();
|
|
@@ -15524,7 +15524,7 @@ class BaseStreamController extends TaskLoop {
|
|
|
15524
15524
|
this.initPTS = [];
|
|
15525
15525
|
}
|
|
15526
15526
|
onHandlerDestroying() {
|
|
15527
|
-
this.hls.off(Events
|
|
15527
|
+
this.hls.off(Events.MANIFEST_LOADED, this.onManifestLoaded, this);
|
|
15528
15528
|
this.stopLoad();
|
|
15529
15529
|
super.onHandlerDestroying();
|
|
15530
15530
|
// @ts-ignore
|
|
@@ -15572,7 +15572,7 @@ class BaseStreamController extends TaskLoop {
|
|
|
15572
15572
|
}
|
|
15573
15573
|
if ('payload' in data) {
|
|
15574
15574
|
this.log(`Loaded fragment ${frag.sn} of level ${frag.level}`);
|
|
15575
|
-
this.hls.trigger(Events
|
|
15575
|
+
this.hls.trigger(Events.FRAG_LOADED, data);
|
|
15576
15576
|
}
|
|
15577
15577
|
|
|
15578
15578
|
// Pass through the whole payload; controllers not implementing progressive loading receive data from this callback
|
|
@@ -15644,7 +15644,7 @@ class BaseStreamController extends TaskLoop {
|
|
|
15644
15644
|
endOffset,
|
|
15645
15645
|
type
|
|
15646
15646
|
};
|
|
15647
|
-
this.hls.trigger(Events
|
|
15647
|
+
this.hls.trigger(Events.BUFFER_FLUSHING, flushScope);
|
|
15648
15648
|
}
|
|
15649
15649
|
_loadInitSegment(frag, level) {
|
|
15650
15650
|
this._doFragLoad(frag, level).then(data => {
|
|
@@ -15666,7 +15666,7 @@ class BaseStreamController extends TaskLoop {
|
|
|
15666
15666
|
const startTime = self.performance.now();
|
|
15667
15667
|
// decrypt init segment data
|
|
15668
15668
|
return this.decrypter.decrypt(new Uint8Array(payload), decryptData.key.buffer, decryptData.iv.buffer).catch(err => {
|
|
15669
|
-
hls.trigger(Events
|
|
15669
|
+
hls.trigger(Events.ERROR, {
|
|
15670
15670
|
type: ErrorTypes.MEDIA_ERROR,
|
|
15671
15671
|
details: ErrorDetails.FRAG_DECRYPT_ERROR,
|
|
15672
15672
|
fatal: false,
|
|
@@ -15677,7 +15677,7 @@ class BaseStreamController extends TaskLoop {
|
|
|
15677
15677
|
throw err;
|
|
15678
15678
|
}).then(decryptedData => {
|
|
15679
15679
|
const endTime = self.performance.now();
|
|
15680
|
-
hls.trigger(Events
|
|
15680
|
+
hls.trigger(Events.FRAG_DECRYPTED, {
|
|
15681
15681
|
frag,
|
|
15682
15682
|
payload: decryptedData,
|
|
15683
15683
|
stats: {
|
|
@@ -15782,14 +15782,14 @@ class BaseStreamController extends TaskLoop {
|
|
|
15782
15782
|
this.fragCurrent = frag;
|
|
15783
15783
|
keyLoadingPromise = this.keyLoader.load(frag).then(keyLoadedData => {
|
|
15784
15784
|
if (!this.fragContextChanged(keyLoadedData.frag)) {
|
|
15785
|
-
this.hls.trigger(Events
|
|
15785
|
+
this.hls.trigger(Events.KEY_LOADED, keyLoadedData);
|
|
15786
15786
|
if (this.state === State.KEY_LOADING) {
|
|
15787
15787
|
this.state = State.IDLE;
|
|
15788
15788
|
}
|
|
15789
15789
|
return keyLoadedData;
|
|
15790
15790
|
}
|
|
15791
15791
|
});
|
|
15792
|
-
this.hls.trigger(Events
|
|
15792
|
+
this.hls.trigger(Events.KEY_LOADING, {
|
|
15793
15793
|
frag
|
|
15794
15794
|
});
|
|
15795
15795
|
if (this.fragCurrent === null) {
|
|
@@ -15822,7 +15822,7 @@ class BaseStreamController extends TaskLoop {
|
|
|
15822
15822
|
} else {
|
|
15823
15823
|
_result = this.doFragPartsLoad(frag, part, level, progressCallback).catch(error => this.handleFragLoadError(error));
|
|
15824
15824
|
}
|
|
15825
|
-
this.hls.trigger(Events
|
|
15825
|
+
this.hls.trigger(Events.FRAG_LOADING, {
|
|
15826
15826
|
frag,
|
|
15827
15827
|
part,
|
|
15828
15828
|
targetBufferTime
|
|
@@ -15864,7 +15864,7 @@ class BaseStreamController extends TaskLoop {
|
|
|
15864
15864
|
return fragLoadedData;
|
|
15865
15865
|
}).catch(error => this.handleFragLoadError(error));
|
|
15866
15866
|
}
|
|
15867
|
-
this.hls.trigger(Events
|
|
15867
|
+
this.hls.trigger(Events.FRAG_LOADING, {
|
|
15868
15868
|
frag,
|
|
15869
15869
|
targetBufferTime
|
|
15870
15870
|
});
|
|
@@ -15882,7 +15882,7 @@ class BaseStreamController extends TaskLoop {
|
|
|
15882
15882
|
this.fragmentLoader.loadPart(frag, part, progressCallback).then(partLoadedData => {
|
|
15883
15883
|
partsLoaded[part.index] = partLoadedData;
|
|
15884
15884
|
const loadedPart = partLoadedData.part;
|
|
15885
|
-
this.hls.trigger(Events
|
|
15885
|
+
this.hls.trigger(Events.FRAG_LOADED, partLoadedData);
|
|
15886
15886
|
const nextPart = getPartWith(level, frag.sn, part.index + 1) || findPart(initialPartList, frag.sn, part.index + 1);
|
|
15887
15887
|
if (nextPart) {
|
|
15888
15888
|
loadPart(nextPart);
|
|
@@ -15904,10 +15904,10 @@ class BaseStreamController extends TaskLoop {
|
|
|
15904
15904
|
if (error.data && data.details === ErrorDetails.INTERNAL_ABORTED) {
|
|
15905
15905
|
this.handleFragLoadAborted(data.frag, data.part);
|
|
15906
15906
|
} else {
|
|
15907
|
-
this.hls.trigger(Events
|
|
15907
|
+
this.hls.trigger(Events.ERROR, data);
|
|
15908
15908
|
}
|
|
15909
15909
|
} else {
|
|
15910
|
-
this.hls.trigger(Events
|
|
15910
|
+
this.hls.trigger(Events.ERROR, {
|
|
15911
15911
|
type: ErrorTypes.OTHER_ERROR,
|
|
15912
15912
|
details: ErrorDetails.INTERNAL_EXCEPTION,
|
|
15913
15913
|
err: error,
|
|
@@ -15991,7 +15991,7 @@ class BaseStreamController extends TaskLoop {
|
|
|
15991
15991
|
parent: frag.type,
|
|
15992
15992
|
data: buffer
|
|
15993
15993
|
};
|
|
15994
|
-
this.hls.trigger(Events
|
|
15994
|
+
this.hls.trigger(Events.BUFFER_APPENDING, segment);
|
|
15995
15995
|
if (data.dropped && data.independent && !part) {
|
|
15996
15996
|
if (noBacktracking) {
|
|
15997
15997
|
return;
|
|
@@ -16540,7 +16540,7 @@ class BaseStreamController extends TaskLoop {
|
|
|
16540
16540
|
return result || false;
|
|
16541
16541
|
}
|
|
16542
16542
|
const drift = partial ? 0 : updateFragPTSDTS(details, frag, info.startPTS, info.endPTS, info.startDTS, info.endDTS);
|
|
16543
|
-
this.hls.trigger(Events
|
|
16543
|
+
this.hls.trigger(Events.LEVEL_PTS_UPDATED, {
|
|
16544
16544
|
details,
|
|
16545
16545
|
level,
|
|
16546
16546
|
drift,
|
|
@@ -16563,7 +16563,7 @@ class BaseStreamController extends TaskLoop {
|
|
|
16563
16563
|
this.fragmentTracker.fragBuffered(frag, true);
|
|
16564
16564
|
}
|
|
16565
16565
|
this.warn(error.message);
|
|
16566
|
-
this.hls.trigger(Events
|
|
16566
|
+
this.hls.trigger(Events.ERROR, {
|
|
16567
16567
|
type: ErrorTypes.MEDIA_ERROR,
|
|
16568
16568
|
details: ErrorDetails.FRAG_PARSING_ERROR,
|
|
16569
16569
|
fatal: false,
|
|
@@ -16578,7 +16578,7 @@ class BaseStreamController extends TaskLoop {
|
|
|
16578
16578
|
// For this error fallthrough. Marking parsed will allow advancing to next fragment.
|
|
16579
16579
|
}
|
|
16580
16580
|
this.state = State.PARSED;
|
|
16581
|
-
this.hls.trigger(Events
|
|
16581
|
+
this.hls.trigger(Events.FRAG_PARSED, {
|
|
16582
16582
|
frag,
|
|
16583
16583
|
part
|
|
16584
16584
|
});
|
|
@@ -16846,7 +16846,7 @@ function getAudioConfig(observer, data, offset, audioCodec) {
|
|
|
16846
16846
|
const adtsSamplingIndex = (data[offset + 2] & 0x3c) >>> 2;
|
|
16847
16847
|
if (adtsSamplingIndex > adtsSamplingRates.length - 1) {
|
|
16848
16848
|
const error = new Error(`invalid ADTS sampling index:${adtsSamplingIndex}`);
|
|
16849
|
-
observer.emit(Events
|
|
16849
|
+
observer.emit(Events.ERROR, Events.ERROR, {
|
|
16850
16850
|
type: ErrorTypes.MEDIA_ERROR,
|
|
16851
16851
|
details: ErrorDetails.FRAG_PARSING_ERROR,
|
|
16852
16852
|
fatal: true,
|
|
@@ -18959,7 +18959,7 @@ function parsePMT(data, offset, typeSupported, isSampleAes, observer) {
|
|
|
18959
18959
|
}
|
|
18960
18960
|
function emitParsingError(observer, error, levelRetry) {
|
|
18961
18961
|
logger.warn(`parsing error: ${error.message}`);
|
|
18962
|
-
observer.emit(Events
|
|
18962
|
+
observer.emit(Events.ERROR, Events.ERROR, {
|
|
18963
18963
|
type: ErrorTypes.MEDIA_ERROR,
|
|
18964
18964
|
details: ErrorDetails.FRAG_PARSING_ERROR,
|
|
18965
18965
|
fatal: false,
|
|
@@ -20189,7 +20189,7 @@ class MP4Remuxer {
|
|
|
20189
20189
|
try {
|
|
20190
20190
|
mdat = new Uint8Array(mdatSize);
|
|
20191
20191
|
} catch (err) {
|
|
20192
|
-
this.observer.emit(Events
|
|
20192
|
+
this.observer.emit(Events.ERROR, Events.ERROR, {
|
|
20193
20193
|
type: ErrorTypes.MUX_ERROR,
|
|
20194
20194
|
details: ErrorDetails.REMUX_ALLOC_ERROR,
|
|
20195
20195
|
fatal: false,
|
|
@@ -20475,7 +20475,7 @@ class MP4Remuxer {
|
|
|
20475
20475
|
try {
|
|
20476
20476
|
mdat = new Uint8Array(mdatSize);
|
|
20477
20477
|
} catch (err) {
|
|
20478
|
-
this.observer.emit(Events
|
|
20478
|
+
this.observer.emit(Events.ERROR, Events.ERROR, {
|
|
20479
20479
|
type: ErrorTypes.MUX_ERROR,
|
|
20480
20480
|
details: ErrorDetails.REMUX_ALLOC_ERROR,
|
|
20481
20481
|
fatal: false,
|
|
@@ -20982,7 +20982,7 @@ class Transmuxer {
|
|
|
20982
20982
|
const error = this.configureTransmuxer(uintData);
|
|
20983
20983
|
if (error) {
|
|
20984
20984
|
logger.warn(`[transmuxer] ${error.message}`);
|
|
20985
|
-
this.observer.emit(Events
|
|
20985
|
+
this.observer.emit(Events.ERROR, Events.ERROR, {
|
|
20986
20986
|
type: ErrorTypes.MEDIA_ERROR,
|
|
20987
20987
|
details: ErrorDetails.FRAG_PARSING_ERROR,
|
|
20988
20988
|
fatal: false,
|
|
@@ -21611,7 +21611,7 @@ class TransmuxerInterface {
|
|
|
21611
21611
|
data = data || {};
|
|
21612
21612
|
data.frag = this.frag;
|
|
21613
21613
|
data.id = this.id;
|
|
21614
|
-
if (ev === Events
|
|
21614
|
+
if (ev === Events.ERROR) {
|
|
21615
21615
|
this.error = data.error;
|
|
21616
21616
|
}
|
|
21617
21617
|
this.hls.trigger(ev, data);
|
|
@@ -21619,8 +21619,8 @@ class TransmuxerInterface {
|
|
|
21619
21619
|
|
|
21620
21620
|
// forward events to main thread
|
|
21621
21621
|
this.observer = new EventEmitter();
|
|
21622
|
-
this.observer.on(Events
|
|
21623
|
-
this.observer.on(Events
|
|
21622
|
+
this.observer.on(Events.FRAG_DECRYPTED, forwardMessage);
|
|
21623
|
+
this.observer.on(Events.ERROR, forwardMessage);
|
|
21624
21624
|
const MediaSource = getMediaSource(config.preferManagedMediaSource) || {
|
|
21625
21625
|
isTypeSupported: () => false
|
|
21626
21626
|
};
|
|
@@ -21649,7 +21649,7 @@ class TransmuxerInterface {
|
|
|
21649
21649
|
const error = new Error(`${event.message} (${event.filename}:${event.lineno})`);
|
|
21650
21650
|
config.enableWorker = false;
|
|
21651
21651
|
logger.warn(`Error in "${id}" Web Worker, fallback to inline`);
|
|
21652
|
-
this.hls.trigger(Events
|
|
21652
|
+
this.hls.trigger(Events.ERROR, {
|
|
21653
21653
|
type: ErrorTypes.OTHER_ERROR,
|
|
21654
21654
|
details: ErrorDetails.INTERNAL_EXCEPTION,
|
|
21655
21655
|
fatal: false,
|
|
@@ -21808,7 +21808,7 @@ class TransmuxerInterface {
|
|
|
21808
21808
|
return;
|
|
21809
21809
|
}
|
|
21810
21810
|
this.error = error;
|
|
21811
|
-
this.hls.trigger(Events
|
|
21811
|
+
this.hls.trigger(Events.ERROR, {
|
|
21812
21812
|
type: ErrorTypes.MEDIA_ERROR,
|
|
21813
21813
|
details: ErrorDetails.FRAG_PARSING_ERROR,
|
|
21814
21814
|
chunkMeta,
|
|
@@ -21921,39 +21921,39 @@ class AudioStreamController extends BaseStreamController {
|
|
|
21921
21921
|
const {
|
|
21922
21922
|
hls
|
|
21923
21923
|
} = this;
|
|
21924
|
-
hls.on(Events
|
|
21925
|
-
hls.on(Events
|
|
21926
|
-
hls.on(Events
|
|
21927
|
-
hls.on(Events
|
|
21928
|
-
hls.on(Events
|
|
21929
|
-
hls.on(Events
|
|
21930
|
-
hls.on(Events
|
|
21931
|
-
hls.on(Events
|
|
21932
|
-
hls.on(Events
|
|
21933
|
-
hls.on(Events
|
|
21934
|
-
hls.on(Events
|
|
21935
|
-
hls.on(Events
|
|
21936
|
-
hls.on(Events
|
|
21937
|
-
hls.on(Events
|
|
21924
|
+
hls.on(Events.MEDIA_ATTACHED, this.onMediaAttached, this);
|
|
21925
|
+
hls.on(Events.MEDIA_DETACHING, this.onMediaDetaching, this);
|
|
21926
|
+
hls.on(Events.MANIFEST_LOADING, this.onManifestLoading, this);
|
|
21927
|
+
hls.on(Events.LEVEL_LOADED, this.onLevelLoaded, this);
|
|
21928
|
+
hls.on(Events.AUDIO_TRACKS_UPDATED, this.onAudioTracksUpdated, this);
|
|
21929
|
+
hls.on(Events.AUDIO_TRACK_SWITCHING, this.onAudioTrackSwitching, this);
|
|
21930
|
+
hls.on(Events.AUDIO_TRACK_LOADED, this.onAudioTrackLoaded, this);
|
|
21931
|
+
hls.on(Events.ERROR, this.onError, this);
|
|
21932
|
+
hls.on(Events.BUFFER_RESET, this.onBufferReset, this);
|
|
21933
|
+
hls.on(Events.BUFFER_CREATED, this.onBufferCreated, this);
|
|
21934
|
+
hls.on(Events.BUFFER_FLUSHING, this.onBufferFlushing, this);
|
|
21935
|
+
hls.on(Events.BUFFER_FLUSHED, this.onBufferFlushed, this);
|
|
21936
|
+
hls.on(Events.INIT_PTS_FOUND, this.onInitPtsFound, this);
|
|
21937
|
+
hls.on(Events.FRAG_BUFFERED, this.onFragBuffered, this);
|
|
21938
21938
|
}
|
|
21939
21939
|
_unregisterListeners() {
|
|
21940
21940
|
const {
|
|
21941
21941
|
hls
|
|
21942
21942
|
} = this;
|
|
21943
|
-
hls.off(Events
|
|
21944
|
-
hls.off(Events
|
|
21945
|
-
hls.off(Events
|
|
21946
|
-
hls.off(Events
|
|
21947
|
-
hls.off(Events
|
|
21948
|
-
hls.off(Events
|
|
21949
|
-
hls.off(Events
|
|
21950
|
-
hls.off(Events
|
|
21951
|
-
hls.off(Events
|
|
21952
|
-
hls.off(Events
|
|
21953
|
-
hls.off(Events
|
|
21954
|
-
hls.off(Events
|
|
21955
|
-
hls.off(Events
|
|
21956
|
-
hls.off(Events
|
|
21943
|
+
hls.off(Events.MEDIA_ATTACHED, this.onMediaAttached, this);
|
|
21944
|
+
hls.off(Events.MEDIA_DETACHING, this.onMediaDetaching, this);
|
|
21945
|
+
hls.off(Events.MANIFEST_LOADING, this.onManifestLoading, this);
|
|
21946
|
+
hls.off(Events.LEVEL_LOADED, this.onLevelLoaded, this);
|
|
21947
|
+
hls.off(Events.AUDIO_TRACKS_UPDATED, this.onAudioTracksUpdated, this);
|
|
21948
|
+
hls.off(Events.AUDIO_TRACK_SWITCHING, this.onAudioTrackSwitching, this);
|
|
21949
|
+
hls.off(Events.AUDIO_TRACK_LOADED, this.onAudioTrackLoaded, this);
|
|
21950
|
+
hls.off(Events.ERROR, this.onError, this);
|
|
21951
|
+
hls.off(Events.BUFFER_RESET, this.onBufferReset, this);
|
|
21952
|
+
hls.off(Events.BUFFER_CREATED, this.onBufferCreated, this);
|
|
21953
|
+
hls.off(Events.BUFFER_FLUSHING, this.onBufferFlushing, this);
|
|
21954
|
+
hls.off(Events.BUFFER_FLUSHED, this.onBufferFlushed, this);
|
|
21955
|
+
hls.off(Events.INIT_PTS_FOUND, this.onInitPtsFound, this);
|
|
21956
|
+
hls.off(Events.FRAG_BUFFERED, this.onFragBuffered, this);
|
|
21957
21957
|
}
|
|
21958
21958
|
|
|
21959
21959
|
// INIT_PTS_FOUND is triggered when the video track parsed in the stream-controller has a new PTS value
|
|
@@ -22141,7 +22141,7 @@ class AudioStreamController extends BaseStreamController {
|
|
|
22141
22141
|
return;
|
|
22142
22142
|
}
|
|
22143
22143
|
if (!this.switchingTrack && this._streamEnded(bufferInfo, trackDetails)) {
|
|
22144
|
-
hls.trigger(Events
|
|
22144
|
+
hls.trigger(Events.BUFFER_EOS, {
|
|
22145
22145
|
type: 'audio'
|
|
22146
22146
|
});
|
|
22147
22147
|
this.state = State.ENDED;
|
|
@@ -22263,7 +22263,7 @@ class AudioStreamController extends BaseStreamController {
|
|
|
22263
22263
|
onLevelLoaded(event, data) {
|
|
22264
22264
|
this.mainDetails = data.details;
|
|
22265
22265
|
if (this.cachedTrackLoadedData !== null) {
|
|
22266
|
-
this.hls.trigger(Events
|
|
22266
|
+
this.hls.trigger(Events.AUDIO_TRACK_LOADED, this.cachedTrackLoadedData);
|
|
22267
22267
|
this.cachedTrackLoadedData = null;
|
|
22268
22268
|
}
|
|
22269
22269
|
}
|
|
@@ -22429,7 +22429,7 @@ class AudioStreamController extends BaseStreamController {
|
|
|
22429
22429
|
if (track) {
|
|
22430
22430
|
this.bufferedTrack = track;
|
|
22431
22431
|
this.switchingTrack = null;
|
|
22432
|
-
this.hls.trigger(Events
|
|
22432
|
+
this.hls.trigger(Events.AUDIO_TRACK_SWITCHED, _objectSpread2({}, track));
|
|
22433
22433
|
}
|
|
22434
22434
|
}
|
|
22435
22435
|
this.fragBufferedComplete(frag, part);
|
|
@@ -22543,7 +22543,7 @@ class AudioStreamController extends BaseStreamController {
|
|
|
22543
22543
|
if (initSegment != null && initSegment.tracks) {
|
|
22544
22544
|
const mapFragment = frag.initSegment || frag;
|
|
22545
22545
|
this._bufferInitSegment(level, initSegment.tracks, mapFragment, chunkMeta);
|
|
22546
|
-
hls.trigger(Events
|
|
22546
|
+
hls.trigger(Events.FRAG_PARSING_INIT_SEGMENT, {
|
|
22547
22547
|
frag: mapFragment,
|
|
22548
22548
|
id,
|
|
22549
22549
|
tracks: initSegment.tracks
|
|
@@ -22574,7 +22574,7 @@ class AudioStreamController extends BaseStreamController {
|
|
|
22574
22574
|
frag,
|
|
22575
22575
|
details
|
|
22576
22576
|
}, id3);
|
|
22577
|
-
hls.trigger(Events
|
|
22577
|
+
hls.trigger(Events.FRAG_PARSING_METADATA, emittedID3);
|
|
22578
22578
|
}
|
|
22579
22579
|
if (text) {
|
|
22580
22580
|
const emittedText = _extends({
|
|
@@ -22582,7 +22582,7 @@ class AudioStreamController extends BaseStreamController {
|
|
|
22582
22582
|
frag,
|
|
22583
22583
|
details
|
|
22584
22584
|
}, text);
|
|
22585
|
-
hls.trigger(Events
|
|
22585
|
+
hls.trigger(Events.FRAG_PARSING_USERDATA, emittedText);
|
|
22586
22586
|
}
|
|
22587
22587
|
}
|
|
22588
22588
|
_bufferInitSegment(currentLevel, tracks, frag, chunkMeta) {
|
|
@@ -22606,7 +22606,7 @@ class AudioStreamController extends BaseStreamController {
|
|
|
22606
22606
|
if (variantAudioCodecs && variantAudioCodecs.split(',').length === 1) {
|
|
22607
22607
|
track.levelCodec = variantAudioCodecs;
|
|
22608
22608
|
}
|
|
22609
|
-
this.hls.trigger(Events
|
|
22609
|
+
this.hls.trigger(Events.BUFFER_CODECS, tracks);
|
|
22610
22610
|
const initSegment = track.initSegment;
|
|
22611
22611
|
if (initSegment != null && initSegment.byteLength) {
|
|
22612
22612
|
const segment = {
|
|
@@ -22617,7 +22617,7 @@ class AudioStreamController extends BaseStreamController {
|
|
|
22617
22617
|
parent: frag.type,
|
|
22618
22618
|
data: initSegment
|
|
22619
22619
|
};
|
|
22620
|
-
this.hls.trigger(Events
|
|
22620
|
+
this.hls.trigger(Events.BUFFER_APPENDING, segment);
|
|
22621
22621
|
}
|
|
22622
22622
|
// trigger handler right now
|
|
22623
22623
|
this.tickImmediate();
|
|
@@ -22678,7 +22678,7 @@ class AudioStreamController extends BaseStreamController {
|
|
|
22678
22678
|
this.flushAudioIfNeeded(switchingTrack);
|
|
22679
22679
|
this.bufferedTrack = switchingTrack;
|
|
22680
22680
|
this.switchingTrack = null;
|
|
22681
|
-
hls.trigger(Events
|
|
22681
|
+
hls.trigger(Events.AUDIO_TRACK_SWITCHED, _objectSpread2({}, switchingTrack));
|
|
22682
22682
|
}
|
|
22683
22683
|
}
|
|
22684
22684
|
|
|
@@ -22721,23 +22721,23 @@ class AudioTrackController extends BasePlaylistController {
|
|
|
22721
22721
|
const {
|
|
22722
22722
|
hls
|
|
22723
22723
|
} = this;
|
|
22724
|
-
hls.on(Events
|
|
22725
|
-
hls.on(Events
|
|
22726
|
-
hls.on(Events
|
|
22727
|
-
hls.on(Events
|
|
22728
|
-
hls.on(Events
|
|
22729
|
-
hls.on(Events
|
|
22724
|
+
hls.on(Events.MANIFEST_LOADING, this.onManifestLoading, this);
|
|
22725
|
+
hls.on(Events.MANIFEST_PARSED, this.onManifestParsed, this);
|
|
22726
|
+
hls.on(Events.LEVEL_LOADING, this.onLevelLoading, this);
|
|
22727
|
+
hls.on(Events.LEVEL_SWITCHING, this.onLevelSwitching, this);
|
|
22728
|
+
hls.on(Events.AUDIO_TRACK_LOADED, this.onAudioTrackLoaded, this);
|
|
22729
|
+
hls.on(Events.ERROR, this.onError, this);
|
|
22730
22730
|
}
|
|
22731
22731
|
unregisterListeners() {
|
|
22732
22732
|
const {
|
|
22733
22733
|
hls
|
|
22734
22734
|
} = this;
|
|
22735
|
-
hls.off(Events
|
|
22736
|
-
hls.off(Events
|
|
22737
|
-
hls.off(Events
|
|
22738
|
-
hls.off(Events
|
|
22739
|
-
hls.off(Events
|
|
22740
|
-
hls.off(Events
|
|
22735
|
+
hls.off(Events.MANIFEST_LOADING, this.onManifestLoading, this);
|
|
22736
|
+
hls.off(Events.MANIFEST_PARSED, this.onManifestParsed, this);
|
|
22737
|
+
hls.off(Events.LEVEL_LOADING, this.onLevelLoading, this);
|
|
22738
|
+
hls.off(Events.LEVEL_SWITCHING, this.onLevelSwitching, this);
|
|
22739
|
+
hls.off(Events.AUDIO_TRACK_LOADED, this.onAudioTrackLoaded, this);
|
|
22740
|
+
hls.off(Events.ERROR, this.onError, this);
|
|
22741
22741
|
}
|
|
22742
22742
|
destroy() {
|
|
22743
22743
|
this.unregisterListeners();
|
|
@@ -22832,7 +22832,7 @@ class AudioTrackController extends BasePlaylistController {
|
|
|
22832
22832
|
audioTracks
|
|
22833
22833
|
};
|
|
22834
22834
|
this.log(`Updating audio tracks, ${audioTracks.length} track(s) found in group(s): ${audioGroups == null ? undefined : audioGroups.join(',')}`);
|
|
22835
|
-
this.hls.trigger(Events
|
|
22835
|
+
this.hls.trigger(Events.AUDIO_TRACKS_UPDATED, audioTracksUpdated);
|
|
22836
22836
|
const selectedTrackId = this.trackId;
|
|
22837
22837
|
if (trackId !== -1 && selectedTrackId === -1) {
|
|
22838
22838
|
this.setAudioTrack(trackId);
|
|
@@ -22840,7 +22840,7 @@ class AudioTrackController extends BasePlaylistController {
|
|
|
22840
22840
|
var _this$groupIds;
|
|
22841
22841
|
const error = new Error(`No audio track selected for current audio group-ID(s): ${(_this$groupIds = this.groupIds) == null ? undefined : _this$groupIds.join(',')} track count: ${audioTracks.length}`);
|
|
22842
22842
|
this.warn(error.message);
|
|
22843
|
-
this.hls.trigger(Events
|
|
22843
|
+
this.hls.trigger(Events.ERROR, {
|
|
22844
22844
|
type: ErrorTypes.MEDIA_ERROR,
|
|
22845
22845
|
details: ErrorDetails.AUDIO_TRACK_LOAD_ERROR,
|
|
22846
22846
|
fatal: true,
|
|
@@ -22940,7 +22940,7 @@ class AudioTrackController extends BasePlaylistController {
|
|
|
22940
22940
|
this.log(`Switching to audio-track ${newId} "${track.name}" lang:${track.lang} group:${track.groupId} channels:${track.channels}`);
|
|
22941
22941
|
this.trackId = newId;
|
|
22942
22942
|
this.currentTrack = track;
|
|
22943
|
-
this.hls.trigger(Events
|
|
22943
|
+
this.hls.trigger(Events.AUDIO_TRACK_SWITCHING, _objectSpread2({}, track));
|
|
22944
22944
|
// Do not reload track unless live
|
|
22945
22945
|
if (trackLoaded) {
|
|
22946
22946
|
return;
|
|
@@ -23013,7 +23013,7 @@ class AudioTrackController extends BasePlaylistController {
|
|
|
23013
23013
|
// track not retrieved yet, or live playlist we need to (re)load it
|
|
23014
23014
|
this.log(`loading audio-track playlist ${id} "${audioTrack.name}" lang:${audioTrack.lang} group:${groupId}`);
|
|
23015
23015
|
this.clearTimer();
|
|
23016
|
-
this.hls.trigger(Events
|
|
23016
|
+
this.hls.trigger(Events.AUDIO_TRACK_LOADING, {
|
|
23017
23017
|
url,
|
|
23018
23018
|
id,
|
|
23019
23019
|
groupId,
|
|
@@ -23042,33 +23042,33 @@ class SubtitleStreamController extends BaseStreamController {
|
|
|
23042
23042
|
const {
|
|
23043
23043
|
hls
|
|
23044
23044
|
} = this;
|
|
23045
|
-
hls.on(Events
|
|
23046
|
-
hls.on(Events
|
|
23047
|
-
hls.on(Events
|
|
23048
|
-
hls.on(Events
|
|
23049
|
-
hls.on(Events
|
|
23050
|
-
hls.on(Events
|
|
23051
|
-
hls.on(Events
|
|
23052
|
-
hls.on(Events
|
|
23053
|
-
hls.on(Events
|
|
23054
|
-
hls.on(Events
|
|
23055
|
-
hls.on(Events
|
|
23045
|
+
hls.on(Events.MEDIA_ATTACHED, this.onMediaAttached, this);
|
|
23046
|
+
hls.on(Events.MEDIA_DETACHING, this.onMediaDetaching, this);
|
|
23047
|
+
hls.on(Events.MANIFEST_LOADING, this.onManifestLoading, this);
|
|
23048
|
+
hls.on(Events.LEVEL_LOADED, this.onLevelLoaded, this);
|
|
23049
|
+
hls.on(Events.ERROR, this.onError, this);
|
|
23050
|
+
hls.on(Events.SUBTITLE_TRACKS_UPDATED, this.onSubtitleTracksUpdated, this);
|
|
23051
|
+
hls.on(Events.SUBTITLE_TRACK_SWITCH, this.onSubtitleTrackSwitch, this);
|
|
23052
|
+
hls.on(Events.SUBTITLE_TRACK_LOADED, this.onSubtitleTrackLoaded, this);
|
|
23053
|
+
hls.on(Events.SUBTITLE_FRAG_PROCESSED, this.onSubtitleFragProcessed, this);
|
|
23054
|
+
hls.on(Events.BUFFER_FLUSHING, this.onBufferFlushing, this);
|
|
23055
|
+
hls.on(Events.FRAG_BUFFERED, this.onFragBuffered, this);
|
|
23056
23056
|
}
|
|
23057
23057
|
_unregisterListeners() {
|
|
23058
23058
|
const {
|
|
23059
23059
|
hls
|
|
23060
23060
|
} = this;
|
|
23061
|
-
hls.off(Events
|
|
23062
|
-
hls.off(Events
|
|
23063
|
-
hls.off(Events
|
|
23064
|
-
hls.off(Events
|
|
23065
|
-
hls.off(Events
|
|
23066
|
-
hls.off(Events
|
|
23067
|
-
hls.off(Events
|
|
23068
|
-
hls.off(Events
|
|
23069
|
-
hls.off(Events
|
|
23070
|
-
hls.off(Events
|
|
23071
|
-
hls.off(Events
|
|
23061
|
+
hls.off(Events.MEDIA_ATTACHED, this.onMediaAttached, this);
|
|
23062
|
+
hls.off(Events.MEDIA_DETACHING, this.onMediaDetaching, this);
|
|
23063
|
+
hls.off(Events.MANIFEST_LOADING, this.onManifestLoading, this);
|
|
23064
|
+
hls.off(Events.LEVEL_LOADED, this.onLevelLoaded, this);
|
|
23065
|
+
hls.off(Events.ERROR, this.onError, this);
|
|
23066
|
+
hls.off(Events.SUBTITLE_TRACKS_UPDATED, this.onSubtitleTracksUpdated, this);
|
|
23067
|
+
hls.off(Events.SUBTITLE_TRACK_SWITCH, this.onSubtitleTrackSwitch, this);
|
|
23068
|
+
hls.off(Events.SUBTITLE_TRACK_LOADED, this.onSubtitleTrackLoaded, this);
|
|
23069
|
+
hls.off(Events.SUBTITLE_FRAG_PROCESSED, this.onSubtitleFragProcessed, this);
|
|
23070
|
+
hls.off(Events.BUFFER_FLUSHING, this.onBufferFlushing, this);
|
|
23071
|
+
hls.off(Events.FRAG_BUFFERED, this.onFragBuffered, this);
|
|
23072
23072
|
}
|
|
23073
23073
|
startLoad(startPosition) {
|
|
23074
23074
|
this.stopLoad();
|
|
@@ -23299,7 +23299,7 @@ class SubtitleStreamController extends BaseStreamController {
|
|
|
23299
23299
|
const startTime = performance.now();
|
|
23300
23300
|
// decrypt the subtitles
|
|
23301
23301
|
this.decrypter.decrypt(new Uint8Array(payload), decryptData.key.buffer, decryptData.iv.buffer).catch(err => {
|
|
23302
|
-
hls.trigger(Events
|
|
23302
|
+
hls.trigger(Events.ERROR, {
|
|
23303
23303
|
type: ErrorTypes.MEDIA_ERROR,
|
|
23304
23304
|
details: ErrorDetails.FRAG_DECRYPT_ERROR,
|
|
23305
23305
|
fatal: false,
|
|
@@ -23310,7 +23310,7 @@ class SubtitleStreamController extends BaseStreamController {
|
|
|
23310
23310
|
throw err;
|
|
23311
23311
|
}).then(decryptedData => {
|
|
23312
23312
|
const endTime = performance.now();
|
|
23313
|
-
hls.trigger(Events
|
|
23313
|
+
hls.trigger(Events.FRAG_DECRYPTED, {
|
|
23314
23314
|
frag,
|
|
23315
23315
|
payload: decryptedData,
|
|
23316
23316
|
stats: {
|
|
@@ -23494,27 +23494,27 @@ class SubtitleTrackController extends BasePlaylistController {
|
|
|
23494
23494
|
const {
|
|
23495
23495
|
hls
|
|
23496
23496
|
} = this;
|
|
23497
|
-
hls.on(Events
|
|
23498
|
-
hls.on(Events
|
|
23499
|
-
hls.on(Events
|
|
23500
|
-
hls.on(Events
|
|
23501
|
-
hls.on(Events
|
|
23502
|
-
hls.on(Events
|
|
23503
|
-
hls.on(Events
|
|
23504
|
-
hls.on(Events
|
|
23497
|
+
hls.on(Events.MEDIA_ATTACHED, this.onMediaAttached, this);
|
|
23498
|
+
hls.on(Events.MEDIA_DETACHING, this.onMediaDetaching, this);
|
|
23499
|
+
hls.on(Events.MANIFEST_LOADING, this.onManifestLoading, this);
|
|
23500
|
+
hls.on(Events.MANIFEST_PARSED, this.onManifestParsed, this);
|
|
23501
|
+
hls.on(Events.LEVEL_LOADING, this.onLevelLoading, this);
|
|
23502
|
+
hls.on(Events.LEVEL_SWITCHING, this.onLevelSwitching, this);
|
|
23503
|
+
hls.on(Events.SUBTITLE_TRACK_LOADED, this.onSubtitleTrackLoaded, this);
|
|
23504
|
+
hls.on(Events.ERROR, this.onError, this);
|
|
23505
23505
|
}
|
|
23506
23506
|
unregisterListeners() {
|
|
23507
23507
|
const {
|
|
23508
23508
|
hls
|
|
23509
23509
|
} = this;
|
|
23510
|
-
hls.off(Events
|
|
23511
|
-
hls.off(Events
|
|
23512
|
-
hls.off(Events
|
|
23513
|
-
hls.off(Events
|
|
23514
|
-
hls.off(Events
|
|
23515
|
-
hls.off(Events
|
|
23516
|
-
hls.off(Events
|
|
23517
|
-
hls.off(Events
|
|
23510
|
+
hls.off(Events.MEDIA_ATTACHED, this.onMediaAttached, this);
|
|
23511
|
+
hls.off(Events.MEDIA_DETACHING, this.onMediaDetaching, this);
|
|
23512
|
+
hls.off(Events.MANIFEST_LOADING, this.onManifestLoading, this);
|
|
23513
|
+
hls.off(Events.MANIFEST_PARSED, this.onManifestParsed, this);
|
|
23514
|
+
hls.off(Events.LEVEL_LOADING, this.onLevelLoading, this);
|
|
23515
|
+
hls.off(Events.LEVEL_SWITCHING, this.onLevelSwitching, this);
|
|
23516
|
+
hls.off(Events.SUBTITLE_TRACK_LOADED, this.onSubtitleTrackLoaded, this);
|
|
23517
|
+
hls.off(Events.ERROR, this.onError, this);
|
|
23518
23518
|
}
|
|
23519
23519
|
|
|
23520
23520
|
// Listen for subtitle track change, then extract the current track ID.
|
|
@@ -23647,7 +23647,7 @@ class SubtitleTrackController extends BasePlaylistController {
|
|
|
23647
23647
|
subtitleTracks
|
|
23648
23648
|
};
|
|
23649
23649
|
this.log(`Updating subtitle tracks, ${subtitleTracks.length} track(s) found in "${subtitleGroups == null ? undefined : subtitleGroups.join(',')}" group-id`);
|
|
23650
|
-
this.hls.trigger(Events
|
|
23650
|
+
this.hls.trigger(Events.SUBTITLE_TRACKS_UPDATED, subtitleTracksUpdated);
|
|
23651
23651
|
if (trackId !== -1 && this.trackId === -1) {
|
|
23652
23652
|
this.setSubtitleTrack(trackId);
|
|
23653
23653
|
}
|
|
@@ -23768,7 +23768,7 @@ class SubtitleTrackController extends BasePlaylistController {
|
|
|
23768
23768
|
}
|
|
23769
23769
|
}
|
|
23770
23770
|
this.log(`Loading subtitle playlist for id ${id}`);
|
|
23771
|
-
this.hls.trigger(Events
|
|
23771
|
+
this.hls.trigger(Events.SUBTITLE_TRACK_LOADING, {
|
|
23772
23772
|
url,
|
|
23773
23773
|
id,
|
|
23774
23774
|
groupId,
|
|
@@ -23843,7 +23843,7 @@ class SubtitleTrackController extends BasePlaylistController {
|
|
|
23843
23843
|
this.toggleTrackModes();
|
|
23844
23844
|
if (!track) {
|
|
23845
23845
|
// switch to -1
|
|
23846
|
-
this.hls.trigger(Events
|
|
23846
|
+
this.hls.trigger(Events.SUBTITLE_TRACK_SWITCH, {
|
|
23847
23847
|
id: newId
|
|
23848
23848
|
});
|
|
23849
23849
|
return;
|
|
@@ -23860,7 +23860,7 @@ class SubtitleTrackController extends BasePlaylistController {
|
|
|
23860
23860
|
type,
|
|
23861
23861
|
url
|
|
23862
23862
|
} = track;
|
|
23863
|
-
this.hls.trigger(Events
|
|
23863
|
+
this.hls.trigger(Events.SUBTITLE_TRACK_SWITCH, {
|
|
23864
23864
|
id,
|
|
23865
23865
|
groupId,
|
|
23866
23866
|
name,
|
|
@@ -23994,7 +23994,7 @@ class BufferController {
|
|
|
23994
23994
|
if (media) {
|
|
23995
23995
|
media.removeEventListener('emptied', this._onMediaEmptied);
|
|
23996
23996
|
this.updateMediaElementDuration();
|
|
23997
|
-
this.hls.trigger(Events
|
|
23997
|
+
this.hls.trigger(Events.MEDIA_ATTACHED, {
|
|
23998
23998
|
media,
|
|
23999
23999
|
mediaSource: mediaSource
|
|
24000
24000
|
});
|
|
@@ -24043,35 +24043,35 @@ class BufferController {
|
|
|
24043
24043
|
const {
|
|
24044
24044
|
hls
|
|
24045
24045
|
} = this;
|
|
24046
|
-
hls.on(Events
|
|
24047
|
-
hls.on(Events
|
|
24048
|
-
hls.on(Events
|
|
24049
|
-
hls.on(Events
|
|
24050
|
-
hls.on(Events
|
|
24051
|
-
hls.on(Events
|
|
24052
|
-
hls.on(Events
|
|
24053
|
-
hls.on(Events
|
|
24054
|
-
hls.on(Events
|
|
24055
|
-
hls.on(Events
|
|
24056
|
-
hls.on(Events
|
|
24057
|
-
hls.on(Events
|
|
24046
|
+
hls.on(Events.MEDIA_ATTACHING, this.onMediaAttaching, this);
|
|
24047
|
+
hls.on(Events.MEDIA_DETACHING, this.onMediaDetaching, this);
|
|
24048
|
+
hls.on(Events.MANIFEST_LOADING, this.onManifestLoading, this);
|
|
24049
|
+
hls.on(Events.MANIFEST_PARSED, this.onManifestParsed, this);
|
|
24050
|
+
hls.on(Events.BUFFER_RESET, this.onBufferReset, this);
|
|
24051
|
+
hls.on(Events.BUFFER_APPENDING, this.onBufferAppending, this);
|
|
24052
|
+
hls.on(Events.BUFFER_CODECS, this.onBufferCodecs, this);
|
|
24053
|
+
hls.on(Events.BUFFER_EOS, this.onBufferEos, this);
|
|
24054
|
+
hls.on(Events.BUFFER_FLUSHING, this.onBufferFlushing, this);
|
|
24055
|
+
hls.on(Events.LEVEL_UPDATED, this.onLevelUpdated, this);
|
|
24056
|
+
hls.on(Events.FRAG_PARSED, this.onFragParsed, this);
|
|
24057
|
+
hls.on(Events.FRAG_CHANGED, this.onFragChanged, this);
|
|
24058
24058
|
}
|
|
24059
24059
|
unregisterListeners() {
|
|
24060
24060
|
const {
|
|
24061
24061
|
hls
|
|
24062
24062
|
} = this;
|
|
24063
|
-
hls.off(Events
|
|
24064
|
-
hls.off(Events
|
|
24065
|
-
hls.off(Events
|
|
24066
|
-
hls.off(Events
|
|
24067
|
-
hls.off(Events
|
|
24068
|
-
hls.off(Events
|
|
24069
|
-
hls.off(Events
|
|
24070
|
-
hls.off(Events
|
|
24071
|
-
hls.off(Events
|
|
24072
|
-
hls.off(Events
|
|
24073
|
-
hls.off(Events
|
|
24074
|
-
hls.off(Events
|
|
24063
|
+
hls.off(Events.MEDIA_ATTACHING, this.onMediaAttaching, this);
|
|
24064
|
+
hls.off(Events.MEDIA_DETACHING, this.onMediaDetaching, this);
|
|
24065
|
+
hls.off(Events.MANIFEST_LOADING, this.onManifestLoading, this);
|
|
24066
|
+
hls.off(Events.MANIFEST_PARSED, this.onManifestParsed, this);
|
|
24067
|
+
hls.off(Events.BUFFER_RESET, this.onBufferReset, this);
|
|
24068
|
+
hls.off(Events.BUFFER_APPENDING, this.onBufferAppending, this);
|
|
24069
|
+
hls.off(Events.BUFFER_CODECS, this.onBufferCodecs, this);
|
|
24070
|
+
hls.off(Events.BUFFER_EOS, this.onBufferEos, this);
|
|
24071
|
+
hls.off(Events.BUFFER_FLUSHING, this.onBufferFlushing, this);
|
|
24072
|
+
hls.off(Events.LEVEL_UPDATED, this.onLevelUpdated, this);
|
|
24073
|
+
hls.off(Events.FRAG_PARSED, this.onFragParsed, this);
|
|
24074
|
+
hls.off(Events.FRAG_CHANGED, this.onFragChanged, this);
|
|
24075
24075
|
}
|
|
24076
24076
|
_initSourceBuffer() {
|
|
24077
24077
|
this.sourceBuffer = {};
|
|
@@ -24197,7 +24197,7 @@ class BufferController {
|
|
|
24197
24197
|
this.pendingTracks = {};
|
|
24198
24198
|
this.tracks = {};
|
|
24199
24199
|
}
|
|
24200
|
-
this.hls.trigger(Events
|
|
24200
|
+
this.hls.trigger(Events.MEDIA_DETACHED, undefined);
|
|
24201
24201
|
}
|
|
24202
24202
|
onBufferReset() {
|
|
24203
24203
|
this.getSourceBufferTypes().forEach(type => {
|
|
@@ -24379,7 +24379,7 @@ class BufferController {
|
|
|
24379
24379
|
this.appendErrors.audio = 0;
|
|
24380
24380
|
this.appendErrors.video = 0;
|
|
24381
24381
|
}
|
|
24382
|
-
this.hls.trigger(Events
|
|
24382
|
+
this.hls.trigger(Events.BUFFER_APPENDED, {
|
|
24383
24383
|
type,
|
|
24384
24384
|
frag,
|
|
24385
24385
|
part,
|
|
@@ -24417,7 +24417,7 @@ class BufferController {
|
|
|
24417
24417
|
event.fatal = true;
|
|
24418
24418
|
}
|
|
24419
24419
|
}
|
|
24420
|
-
hls.trigger(Events
|
|
24420
|
+
hls.trigger(Events.ERROR, event);
|
|
24421
24421
|
}
|
|
24422
24422
|
};
|
|
24423
24423
|
operationQueue.append(operation, type, !!this.pendingTracks[type]);
|
|
@@ -24433,7 +24433,7 @@ class BufferController {
|
|
|
24433
24433
|
},
|
|
24434
24434
|
onComplete: () => {
|
|
24435
24435
|
// logger.debug(`[buffer-controller]: Finished flushing ${data.startOffset} -> ${data.endOffset} for ${type} Source Buffer`);
|
|
24436
|
-
this.hls.trigger(Events
|
|
24436
|
+
this.hls.trigger(Events.BUFFER_FLUSHED, {
|
|
24437
24437
|
type
|
|
24438
24438
|
});
|
|
24439
24439
|
},
|
|
@@ -24473,7 +24473,7 @@ class BufferController {
|
|
|
24473
24473
|
part.stats.buffering.end = now;
|
|
24474
24474
|
}
|
|
24475
24475
|
const stats = part ? part.stats : frag.stats;
|
|
24476
|
-
this.hls.trigger(Events
|
|
24476
|
+
this.hls.trigger(Events.FRAG_BUFFERED, {
|
|
24477
24477
|
frag,
|
|
24478
24478
|
part,
|
|
24479
24479
|
stats,
|
|
@@ -24583,20 +24583,20 @@ class BufferController {
|
|
|
24583
24583
|
const buffered = BufferHelper.getBuffered(sb);
|
|
24584
24584
|
// when target buffer start exceeds actual buffer start
|
|
24585
24585
|
if (buffered.length > 0 && targetBackBufferPosition > buffered.start(0)) {
|
|
24586
|
-
this.hls.trigger(Events
|
|
24586
|
+
this.hls.trigger(Events.BACK_BUFFER_REACHED, {
|
|
24587
24587
|
bufferEnd: targetBackBufferPosition
|
|
24588
24588
|
});
|
|
24589
24589
|
|
|
24590
24590
|
// Support for deprecated event:
|
|
24591
24591
|
if (details != null && details.live) {
|
|
24592
|
-
this.hls.trigger(Events
|
|
24592
|
+
this.hls.trigger(Events.LIVE_BACK_BUFFER_REACHED, {
|
|
24593
24593
|
bufferEnd: targetBackBufferPosition
|
|
24594
24594
|
});
|
|
24595
24595
|
} else if (sb.ended && buffered.end(buffered.length - 1) - currentTime < targetDuration * 2) {
|
|
24596
24596
|
this.log(`Cannot flush ${type} back buffer while SourceBuffer is in ended state`);
|
|
24597
24597
|
return;
|
|
24598
24598
|
}
|
|
24599
|
-
this.hls.trigger(Events
|
|
24599
|
+
this.hls.trigger(Events.BUFFER_FLUSHING, {
|
|
24600
24600
|
startOffset: 0,
|
|
24601
24601
|
endOffset: targetBackBufferPosition,
|
|
24602
24602
|
type
|
|
@@ -24628,7 +24628,7 @@ class BufferController {
|
|
|
24628
24628
|
this.log(`Cannot flush ${type} front buffer while SourceBuffer is in ended state`);
|
|
24629
24629
|
return;
|
|
24630
24630
|
}
|
|
24631
|
-
this.hls.trigger(Events
|
|
24631
|
+
this.hls.trigger(Events.BUFFER_FLUSHING, {
|
|
24632
24632
|
startOffset: bufferStart,
|
|
24633
24633
|
endOffset: Infinity,
|
|
24634
24634
|
type
|
|
@@ -24698,7 +24698,7 @@ class BufferController {
|
|
|
24698
24698
|
// append any pending segments now !
|
|
24699
24699
|
const buffers = this.getSourceBufferTypes();
|
|
24700
24700
|
if (buffers.length) {
|
|
24701
|
-
this.hls.trigger(Events
|
|
24701
|
+
this.hls.trigger(Events.BUFFER_CREATED, {
|
|
24702
24702
|
tracks: this.tracks
|
|
24703
24703
|
});
|
|
24704
24704
|
buffers.forEach(type => {
|
|
@@ -24706,7 +24706,7 @@ class BufferController {
|
|
|
24706
24706
|
});
|
|
24707
24707
|
} else {
|
|
24708
24708
|
const error = new Error('could not create source buffer for media codec(s)');
|
|
24709
|
-
this.hls.trigger(Events
|
|
24709
|
+
this.hls.trigger(Events.ERROR, {
|
|
24710
24710
|
type: ErrorTypes.MEDIA_ERROR,
|
|
24711
24711
|
details: ErrorDetails.BUFFER_INCOMPATIBLE_CODECS_ERROR,
|
|
24712
24712
|
fatal: true,
|
|
@@ -24752,7 +24752,7 @@ class BufferController {
|
|
|
24752
24752
|
// If media was ejected check for a change. Added ranges are redundant with changes on 'updateend' event.
|
|
24753
24753
|
const removedRanges = event.removedRanges;
|
|
24754
24754
|
if (removedRanges != null && removedRanges.length) {
|
|
24755
|
-
this.hls.trigger(Events
|
|
24755
|
+
this.hls.trigger(Events.BUFFER_FLUSHED, {
|
|
24756
24756
|
type: trackName
|
|
24757
24757
|
});
|
|
24758
24758
|
}
|
|
@@ -24768,7 +24768,7 @@ class BufferController {
|
|
|
24768
24768
|
};
|
|
24769
24769
|
} catch (err) {
|
|
24770
24770
|
this.error(`error while trying to add sourceBuffer: ${err.message}`);
|
|
24771
|
-
this.hls.trigger(Events
|
|
24771
|
+
this.hls.trigger(Events.ERROR, {
|
|
24772
24772
|
type: ErrorTypes.MEDIA_ERROR,
|
|
24773
24773
|
details: ErrorDetails.BUFFER_ADD_CODEC_ERROR,
|
|
24774
24774
|
fatal: false,
|
|
@@ -24811,7 +24811,7 @@ class BufferController {
|
|
|
24811
24811
|
this.error(`${error}`, event);
|
|
24812
24812
|
// according to http://www.w3.org/TR/media-source/#sourcebuffer-append-error
|
|
24813
24813
|
// SourceBuffer errors are not necessarily fatal; if so, the HTMLMediaElement will fire an error event
|
|
24814
|
-
this.hls.trigger(Events
|
|
24814
|
+
this.hls.trigger(Events.ERROR, {
|
|
24815
24815
|
type: ErrorTypes.MEDIA_ERROR,
|
|
24816
24816
|
details: ErrorDetails.BUFFER_APPENDING_ERROR,
|
|
24817
24817
|
sourceBufferName: type,
|
|
@@ -27263,35 +27263,35 @@ class TimelineController {
|
|
|
27263
27263
|
languageCode: this.config.captionsTextTrack4LanguageCode
|
|
27264
27264
|
}
|
|
27265
27265
|
};
|
|
27266
|
-
hls.on(Events
|
|
27267
|
-
hls.on(Events
|
|
27268
|
-
hls.on(Events
|
|
27269
|
-
hls.on(Events
|
|
27270
|
-
hls.on(Events
|
|
27271
|
-
hls.on(Events
|
|
27272
|
-
hls.on(Events
|
|
27273
|
-
hls.on(Events
|
|
27274
|
-
hls.on(Events
|
|
27275
|
-
hls.on(Events
|
|
27276
|
-
hls.on(Events
|
|
27277
|
-
hls.on(Events
|
|
27266
|
+
hls.on(Events.MEDIA_ATTACHING, this.onMediaAttaching, this);
|
|
27267
|
+
hls.on(Events.MEDIA_DETACHING, this.onMediaDetaching, this);
|
|
27268
|
+
hls.on(Events.MANIFEST_LOADING, this.onManifestLoading, this);
|
|
27269
|
+
hls.on(Events.MANIFEST_LOADED, this.onManifestLoaded, this);
|
|
27270
|
+
hls.on(Events.SUBTITLE_TRACKS_UPDATED, this.onSubtitleTracksUpdated, this);
|
|
27271
|
+
hls.on(Events.FRAG_LOADING, this.onFragLoading, this);
|
|
27272
|
+
hls.on(Events.FRAG_LOADED, this.onFragLoaded, this);
|
|
27273
|
+
hls.on(Events.FRAG_PARSING_USERDATA, this.onFragParsingUserdata, this);
|
|
27274
|
+
hls.on(Events.FRAG_DECRYPTED, this.onFragDecrypted, this);
|
|
27275
|
+
hls.on(Events.INIT_PTS_FOUND, this.onInitPtsFound, this);
|
|
27276
|
+
hls.on(Events.SUBTITLE_TRACKS_CLEARED, this.onSubtitleTracksCleared, this);
|
|
27277
|
+
hls.on(Events.BUFFER_FLUSHING, this.onBufferFlushing, this);
|
|
27278
27278
|
}
|
|
27279
27279
|
destroy() {
|
|
27280
27280
|
const {
|
|
27281
27281
|
hls
|
|
27282
27282
|
} = this;
|
|
27283
|
-
hls.off(Events
|
|
27284
|
-
hls.off(Events
|
|
27285
|
-
hls.off(Events
|
|
27286
|
-
hls.off(Events
|
|
27287
|
-
hls.off(Events
|
|
27288
|
-
hls.off(Events
|
|
27289
|
-
hls.off(Events
|
|
27290
|
-
hls.off(Events
|
|
27291
|
-
hls.off(Events
|
|
27292
|
-
hls.off(Events
|
|
27293
|
-
hls.off(Events
|
|
27294
|
-
hls.off(Events
|
|
27283
|
+
hls.off(Events.MEDIA_ATTACHING, this.onMediaAttaching, this);
|
|
27284
|
+
hls.off(Events.MEDIA_DETACHING, this.onMediaDetaching, this);
|
|
27285
|
+
hls.off(Events.MANIFEST_LOADING, this.onManifestLoading, this);
|
|
27286
|
+
hls.off(Events.MANIFEST_LOADED, this.onManifestLoaded, this);
|
|
27287
|
+
hls.off(Events.SUBTITLE_TRACKS_UPDATED, this.onSubtitleTracksUpdated, this);
|
|
27288
|
+
hls.off(Events.FRAG_LOADING, this.onFragLoading, this);
|
|
27289
|
+
hls.off(Events.FRAG_LOADED, this.onFragLoaded, this);
|
|
27290
|
+
hls.off(Events.FRAG_PARSING_USERDATA, this.onFragParsingUserdata, this);
|
|
27291
|
+
hls.off(Events.FRAG_DECRYPTED, this.onFragDecrypted, this);
|
|
27292
|
+
hls.off(Events.INIT_PTS_FOUND, this.onInitPtsFound, this);
|
|
27293
|
+
hls.off(Events.SUBTITLE_TRACKS_CLEARED, this.onSubtitleTracksCleared, this);
|
|
27294
|
+
hls.off(Events.BUFFER_FLUSHING, this.onBufferFlushing, this);
|
|
27295
27295
|
// @ts-ignore
|
|
27296
27296
|
this.hls = this.config = null;
|
|
27297
27297
|
this.cea608Parser1 = this.cea608Parser2 = undefined;
|
|
@@ -27329,7 +27329,7 @@ class TimelineController {
|
|
|
27329
27329
|
this.Cues.newCue(track, startTime, endTime, screen);
|
|
27330
27330
|
} else {
|
|
27331
27331
|
const cues = this.Cues.newCue(null, startTime, endTime, screen);
|
|
27332
|
-
this.hls.trigger(Events
|
|
27332
|
+
this.hls.trigger(Events.CUES_PARSED, {
|
|
27333
27333
|
type: 'captions',
|
|
27334
27334
|
cues,
|
|
27335
27335
|
track: trackName
|
|
@@ -27359,7 +27359,7 @@ class TimelineController {
|
|
|
27359
27359
|
if (unparsedVttFrags.length) {
|
|
27360
27360
|
this.unparsedVttFrags = [];
|
|
27361
27361
|
unparsedVttFrags.forEach(frag => {
|
|
27362
|
-
this.onFragLoaded(Events
|
|
27362
|
+
this.onFragLoaded(Events.FRAG_LOADED, frag);
|
|
27363
27363
|
});
|
|
27364
27364
|
}
|
|
27365
27365
|
}
|
|
@@ -27432,7 +27432,7 @@ class TimelineController {
|
|
|
27432
27432
|
closedCaptions: trackProperties.media
|
|
27433
27433
|
};
|
|
27434
27434
|
this.nonNativeCaptionsTracks[trackName] = track;
|
|
27435
|
-
this.hls.trigger(Events
|
|
27435
|
+
this.hls.trigger(Events.NON_NATIVE_TEXT_TRACKS_FOUND, {
|
|
27436
27436
|
tracks: [track]
|
|
27437
27437
|
});
|
|
27438
27438
|
}
|
|
@@ -27553,7 +27553,7 @@ class TimelineController {
|
|
|
27553
27553
|
subtitleTrack: track
|
|
27554
27554
|
};
|
|
27555
27555
|
});
|
|
27556
|
-
this.hls.trigger(Events
|
|
27556
|
+
this.hls.trigger(Events.NON_NATIVE_TEXT_TRACKS_FOUND, {
|
|
27557
27557
|
tracks: tracksList
|
|
27558
27558
|
});
|
|
27559
27559
|
}
|
|
@@ -27640,7 +27640,7 @@ class TimelineController {
|
|
|
27640
27640
|
}
|
|
27641
27641
|
} else {
|
|
27642
27642
|
// In case there is no payload, finish unsuccessfully.
|
|
27643
|
-
this.hls.trigger(Events
|
|
27643
|
+
this.hls.trigger(Events.SUBTITLE_FRAG_PROCESSED, {
|
|
27644
27644
|
success: false,
|
|
27645
27645
|
frag,
|
|
27646
27646
|
error: new Error('Empty subtitle payload')
|
|
@@ -27652,13 +27652,13 @@ class TimelineController {
|
|
|
27652
27652
|
const hls = this.hls;
|
|
27653
27653
|
parseIMSC1(payload, this.initPTS[frag.cc], cues => {
|
|
27654
27654
|
this._appendCues(cues, frag.level);
|
|
27655
|
-
hls.trigger(Events
|
|
27655
|
+
hls.trigger(Events.SUBTITLE_FRAG_PROCESSED, {
|
|
27656
27656
|
success: true,
|
|
27657
27657
|
frag: frag
|
|
27658
27658
|
});
|
|
27659
27659
|
}, error => {
|
|
27660
27660
|
logger.log(`Failed to parse IMSC1: ${error}`);
|
|
27661
|
-
hls.trigger(Events
|
|
27661
|
+
hls.trigger(Events.SUBTITLE_FRAG_PROCESSED, {
|
|
27662
27662
|
success: false,
|
|
27663
27663
|
frag: frag,
|
|
27664
27664
|
error
|
|
@@ -27686,7 +27686,7 @@ class TimelineController {
|
|
|
27686
27686
|
const payloadWebVTT = (_frag$initSegment = frag.initSegment) != null && _frag$initSegment.data ? appendUint8Array(frag.initSegment.data, new Uint8Array(payload)) : payload;
|
|
27687
27687
|
parseWebVTT(payloadWebVTT, this.initPTS[frag.cc], this.vttCCs, frag.cc, frag.start, cues => {
|
|
27688
27688
|
this._appendCues(cues, frag.level);
|
|
27689
|
-
hls.trigger(Events
|
|
27689
|
+
hls.trigger(Events.SUBTITLE_FRAG_PROCESSED, {
|
|
27690
27690
|
success: true,
|
|
27691
27691
|
frag: frag
|
|
27692
27692
|
});
|
|
@@ -27702,7 +27702,7 @@ class TimelineController {
|
|
|
27702
27702
|
if (missingInitPTS && maxAvCC > frag.cc) {
|
|
27703
27703
|
return;
|
|
27704
27704
|
}
|
|
27705
|
-
hls.trigger(Events
|
|
27705
|
+
hls.trigger(Events.SUBTITLE_FRAG_PROCESSED, {
|
|
27706
27706
|
success: false,
|
|
27707
27707
|
frag: frag,
|
|
27708
27708
|
error
|
|
@@ -27739,7 +27739,7 @@ class TimelineController {
|
|
|
27739
27739
|
return;
|
|
27740
27740
|
}
|
|
27741
27741
|
const track = currentTrack.default ? 'default' : 'subtitles' + fragLevel;
|
|
27742
|
-
hls.trigger(Events
|
|
27742
|
+
hls.trigger(Events.CUES_PARSED, {
|
|
27743
27743
|
type: 'subtitles',
|
|
27744
27744
|
cues,
|
|
27745
27745
|
track
|
|
@@ -27751,7 +27751,7 @@ class TimelineController {
|
|
|
27751
27751
|
frag
|
|
27752
27752
|
} = data;
|
|
27753
27753
|
if (frag.type === PlaylistLevelType.SUBTITLE) {
|
|
27754
|
-
this.onFragLoaded(Events
|
|
27754
|
+
this.onFragLoaded(Events.FRAG_LOADED, data);
|
|
27755
27755
|
}
|
|
27756
27756
|
}
|
|
27757
27757
|
onSubtitleTracksCleared() {
|
|
@@ -27903,23 +27903,23 @@ class CapLevelController {
|
|
|
27903
27903
|
const {
|
|
27904
27904
|
hls
|
|
27905
27905
|
} = this;
|
|
27906
|
-
hls.on(Events
|
|
27907
|
-
hls.on(Events
|
|
27908
|
-
hls.on(Events
|
|
27909
|
-
hls.on(Events
|
|
27910
|
-
hls.on(Events
|
|
27911
|
-
hls.on(Events
|
|
27906
|
+
hls.on(Events.FPS_DROP_LEVEL_CAPPING, this.onFpsDropLevelCapping, this);
|
|
27907
|
+
hls.on(Events.MEDIA_ATTACHING, this.onMediaAttaching, this);
|
|
27908
|
+
hls.on(Events.MANIFEST_PARSED, this.onManifestParsed, this);
|
|
27909
|
+
hls.on(Events.LEVELS_UPDATED, this.onLevelsUpdated, this);
|
|
27910
|
+
hls.on(Events.BUFFER_CODECS, this.onBufferCodecs, this);
|
|
27911
|
+
hls.on(Events.MEDIA_DETACHING, this.onMediaDetaching, this);
|
|
27912
27912
|
}
|
|
27913
27913
|
unregisterListener() {
|
|
27914
27914
|
const {
|
|
27915
27915
|
hls
|
|
27916
27916
|
} = this;
|
|
27917
|
-
hls.off(Events
|
|
27918
|
-
hls.off(Events
|
|
27919
|
-
hls.off(Events
|
|
27920
|
-
hls.off(Events
|
|
27921
|
-
hls.off(Events
|
|
27922
|
-
hls.off(Events
|
|
27917
|
+
hls.off(Events.FPS_DROP_LEVEL_CAPPING, this.onFpsDropLevelCapping, this);
|
|
27918
|
+
hls.off(Events.MEDIA_ATTACHING, this.onMediaAttaching, this);
|
|
27919
|
+
hls.off(Events.MANIFEST_PARSED, this.onManifestParsed, this);
|
|
27920
|
+
hls.off(Events.LEVELS_UPDATED, this.onLevelsUpdated, this);
|
|
27921
|
+
hls.off(Events.BUFFER_CODECS, this.onBufferCodecs, this);
|
|
27922
|
+
hls.off(Events.MEDIA_DETACHING, this.onMediaDetaching, this);
|
|
27923
27923
|
}
|
|
27924
27924
|
onFpsDropLevelCapping(event, data) {
|
|
27925
27925
|
// Don't add a restricted level more than once
|
|
@@ -28115,10 +28115,10 @@ class FPSController {
|
|
|
28115
28115
|
this.streamController = streamController;
|
|
28116
28116
|
}
|
|
28117
28117
|
registerListeners() {
|
|
28118
|
-
this.hls.on(Events
|
|
28118
|
+
this.hls.on(Events.MEDIA_ATTACHING, this.onMediaAttaching, this);
|
|
28119
28119
|
}
|
|
28120
28120
|
unregisterListeners() {
|
|
28121
|
-
this.hls.off(Events
|
|
28121
|
+
this.hls.off(Events.MEDIA_ATTACHING, this.onMediaAttaching, this);
|
|
28122
28122
|
}
|
|
28123
28123
|
destroy() {
|
|
28124
28124
|
if (this.timer) {
|
|
@@ -28149,7 +28149,7 @@ class FPSController {
|
|
|
28149
28149
|
const currentDecoded = decodedFrames - this.lastDecodedFrames;
|
|
28150
28150
|
const droppedFPS = 1000 * currentDropped / currentPeriod;
|
|
28151
28151
|
const hls = this.hls;
|
|
28152
|
-
hls.trigger(Events
|
|
28152
|
+
hls.trigger(Events.FPS_DROP, {
|
|
28153
28153
|
currentDropped: currentDropped,
|
|
28154
28154
|
currentDecoded: currentDecoded,
|
|
28155
28155
|
totalDroppedFrames: droppedFrames
|
|
@@ -28161,7 +28161,7 @@ class FPSController {
|
|
|
28161
28161
|
logger.warn('drop FPS ratio greater than max allowed value for currentLevel: ' + currentLevel);
|
|
28162
28162
|
if (currentLevel > 0 && (hls.autoLevelCapping === -1 || hls.autoLevelCapping >= currentLevel)) {
|
|
28163
28163
|
currentLevel = currentLevel - 1;
|
|
28164
|
-
hls.trigger(Events
|
|
28164
|
+
hls.trigger(Events.FPS_DROP_LEVEL_CAPPING, {
|
|
28165
28165
|
level: currentLevel,
|
|
28166
28166
|
droppedLevel: hls.currentLevel
|
|
28167
28167
|
});
|
|
@@ -28369,16 +28369,16 @@ class EMEController {
|
|
|
28369
28369
|
this.onMediaEncrypted = this.onWaitingForKey = null;
|
|
28370
28370
|
}
|
|
28371
28371
|
registerListeners() {
|
|
28372
|
-
this.hls.on(Events
|
|
28373
|
-
this.hls.on(Events
|
|
28374
|
-
this.hls.on(Events
|
|
28375
|
-
this.hls.on(Events
|
|
28372
|
+
this.hls.on(Events.MEDIA_ATTACHED, this.onMediaAttached, this);
|
|
28373
|
+
this.hls.on(Events.MEDIA_DETACHED, this.onMediaDetached, this);
|
|
28374
|
+
this.hls.on(Events.MANIFEST_LOADING, this.onManifestLoading, this);
|
|
28375
|
+
this.hls.on(Events.MANIFEST_LOADED, this.onManifestLoaded, this);
|
|
28376
28376
|
}
|
|
28377
28377
|
unregisterListeners() {
|
|
28378
|
-
this.hls.off(Events
|
|
28379
|
-
this.hls.off(Events
|
|
28380
|
-
this.hls.off(Events
|
|
28381
|
-
this.hls.off(Events
|
|
28378
|
+
this.hls.off(Events.MEDIA_ATTACHED, this.onMediaAttached, this);
|
|
28379
|
+
this.hls.off(Events.MEDIA_DETACHED, this.onMediaDetached, this);
|
|
28380
|
+
this.hls.off(Events.MANIFEST_LOADING, this.onManifestLoading, this);
|
|
28381
|
+
this.hls.off(Events.MANIFEST_LOADED, this.onManifestLoaded, this);
|
|
28382
28382
|
}
|
|
28383
28383
|
getLicenseServerUrl(keySystem) {
|
|
28384
28384
|
const {
|
|
@@ -28601,9 +28601,9 @@ class EMEController {
|
|
|
28601
28601
|
}
|
|
28602
28602
|
this.error(error.message);
|
|
28603
28603
|
if (error instanceof EMEKeyError) {
|
|
28604
|
-
this.hls.trigger(Events
|
|
28604
|
+
this.hls.trigger(Events.ERROR, error.data);
|
|
28605
28605
|
} else {
|
|
28606
|
-
this.hls.trigger(Events
|
|
28606
|
+
this.hls.trigger(Events.ERROR, {
|
|
28607
28607
|
type: ErrorTypes.KEY_SYSTEM_ERROR,
|
|
28608
28608
|
details: ErrorDetails.KEY_SYSTEM_NO_KEYS,
|
|
28609
28609
|
error,
|
|
@@ -30152,15 +30152,15 @@ class CMCDController {
|
|
|
30152
30152
|
}
|
|
30153
30153
|
registerListeners() {
|
|
30154
30154
|
const hls = this.hls;
|
|
30155
|
-
hls.on(Events
|
|
30156
|
-
hls.on(Events
|
|
30157
|
-
hls.on(Events
|
|
30155
|
+
hls.on(Events.MEDIA_ATTACHED, this.onMediaAttached, this);
|
|
30156
|
+
hls.on(Events.MEDIA_DETACHED, this.onMediaDetached, this);
|
|
30157
|
+
hls.on(Events.BUFFER_CREATED, this.onBufferCreated, this);
|
|
30158
30158
|
}
|
|
30159
30159
|
unregisterListeners() {
|
|
30160
30160
|
const hls = this.hls;
|
|
30161
|
-
hls.off(Events
|
|
30162
|
-
hls.off(Events
|
|
30163
|
-
hls.off(Events
|
|
30161
|
+
hls.off(Events.MEDIA_ATTACHED, this.onMediaAttached, this);
|
|
30162
|
+
hls.off(Events.MEDIA_DETACHED, this.onMediaDetached, this);
|
|
30163
|
+
hls.off(Events.BUFFER_CREATED, this.onBufferCreated, this);
|
|
30164
30164
|
}
|
|
30165
30165
|
destroy() {
|
|
30166
30166
|
this.unregisterListeners();
|
|
@@ -30393,20 +30393,20 @@ class ContentSteeringController {
|
|
|
30393
30393
|
}
|
|
30394
30394
|
registerListeners() {
|
|
30395
30395
|
const hls = this.hls;
|
|
30396
|
-
hls.on(Events
|
|
30397
|
-
hls.on(Events
|
|
30398
|
-
hls.on(Events
|
|
30399
|
-
hls.on(Events
|
|
30396
|
+
hls.on(Events.MANIFEST_LOADING, this.onManifestLoading, this);
|
|
30397
|
+
hls.on(Events.MANIFEST_LOADED, this.onManifestLoaded, this);
|
|
30398
|
+
hls.on(Events.MANIFEST_PARSED, this.onManifestParsed, this);
|
|
30399
|
+
hls.on(Events.ERROR, this.onError, this);
|
|
30400
30400
|
}
|
|
30401
30401
|
unregisterListeners() {
|
|
30402
30402
|
const hls = this.hls;
|
|
30403
30403
|
if (!hls) {
|
|
30404
30404
|
return;
|
|
30405
30405
|
}
|
|
30406
|
-
hls.off(Events
|
|
30407
|
-
hls.off(Events
|
|
30408
|
-
hls.off(Events
|
|
30409
|
-
hls.off(Events
|
|
30406
|
+
hls.off(Events.MANIFEST_LOADING, this.onManifestLoading, this);
|
|
30407
|
+
hls.off(Events.MANIFEST_LOADED, this.onManifestLoaded, this);
|
|
30408
|
+
hls.off(Events.MANIFEST_PARSED, this.onManifestParsed, this);
|
|
30409
|
+
hls.off(Events.ERROR, this.onError, this);
|
|
30410
30410
|
}
|
|
30411
30411
|
startLoad() {
|
|
30412
30412
|
this.started = true;
|
|
@@ -30564,7 +30564,7 @@ class ContentSteeringController {
|
|
|
30564
30564
|
this.log(`Setting Pathway to "${pathwayId}"`);
|
|
30565
30565
|
this.pathwayId = pathwayId;
|
|
30566
30566
|
reassignFragmentLevelIndexes(levels);
|
|
30567
|
-
this.hls.trigger(Events
|
|
30567
|
+
this.hls.trigger(Events.LEVELS_UPDATED, {
|
|
30568
30568
|
levels
|
|
30569
30569
|
});
|
|
30570
30570
|
// Set LevelController's level to trigger LEVEL_SWITCHING which loads playlist if needed
|
|
@@ -30710,7 +30710,7 @@ class ContentSteeringController {
|
|
|
30710
30710
|
steeringManifest: steeringData,
|
|
30711
30711
|
url: url.toString()
|
|
30712
30712
|
};
|
|
30713
|
-
this.hls.trigger(Events
|
|
30713
|
+
this.hls.trigger(Events.STEERING_MANIFEST_LOADED, loadedSteeringData);
|
|
30714
30714
|
if (pathwayPriority) {
|
|
30715
30715
|
this.updatePathwayPriority(pathwayPriority);
|
|
30716
30716
|
}
|
|
@@ -31466,27 +31466,27 @@ class AudioSelector extends UICorePlugin {
|
|
|
31466
31466
|
};
|
|
31467
31467
|
}
|
|
31468
31468
|
bindEvents() {
|
|
31469
|
-
this.listenTo(this.core, Events$
|
|
31470
|
-
this.listenTo(this.core.mediaControl, Events$
|
|
31471
|
-
this.listenTo(this.core.mediaControl, Events$
|
|
31472
|
-
this.listenTo(this.core.mediaControl, Events$
|
|
31469
|
+
this.listenTo(this.core, Events$1.CORE_READY, this.bindPlaybackEvents);
|
|
31470
|
+
this.listenTo(this.core.mediaControl, Events$1.MEDIACONTROL_CONTAINERCHANGED, this.reload);
|
|
31471
|
+
this.listenTo(this.core.mediaControl, Events$1.MEDIACONTROL_RENDERED, this.render);
|
|
31472
|
+
this.listenTo(this.core.mediaControl, Events$1.MEDIACONTROL_HIDE, this.hideSelectTrackMenu);
|
|
31473
31473
|
}
|
|
31474
31474
|
unBindEvents() {
|
|
31475
31475
|
// @ts-ignore
|
|
31476
|
-
this.stopListening(this.core, Events$
|
|
31476
|
+
this.stopListening(this.core, Events$1.CORE_READY);
|
|
31477
31477
|
// @ts-ignore
|
|
31478
|
-
this.stopListening(this.core.mediaControl, Events$
|
|
31478
|
+
this.stopListening(this.core.mediaControl, Events$1.MEDIACONTROL_CONTAINERCHANGED);
|
|
31479
31479
|
// @ts-ignore
|
|
31480
|
-
this.stopListening(this.core.mediaControl, Events$
|
|
31480
|
+
this.stopListening(this.core.mediaControl, Events$1.MEDIACONTROL_RENDERED);
|
|
31481
31481
|
// @ts-ignore
|
|
31482
|
-
this.stopListening(this.core.mediaControl, Events$
|
|
31482
|
+
this.stopListening(this.core.mediaControl, Events$1.MEDIACONTROL_HIDE);
|
|
31483
31483
|
}
|
|
31484
31484
|
bindPlaybackEvents() {
|
|
31485
31485
|
// this.currentTrack = {};
|
|
31486
31486
|
// this.removeAuto = false;
|
|
31487
31487
|
this.selectedTrackId = undefined;
|
|
31488
31488
|
const currentPlayback = this.core.activePlayback;
|
|
31489
|
-
this.listenTo(currentPlayback, Events$
|
|
31489
|
+
this.listenTo(currentPlayback, Events$1.PLAYBACK_STOP, this.onStop);
|
|
31490
31490
|
this.setupAudioTrackListeners();
|
|
31491
31491
|
}
|
|
31492
31492
|
setupAudioTrackListeners() {
|
|
@@ -31495,7 +31495,7 @@ class AudioSelector extends UICorePlugin {
|
|
|
31495
31495
|
if (currentPlayback._hls) {
|
|
31496
31496
|
// TODO AUDIO_TRACKS_UPDATED
|
|
31497
31497
|
// currentPlayback._hls.on('hlsAudioTracksUpdated', (e, data) => {
|
|
31498
|
-
currentPlayback._hls.on(Events
|
|
31498
|
+
currentPlayback._hls.on(Events.AUDIO_TRACKS_UPDATED, (e, data) => {
|
|
31499
31499
|
// let id = -1;
|
|
31500
31500
|
// for (const audioTrack of data.audioTracks) {
|
|
31501
31501
|
// if (audioTrack.default) {
|
|
@@ -31515,12 +31515,12 @@ class AudioSelector extends UICorePlugin {
|
|
|
31515
31515
|
label: p.name
|
|
31516
31516
|
})), defaultTrack?.id);
|
|
31517
31517
|
});
|
|
31518
|
-
currentPlayback._hls.on(Events
|
|
31519
|
-
currentPlayback._hls.on(Events
|
|
31520
|
-
currentPlayback._hls.on(Events
|
|
31518
|
+
currentPlayback._hls.on(Events.AUDIO_TRACK_SWITCHING, this.startTrackSwitch.bind(this));
|
|
31519
|
+
currentPlayback._hls.on(Events.AUDIO_TRACK_SWITCHED, this.updateCurrentTrack.bind(this));
|
|
31520
|
+
currentPlayback._hls.on(Events.AUDIO_TRACK_LOADED, this.updateCurrentTrack.bind(this));
|
|
31521
31521
|
}
|
|
31522
31522
|
else {
|
|
31523
|
-
this.listenToOnce(currentPlayback, Events$
|
|
31523
|
+
this.listenToOnce(currentPlayback, Events$1.PLAYBACK_PLAY, () => {
|
|
31524
31524
|
const mediaElement = currentPlayback.$el.get(0);
|
|
31525
31525
|
// const { audioTracks } = currentPlayback.$el.get(0);
|
|
31526
31526
|
const audioTracks = mediaElement.audioTracks;
|
|
@@ -31717,7 +31717,7 @@ const volumeOffIcon = "<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fil
|
|
|
31717
31717
|
|
|
31718
31718
|
const pluginHtml$7 = "<div class=\"big-mute-icon-wrapper\" data-big-mute>\n <div class=\"big-mute-icon gcore-skin-border-color\" data-big-mute-icon></div>\n</div>\n";
|
|
31719
31719
|
|
|
31720
|
-
const T$
|
|
31720
|
+
const T$8 = "plugins.big_mute_button";
|
|
31721
31721
|
/**
|
|
31722
31722
|
* @beta
|
|
31723
31723
|
*/
|
|
@@ -31743,29 +31743,29 @@ class BigMuteButton extends UICorePlugin {
|
|
|
31743
31743
|
}
|
|
31744
31744
|
bindEvents() {
|
|
31745
31745
|
super.bindEvents();
|
|
31746
|
-
this.listenTo(this.core, Events$
|
|
31746
|
+
this.listenTo(this.core, Events$1.CORE_READY, this.onCoreReady);
|
|
31747
31747
|
this.listenTo(this.core, 'core:advertisement:start', this.onStartAd);
|
|
31748
31748
|
this.listenTo(this.core, 'core:advertisement:finish', this.onFinishAd);
|
|
31749
|
-
trace(`${T$
|
|
31749
|
+
trace(`${T$8} bindEvents`, {
|
|
31750
31750
|
mediacontrol: !!this.core.mediaControl,
|
|
31751
31751
|
});
|
|
31752
|
-
this.listenTo(this.core.mediaControl, Events$
|
|
31752
|
+
this.listenTo(this.core.mediaControl, Events$1.MEDIACONTROL_RENDERED, this.mediaControlRendered);
|
|
31753
31753
|
}
|
|
31754
31754
|
unBindEvents() {
|
|
31755
31755
|
// @ts-ignore
|
|
31756
|
-
this.stopListening(this.core, Events$
|
|
31756
|
+
this.stopListening(this.core, Events$1.CORE_READY);
|
|
31757
31757
|
this.stopListening(this.core, 'core:advertisement:start', this.onStartAd);
|
|
31758
31758
|
this.stopListening(this.core, 'core:advertisement:finish', this.onFinishAd);
|
|
31759
|
-
this.stopListening(this.core.mediaControl, Events$
|
|
31759
|
+
this.stopListening(this.core.mediaControl, Events$1.MEDIACONTROL_RENDERED, this.mediaControlRendered);
|
|
31760
31760
|
const container = this.core.activeContainer;
|
|
31761
31761
|
if (container) {
|
|
31762
|
-
this.stopListening(container.playback, Events$
|
|
31762
|
+
this.stopListening(container.playback, Events$1.PLAYBACK_PLAY, this.render);
|
|
31763
31763
|
}
|
|
31764
31764
|
}
|
|
31765
31765
|
onCoreReady() {
|
|
31766
|
-
this.listenTo(this.core.activeContainer, Events$
|
|
31767
|
-
this.listenTo(this.core.activeContainer, Events$
|
|
31768
|
-
this.listenTo(this.core.activePlayback, Events$
|
|
31766
|
+
this.listenTo(this.core.activeContainer, Events$1.CONTAINER_VOLUME, this.onContainerVolume);
|
|
31767
|
+
this.listenTo(this.core.activeContainer, Events$1.CONTAINER_READY, this.onContainerStart);
|
|
31768
|
+
this.listenTo(this.core.activePlayback, Events$1.PLAYBACK_ENDED, this.onPlaybackEnded);
|
|
31769
31769
|
}
|
|
31770
31770
|
onContainerVolume(value) {
|
|
31771
31771
|
if (value !== 0) {
|
|
@@ -31783,7 +31783,7 @@ class BigMuteButton extends UICorePlugin {
|
|
|
31783
31783
|
mediaControlRendered() {
|
|
31784
31784
|
const container = this.core.activeContainer;
|
|
31785
31785
|
if (container) {
|
|
31786
|
-
this.listenTo(container.playback, Events$
|
|
31786
|
+
this.listenTo(container.playback, Events$1.PLAYBACK_PLAY, () => {
|
|
31787
31787
|
this.render();
|
|
31788
31788
|
});
|
|
31789
31789
|
}
|
|
@@ -31811,7 +31811,7 @@ class BigMuteButton extends UICorePlugin {
|
|
|
31811
31811
|
}
|
|
31812
31812
|
render() {
|
|
31813
31813
|
if (this.shouldRender()) {
|
|
31814
|
-
trace(`${T$
|
|
31814
|
+
trace(`${T$8} render`, {
|
|
31815
31815
|
el: !!this.$el,
|
|
31816
31816
|
});
|
|
31817
31817
|
this.$el.html(this.template());
|
|
@@ -32762,15 +32762,25 @@ const gearIcon = "<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"n
|
|
|
32762
32762
|
const gearHdIcon = "<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <g clip-path=\"url(#clip0_28_1567)\">\n <path\n d=\"M19.14 12.94C19.18 12.64 19.2 12.33 19.2 12C19.2 11.68 19.18 11.36 19.13 11.06L21.16 9.47999C21.34 9.33999 21.39 9.06999 21.28 8.86999L19.36 5.54999C19.24 5.32999 18.99 5.25999 18.77 5.32999L16.38 6.28999C15.88 5.90999 15.35 5.58999 14.76 5.34999L14.4 2.80999C14.36 2.56999 14.16 2.39999 13.92 2.39999H10.08C9.83999 2.39999 9.64999 2.56999 9.60999 2.80999L9.24999 5.34999C8.65999 5.58999 8.11999 5.91999 7.62999 6.28999L5.23999 5.32999C5.01999 5.24999 4.76999 5.32999 4.64999 5.54999L2.73999 8.86999C2.61999 9.07999 2.65999 9.33999 2.85999 9.47999L4.88999 11.06C4.83999 11.36 4.79999 11.69 4.79999 12C4.79999 12.31 4.81999 12.64 4.86999 12.94L2.83999 14.52C2.65999 14.66 2.60999 14.93 2.71999 15.13L4.63999 18.45C4.75999 18.67 5.00999 18.74 5.22999 18.67L7.61999 17.71C8.11999 18.09 8.64999 18.41 9.23999 18.65L9.59999 21.19C9.64999 21.43 9.83999 21.6 10.08 21.6H13.92C14.16 21.6 14.36 21.43 14.39 21.19L14.75 18.65C15.34 18.41 15.88 18.09 16.37 17.71L18.76 18.67C18.98 18.75 19.23 18.67 19.35 18.45L21.27 15.13C21.39 14.91 21.34 14.66 21.15 14.52L19.14 12.94ZM12 15.6C10.02 15.6 8.39999 13.98 8.39999 12C8.39999 10.02 10.02 8.39999 12 8.39999C13.98 8.39999 15.6 10.02 15.6 12C15.6 13.98 13.98 15.6 12 15.6Z\"\n fill=\"#C9C9C9\"/>\n <rect x=\"13\" width=\"11\" height=\"7\" rx=\"1\" fill=\"#F6413B\"/>\n <path\n d=\"M14.6962 6V1.63636H15.3546V3.53267H17.53V1.63636H18.1905V6H17.53V4.0973H15.3546V6H14.6962ZM20.562 6H19.1493V1.63636H20.6067C21.0343 1.63636 21.4015 1.72372 21.7083 1.89844C22.0151 2.07173 22.2502 2.32102 22.4135 2.64631C22.5783 2.97017 22.6607 3.35866 22.6607 3.81179C22.6607 4.26634 22.5776 4.65696 22.4114 4.98366C22.2466 5.31037 22.008 5.56179 21.6955 5.73793C21.383 5.91264 21.0051 6 20.562 6ZM19.8077 5.42472H20.5257C20.8581 5.42472 21.1344 5.36222 21.3546 5.23722C21.5748 5.1108 21.7395 4.92827 21.8489 4.68963C21.9583 4.44957 22.013 4.15696 22.013 3.81179C22.013 3.46946 21.9583 3.17898 21.8489 2.94034C21.7409 2.7017 21.5797 2.5206 21.3652 2.39702C21.1507 2.27344 20.8844 2.21165 20.5662 2.21165H19.8077V5.42472Z\"\n fill=\"#C9C9C9\"/>\n </g>\n <defs>\n <clipPath id=\"clip0_28_1567\">\n <rect width=\"24\" height=\"24\" fill=\"white\"/>\n </clipPath>\n </defs>\n</svg>\n";
|
|
32763
32763
|
|
|
32764
32764
|
const VERSION$5 = '2.19.12';
|
|
32765
|
-
|
|
32766
|
-
|
|
32767
|
-
|
|
32768
|
-
|
|
32765
|
+
/**
|
|
32766
|
+
* Custom events emitted by the plugin
|
|
32767
|
+
*/
|
|
32768
|
+
var GearEvents;
|
|
32769
|
+
(function (GearEvents) {
|
|
32770
|
+
/**
|
|
32771
|
+
* Emitted when the gear menu is rendered
|
|
32772
|
+
*/
|
|
32773
|
+
GearEvents["MEDIACONTROL_GEAR_RENDERED"] = "mediacontrol:gear:rendered";
|
|
32774
|
+
})(GearEvents || (GearEvents = {}));
|
|
32769
32775
|
/**
|
|
32770
32776
|
* Adds the gear button that triggers extra options menu on the right side of the {@link MediaControl | media control} UI
|
|
32771
32777
|
* @beta
|
|
32772
32778
|
* @remarks
|
|
32773
32779
|
* The plugins provides a base for attaching custom settings UI in the gear menu
|
|
32780
|
+
*
|
|
32781
|
+
* Depends on:
|
|
32782
|
+
*
|
|
32783
|
+
* - {@link MediaControl | media_control}
|
|
32774
32784
|
*/
|
|
32775
32785
|
class BottomGear extends UICorePlugin {
|
|
32776
32786
|
isHd = false;
|
|
@@ -32778,7 +32788,7 @@ class BottomGear extends UICorePlugin {
|
|
|
32778
32788
|
* @internal
|
|
32779
32789
|
*/
|
|
32780
32790
|
get name() {
|
|
32781
|
-
return '
|
|
32791
|
+
return 'bottom_gear';
|
|
32782
32792
|
}
|
|
32783
32793
|
/**
|
|
32784
32794
|
* @internal
|
|
@@ -32816,19 +32826,30 @@ class BottomGear extends UICorePlugin {
|
|
|
32816
32826
|
bindEvents() {
|
|
32817
32827
|
const mediaControl = this.core.getPlugin('media_control');
|
|
32818
32828
|
assert(mediaControl, 'media_control plugin is required');
|
|
32819
|
-
this.listenTo(this.core, Events$
|
|
32829
|
+
this.listenTo(this.core, Events$1.CORE_ACTIVE_CONTAINER_CHANGED, this.onActiveContainerChanged);
|
|
32820
32830
|
this.listenTo(this.core, 'gear:refresh', this.refresh); // TODO use direct plugin method call
|
|
32821
|
-
this.listenTo(mediaControl, Events$
|
|
32822
|
-
this.listenTo(mediaControl, Events$
|
|
32831
|
+
this.listenTo(mediaControl, Events$1.MEDIACONTROL_RENDERED, this.render);
|
|
32832
|
+
this.listenTo(mediaControl, Events$1.MEDIACONTROL_HIDE, this.hide); // TODO mediacontrol show as well
|
|
32823
32833
|
}
|
|
32834
|
+
/**
|
|
32835
|
+
* @param name - Name of a gear menu placeholder item to attach custom UI
|
|
32836
|
+
* @returns Zepto result of the element
|
|
32837
|
+
*/
|
|
32824
32838
|
getElement(name) {
|
|
32825
32839
|
return this.core.getPlugin('media_control')?.getElement('gear')?.find(`.gear-options-list [data-${name}]`);
|
|
32826
32840
|
}
|
|
32841
|
+
/**
|
|
32842
|
+
* Replaces the content of the gear menu
|
|
32843
|
+
* @param content - Zepto result of the element
|
|
32844
|
+
*/
|
|
32845
|
+
setContent(content) {
|
|
32846
|
+
this.$el.find('.gear-wrapper').html(content);
|
|
32847
|
+
}
|
|
32827
32848
|
onActiveContainerChanged() {
|
|
32828
32849
|
this.bindContainerEvents();
|
|
32829
32850
|
}
|
|
32830
32851
|
bindContainerEvents() {
|
|
32831
|
-
this.listenTo(this.core.activeContainer, Events$
|
|
32852
|
+
this.listenTo(this.core.activeContainer, Events$1.CONTAINER_HIGHDEFINITIONUPDATE, this.highDefinitionUpdate);
|
|
32832
32853
|
}
|
|
32833
32854
|
highDefinitionUpdate(isHd) {
|
|
32834
32855
|
trace(`${this.name} highDefinitionUpdate`, { });
|
|
@@ -32856,7 +32877,7 @@ class BottomGear extends UICorePlugin {
|
|
|
32856
32877
|
this.$el.html(BottomGear.template({ icon, items }));
|
|
32857
32878
|
mediaControl.getElement('gear')?.html(this.el);
|
|
32858
32879
|
this.core.trigger('gear:rendered'); // @deprecated
|
|
32859
|
-
mediaControl.trigger(
|
|
32880
|
+
mediaControl.trigger(GearEvents.MEDIACONTROL_GEAR_RENDERED);
|
|
32860
32881
|
return this;
|
|
32861
32882
|
}
|
|
32862
32883
|
refresh() {
|
|
@@ -35019,7 +35040,7 @@ class ClapprNerdStats extends UICorePlugin {
|
|
|
35019
35040
|
shortcut;
|
|
35020
35041
|
iconPosition;
|
|
35021
35042
|
get name() {
|
|
35022
|
-
return '
|
|
35043
|
+
return 'nerd_stats';
|
|
35023
35044
|
}
|
|
35024
35045
|
get supportedVersion() {
|
|
35025
35046
|
return { min: CLAPPR_VERSION };
|
|
@@ -35066,8 +35087,8 @@ class ClapprNerdStats extends UICorePlugin {
|
|
|
35066
35087
|
bindEvents() {
|
|
35067
35088
|
const mediaControl = this.core.getPlugin('media_control');
|
|
35068
35089
|
assert(mediaControl, 'media_control plugin is required');
|
|
35069
|
-
this.listenToOnce(this.core, Events$
|
|
35070
|
-
this.listenTo(mediaControl,
|
|
35090
|
+
this.listenToOnce(this.core, Events$1.CORE_READY, this.init);
|
|
35091
|
+
this.listenTo(mediaControl, GearEvents.MEDIACONTROL_GEAR_RENDERED, this.addToBottomGear);
|
|
35071
35092
|
}
|
|
35072
35093
|
init() {
|
|
35073
35094
|
this.container = this.core.activeContainer;
|
|
@@ -35079,7 +35100,7 @@ class ClapprNerdStats extends UICorePlugin {
|
|
|
35079
35100
|
}
|
|
35080
35101
|
else {
|
|
35081
35102
|
Mousetrap.bind(this.shortcut, () => this.toggle());
|
|
35082
|
-
this.listenTo(this.core, Events$
|
|
35103
|
+
this.listenTo(this.core, Events$1.CORE_RESIZE, this.onPlayerResize);
|
|
35083
35104
|
// TODO: fix
|
|
35084
35105
|
this.listenTo(clapprStats, ClapprStatsEvents.REPORT_EVENT, this.updateMetrics);
|
|
35085
35106
|
clapprStats.setUpdateMetrics(this.updateMetrics.bind(this));
|
|
@@ -35169,7 +35190,7 @@ class ClapprNerdStats extends UICorePlugin {
|
|
|
35169
35190
|
return this;
|
|
35170
35191
|
}
|
|
35171
35192
|
addToBottomGear() {
|
|
35172
|
-
const gear = this.core.getPlugin('
|
|
35193
|
+
const gear = this.core.getPlugin('bottom_gear');
|
|
35173
35194
|
const $el = gear.getElement('nerd');
|
|
35174
35195
|
$el.html(buttonHtml$3);
|
|
35175
35196
|
const $button = $el.find('.nerd-button');
|
|
@@ -35286,22 +35307,22 @@ class ClapprStats extends ContainerPlugin {
|
|
|
35286
35307
|
};
|
|
35287
35308
|
}
|
|
35288
35309
|
bindEvents() {
|
|
35289
|
-
this.listenTo(this.container, Events$
|
|
35290
|
-
this.listenTo(this.container, Events$
|
|
35291
|
-
this.listenTo(this.container, Events$
|
|
35292
|
-
this.listenToOnce(this.container.playback, Events$
|
|
35293
|
-
this.listenToOnce(this.container, Events$
|
|
35294
|
-
this.listenTo(this.container, Events$
|
|
35295
|
-
this.listenTo(this.container, Events$
|
|
35296
|
-
this.listenToOnce(this.container, Events$
|
|
35297
|
-
this.listenTo(this.container, Events$
|
|
35298
|
-
this.listenTo(this.container, Events$
|
|
35299
|
-
this.listenTo(this.container, Events$
|
|
35300
|
-
this.listenTo(this.container, Events$
|
|
35310
|
+
this.listenTo(this.container, Events$1.CONTAINER_BITRATE, this.onBitrate);
|
|
35311
|
+
this.listenTo(this.container, Events$1.CONTAINER_STOP, this.stopReporting);
|
|
35312
|
+
this.listenTo(this.container, Events$1.CONTAINER_ENDED, this.stopReporting);
|
|
35313
|
+
this.listenToOnce(this.container.playback, Events$1.PLAYBACK_PLAY_INTENT, this.startTimers);
|
|
35314
|
+
this.listenToOnce(this.container, Events$1.CONTAINER_PLAY, this.onFirstPlaying);
|
|
35315
|
+
this.listenTo(this.container, Events$1.CONTAINER_PLAY, this.onPlay);
|
|
35316
|
+
this.listenTo(this.container, Events$1.CONTAINER_PAUSE, this.onPause);
|
|
35317
|
+
this.listenToOnce(this.container, Events$1.CONTAINER_STATE_BUFFERING, this.onBuffering);
|
|
35318
|
+
this.listenTo(this.container, Events$1.CONTAINER_SEEK, this.onSeek);
|
|
35319
|
+
this.listenTo(this.container, Events$1.CONTAINER_ERROR, () => this._inc('error'));
|
|
35320
|
+
this.listenTo(this.container, Events$1.CONTAINER_FULLSCREEN, () => this._inc('fullscreen'));
|
|
35321
|
+
this.listenTo(this.container, Events$1.CONTAINER_PLAYBACKDVRSTATECHANGED, (dvrInUse) => {
|
|
35301
35322
|
dvrInUse && this._inc('dvrUsage');
|
|
35302
35323
|
});
|
|
35303
|
-
this.listenTo(this.container.playback, Events$
|
|
35304
|
-
this.listenTo(this.container.playback, Events$
|
|
35324
|
+
this.listenTo(this.container.playback, Events$1.PLAYBACK_PROGRESS, this.onProgress);
|
|
35325
|
+
this.listenTo(this.container.playback, Events$1.PLAYBACK_TIMEUPDATE, this.onTimeUpdate);
|
|
35305
35326
|
}
|
|
35306
35327
|
destroy() {
|
|
35307
35328
|
this.stopReporting();
|
|
@@ -35338,12 +35359,12 @@ class ClapprStats extends ContainerPlugin {
|
|
|
35338
35359
|
this.start('startup');
|
|
35339
35360
|
}
|
|
35340
35361
|
onFirstPlaying() {
|
|
35341
|
-
this.listenTo(this.container, Events$
|
|
35362
|
+
this.listenTo(this.container, Events$1.CONTAINER_TIMEUPDATE, this.onContainerUpdateWhilePlaying);
|
|
35342
35363
|
this.start('watch');
|
|
35343
35364
|
this._stop('startup');
|
|
35344
35365
|
}
|
|
35345
35366
|
playAfterPause() {
|
|
35346
|
-
this.listenTo(this.container, Events$
|
|
35367
|
+
this.listenTo(this.container, Events$1.CONTAINER_TIMEUPDATE, this.onContainerUpdateWhilePlaying);
|
|
35347
35368
|
this._stop('pause');
|
|
35348
35369
|
this.start('watch');
|
|
35349
35370
|
}
|
|
@@ -35354,8 +35375,8 @@ class ClapprStats extends ContainerPlugin {
|
|
|
35354
35375
|
this._stop('watch');
|
|
35355
35376
|
this.start('pause');
|
|
35356
35377
|
this._inc('pause');
|
|
35357
|
-
this.listenToOnce(this.container, Events$
|
|
35358
|
-
this.stopListening(this.container, Events$
|
|
35378
|
+
this.listenToOnce(this.container, Events$1.CONTAINER_PLAY, this.playAfterPause);
|
|
35379
|
+
this.stopListening(this.container, Events$1.CONTAINER_TIMEUPDATE, this.onContainerUpdateWhilePlaying);
|
|
35359
35380
|
}
|
|
35360
35381
|
onSeek(e) {
|
|
35361
35382
|
this._inc('seek');
|
|
@@ -35389,11 +35410,11 @@ class ClapprStats extends ContainerPlugin {
|
|
|
35389
35410
|
onBuffering() {
|
|
35390
35411
|
this._inc('buffering');
|
|
35391
35412
|
this.start('buffering');
|
|
35392
|
-
this.listenToOnce(this.container, Events$
|
|
35413
|
+
this.listenToOnce(this.container, Events$1.CONTAINER_STATE_BUFFERFULL, this.onBufferfull);
|
|
35393
35414
|
}
|
|
35394
35415
|
onBufferfull() {
|
|
35395
35416
|
this._stop('buffering');
|
|
35396
|
-
this.listenToOnce(this.container, Events$
|
|
35417
|
+
this.listenToOnce(this.container, Events$1.CONTAINER_STATE_BUFFERING, this.onBuffering);
|
|
35397
35418
|
}
|
|
35398
35419
|
onProgress(progress) {
|
|
35399
35420
|
this.metrics.extra.buffersize = progress.current * 1000;
|
|
@@ -35559,8 +35580,8 @@ class ClickToPause extends ContainerPlugin {
|
|
|
35559
35580
|
return this.container.options.clickToPauseConfig || {};
|
|
35560
35581
|
}
|
|
35561
35582
|
bindEvents() {
|
|
35562
|
-
this.listenTo(this.container, Events$
|
|
35563
|
-
this.listenTo(this.container, Events$
|
|
35583
|
+
this.listenTo(this.container, Events$1.CONTAINER_CLICK, this.click);
|
|
35584
|
+
this.listenTo(this.container, Events$1.CONTAINER_SETTINGSUPDATE, this.settingsUpdate);
|
|
35564
35585
|
}
|
|
35565
35586
|
click() {
|
|
35566
35587
|
const isLivePlayback = this.container.getPlaybackType() === Playback.LIVE;
|
|
@@ -35679,9 +35700,9 @@ class ClipsPlugin extends UICorePlugin {
|
|
|
35679
35700
|
};
|
|
35680
35701
|
}
|
|
35681
35702
|
bindEvents() {
|
|
35682
|
-
this.listenToOnce(this.core, Events$
|
|
35683
|
-
this.listenTo(this.core.mediaControl, Events$
|
|
35684
|
-
this.listenTo(this.core, Events$
|
|
35703
|
+
this.listenToOnce(this.core, Events$1.CORE_READY, this._onCoreReady);
|
|
35704
|
+
this.listenTo(this.core.mediaControl, Events$1.MEDIACONTROL_CONTAINERCHANGED, this._onMediaControlContainerChanged);
|
|
35705
|
+
this.listenTo(this.core, Events$1.CORE_RESIZE, this.playerResize);
|
|
35685
35706
|
}
|
|
35686
35707
|
_onCoreReady() {
|
|
35687
35708
|
if (!this.options.clips) {
|
|
@@ -35692,9 +35713,9 @@ class ClipsPlugin extends UICorePlugin {
|
|
|
35692
35713
|
}
|
|
35693
35714
|
unbindEvents() {
|
|
35694
35715
|
// @ts-ignore
|
|
35695
|
-
this.stopListening(this.core, Events$
|
|
35716
|
+
this.stopListening(this.core, Events$1.CORE_READY);
|
|
35696
35717
|
// @ts-ignore
|
|
35697
|
-
this.stopListening(this.core.mediaControl, Events$
|
|
35718
|
+
this.stopListening(this.core.mediaControl, Events$1.MEDIACONTROL_CONTAINERCHANGED);
|
|
35698
35719
|
}
|
|
35699
35720
|
_onMediaControlContainerChanged() {
|
|
35700
35721
|
this._bindContainerEvents();
|
|
@@ -35707,11 +35728,11 @@ class ClipsPlugin extends UICorePlugin {
|
|
|
35707
35728
|
}
|
|
35708
35729
|
_bindContainerEvents() {
|
|
35709
35730
|
if (this._oldContainer) {
|
|
35710
|
-
this.stopListening(this._oldContainer, Events$
|
|
35731
|
+
this.stopListening(this._oldContainer, Events$1.CONTAINER_TIMEUPDATE, this.onTimeUpdate);
|
|
35711
35732
|
}
|
|
35712
35733
|
this._oldContainer = this.core.mediaControl.container;
|
|
35713
35734
|
this.durationGetting = false;
|
|
35714
|
-
this.listenTo(this.core.mediaControl.container, Events$
|
|
35735
|
+
this.listenTo(this.core.mediaControl.container, Events$1.CONTAINER_TIMEUPDATE, this.onTimeUpdate);
|
|
35715
35736
|
}
|
|
35716
35737
|
onTimeUpdate(event) {
|
|
35717
35738
|
if (!this.durationGetting) {
|
|
@@ -35843,10 +35864,10 @@ class ContextMenu extends UICorePlugin {
|
|
|
35843
35864
|
}
|
|
35844
35865
|
bindEvents() {
|
|
35845
35866
|
if (this.mediaControl) {
|
|
35846
|
-
this.listenTo(this.mediaControl, Events$
|
|
35867
|
+
this.listenTo(this.mediaControl, Events$1.MEDIACONTROL_CONTAINERCHANGED, this.containerChanged);
|
|
35847
35868
|
if (this.container) {
|
|
35848
|
-
this.listenTo(this.container, Events$
|
|
35849
|
-
this.listenTo(this.container, Events$
|
|
35869
|
+
this.listenTo(this.container, Events$1.CONTAINER_CONTEXTMENU, this.toggleContextMenu);
|
|
35870
|
+
this.listenTo(this.container, Events$1.CONTAINER_CLICK, this.hide);
|
|
35850
35871
|
}
|
|
35851
35872
|
}
|
|
35852
35873
|
$('body').on('click', this.hide.bind(this));
|
|
@@ -35904,34 +35925,34 @@ class DisableControls extends UICorePlugin {
|
|
|
35904
35925
|
}
|
|
35905
35926
|
bindEvents() {
|
|
35906
35927
|
if (this.container) {
|
|
35907
|
-
this.listenTo(this.container, Events$
|
|
35908
|
-
this.listenTo(this.container, Events$
|
|
35909
|
-
this.listenTo(this.container, Events$
|
|
35910
|
-
this.listenTo(this.container, Events$
|
|
35911
|
-
this.listenTo(this.container, Events$
|
|
35928
|
+
this.listenTo(this.container, Events$1.CONTAINER_MEDIACONTROL_ENABLE, this.enableControls);
|
|
35929
|
+
this.listenTo(this.container, Events$1.CONTAINER_PLAY, this.enableControls);
|
|
35930
|
+
this.listenTo(this.container, Events$1.CONTAINER_PAUSE, this.enableControls);
|
|
35931
|
+
this.listenTo(this.container, Events$1.CONTAINER_STOP, this.enableControls);
|
|
35932
|
+
this.listenTo(this.container, Events$1.CONTAINER_ENDED, this.enableControls);
|
|
35912
35933
|
this.listenTo(this.container, 'container:advertisement:start', this.enableControls);
|
|
35913
35934
|
}
|
|
35914
|
-
this.listenTo(this.core, Events$
|
|
35915
|
-
this.listenTo(this.core.mediaControl, Events$
|
|
35916
|
-
this.listenTo(this.core.mediaControl, Events$
|
|
35935
|
+
this.listenTo(this.core, Events$1.CORE_READY, this.onCoreReady);
|
|
35936
|
+
this.listenTo(this.core.mediaControl, Events$1.MEDIACONTROL_SHOW, this.enableControls);
|
|
35937
|
+
this.listenTo(this.core.mediaControl, Events$1.MEDIACONTROL_CONTAINERCHANGED, this.enableControls);
|
|
35917
35938
|
}
|
|
35918
35939
|
unbindEvents() {
|
|
35919
35940
|
// @ts-ignore
|
|
35920
|
-
this.stopListening(this.core, Events$
|
|
35941
|
+
this.stopListening(this.core, Events$1.CORE_READY);
|
|
35921
35942
|
// @ts-ignore
|
|
35922
|
-
this.stopListening(this.core.mediaControl, Events$
|
|
35943
|
+
this.stopListening(this.core.mediaControl, Events$1.MEDIACONTROL_SHOW);
|
|
35923
35944
|
// @ts-ignore
|
|
35924
|
-
this.stopListening(this.core.mediaControl, Events$
|
|
35945
|
+
this.stopListening(this.core.mediaControl, Events$1.MEDIACONTROL_CONTAINERCHANGED);
|
|
35925
35946
|
// @ts-ignore
|
|
35926
|
-
this.stopListening(this.container, Events$
|
|
35947
|
+
this.stopListening(this.container, Events$1.CONTAINER_MEDIACONTROL_ENABLE);
|
|
35927
35948
|
// @ts-ignore
|
|
35928
|
-
this.stopListening(this.container, Events$
|
|
35949
|
+
this.stopListening(this.container, Events$1.CONTAINER_PLAY);
|
|
35929
35950
|
// @ts-ignore
|
|
35930
|
-
this.stopListening(this.container, Events$
|
|
35951
|
+
this.stopListening(this.container, Events$1.CONTAINER_PAUSE);
|
|
35931
35952
|
// @ts-ignore
|
|
35932
|
-
this.stopListening(this.container, Events$
|
|
35953
|
+
this.stopListening(this.container, Events$1.CONTAINER_STOP);
|
|
35933
35954
|
// @ts-ignore
|
|
35934
|
-
this.stopListening(this.container, Events$
|
|
35955
|
+
this.stopListening(this.container, Events$1.CONTAINER_ENDED);
|
|
35935
35956
|
// @ts-ignore
|
|
35936
35957
|
this.stopListening(this.container, 'container:advertisement:start');
|
|
35937
35958
|
}
|
|
@@ -36010,14 +36031,14 @@ class DvrControls extends UICorePlugin {
|
|
|
36010
36031
|
this.bindCoreEvents();
|
|
36011
36032
|
this.bindContainerEvents();
|
|
36012
36033
|
if (this.core.activeContainer) {
|
|
36013
|
-
this.listenTo(this.core.activeContainer, Events$
|
|
36034
|
+
this.listenTo(this.core.activeContainer, Events$1.CONTAINER_PLAYBACKDVRSTATECHANGED, this.dvrChanged);
|
|
36014
36035
|
}
|
|
36015
36036
|
}
|
|
36016
36037
|
bindCoreEvents() {
|
|
36017
36038
|
if (this.core.mediaControl.settings) {
|
|
36018
|
-
this.listenTo(this.core.mediaControl, Events$
|
|
36019
|
-
this.listenTo(this.core.mediaControl, Events$
|
|
36020
|
-
this.listenTo(this.core, Events$
|
|
36039
|
+
this.listenTo(this.core.mediaControl, Events$1.MEDIACONTROL_CONTAINERCHANGED, this.containerChanged);
|
|
36040
|
+
this.listenTo(this.core.mediaControl, Events$1.MEDIACONTROL_RENDERED, this.settingsUpdate);
|
|
36041
|
+
this.listenTo(this.core, Events$1.CORE_OPTIONS_CHANGE, this.render);
|
|
36021
36042
|
}
|
|
36022
36043
|
else {
|
|
36023
36044
|
setTimeout(() => this.bindCoreEvents(), 100);
|
|
@@ -36025,8 +36046,8 @@ class DvrControls extends UICorePlugin {
|
|
|
36025
36046
|
}
|
|
36026
36047
|
bindContainerEvents() {
|
|
36027
36048
|
if (this.core.activeContainer) {
|
|
36028
|
-
this.listenToOnce(this.core.activeContainer, Events$
|
|
36029
|
-
this.listenTo(this.core.activeContainer, Events$
|
|
36049
|
+
this.listenToOnce(this.core.activeContainer, Events$1.CONTAINER_TIMEUPDATE, this.render);
|
|
36050
|
+
this.listenTo(this.core.activeContainer, Events$1.CONTAINER_PLAYBACKDVRSTATECHANGED, this.dvrChanged);
|
|
36030
36051
|
}
|
|
36031
36052
|
}
|
|
36032
36053
|
containerChanged() {
|
|
@@ -36126,15 +36147,15 @@ class ErrorScreen extends UICorePlugin {
|
|
|
36126
36147
|
};
|
|
36127
36148
|
}
|
|
36128
36149
|
bindEvents() {
|
|
36129
|
-
this.listenTo(this.core, Events$
|
|
36130
|
-
this.listenTo(this.core, Events$
|
|
36150
|
+
this.listenTo(this.core, Events$1.ERROR, this.onError);
|
|
36151
|
+
this.listenTo(this.core, Events$1.CORE_READY, this.onCoreReady);
|
|
36131
36152
|
this.listenTo(this.core, 'core:advertisement:start', this.onStartAd);
|
|
36132
36153
|
this.listenTo(this.core, 'core:advertisement:finish', this.onFinishAd);
|
|
36133
|
-
this.listenTo(this.core.mediaControl, Events$
|
|
36154
|
+
this.listenTo(this.core.mediaControl, Events$1.MEDIACONTROL_CONTAINERCHANGED, this.onContainerChanged);
|
|
36134
36155
|
}
|
|
36135
36156
|
onCoreReady() {
|
|
36136
36157
|
if (this.core.activePlayback) {
|
|
36137
|
-
this.listenTo(this.core.activePlayback, Events$
|
|
36158
|
+
this.listenTo(this.core.activePlayback, Events$1.PLAYBACK_PLAY, this.onPlay);
|
|
36138
36159
|
}
|
|
36139
36160
|
}
|
|
36140
36161
|
onPlay() {
|
|
@@ -36155,7 +36176,7 @@ class ErrorScreen extends UICorePlugin {
|
|
|
36155
36176
|
// @ts-ignore
|
|
36156
36177
|
this.stopListening(this.core, 'core:advertisement:finish');
|
|
36157
36178
|
// @ts-ignore
|
|
36158
|
-
this.stopListening(this.core, Events$
|
|
36179
|
+
this.stopListening(this.core, Events$1.ERROR);
|
|
36159
36180
|
}
|
|
36160
36181
|
bindReload() {
|
|
36161
36182
|
this.reloadButton = this.$el.find('.player-error-screen__reload');
|
|
@@ -36306,29 +36327,29 @@ class Favicon extends CorePlugin {
|
|
|
36306
36327
|
if (this.core.options.changeFavicon) {
|
|
36307
36328
|
if (!this.enabled) {
|
|
36308
36329
|
// @ts-ignore
|
|
36309
|
-
this.stopListening(this.core, Events$
|
|
36330
|
+
this.stopListening(this.core, Events$1.CORE_OPTIONS_CHANGE);
|
|
36310
36331
|
this.enable();
|
|
36311
36332
|
}
|
|
36312
36333
|
}
|
|
36313
36334
|
else if (this.enabled) {
|
|
36314
36335
|
this.disable();
|
|
36315
|
-
this.listenTo(this.core, Events$
|
|
36336
|
+
this.listenTo(this.core, Events$1.CORE_OPTIONS_CHANGE, this.configure);
|
|
36316
36337
|
}
|
|
36317
36338
|
}
|
|
36318
36339
|
bindEvents() {
|
|
36319
|
-
this.listenTo(this.core, Events$
|
|
36320
|
-
this.listenTo(this.core, Events$
|
|
36340
|
+
this.listenTo(this.core, Events$1.CORE_OPTIONS_CHANGE, this.configure);
|
|
36341
|
+
this.listenTo(this.core, Events$1.CORE_ACTIVE_CONTAINER_CHANGED, this.containerChanged);
|
|
36321
36342
|
this.core.activeContainer && this.containerChanged();
|
|
36322
36343
|
}
|
|
36323
36344
|
containerChanged() {
|
|
36324
36345
|
// @ts-ignore
|
|
36325
36346
|
this._container && this.stopListening(this._container);
|
|
36326
36347
|
this._container = this.core.activeContainer;
|
|
36327
|
-
this.listenTo(this._container, Events$
|
|
36328
|
-
this.listenTo(this._container, Events$
|
|
36329
|
-
this.listenTo(this._container, Events$
|
|
36330
|
-
this.listenTo(this._container, Events$
|
|
36331
|
-
this.listenTo(this._container, Events$
|
|
36348
|
+
this.listenTo(this._container, Events$1.CONTAINER_PLAY, this.setPlayIcon);
|
|
36349
|
+
this.listenTo(this._container, Events$1.CONTAINER_PAUSE, this.setPauseIcon);
|
|
36350
|
+
this.listenTo(this._container, Events$1.CONTAINER_STOP, this.resetIcon);
|
|
36351
|
+
this.listenTo(this._container, Events$1.CONTAINER_ENDED, this.resetIcon);
|
|
36352
|
+
this.listenTo(this._container, Events$1.CONTAINER_ERROR, this.resetIcon);
|
|
36332
36353
|
this.resetIcon();
|
|
36333
36354
|
}
|
|
36334
36355
|
disable() {
|
|
@@ -36415,20 +36436,20 @@ class GoogleAnalytics extends ContainerPlugin {
|
|
|
36415
36436
|
}
|
|
36416
36437
|
addEventListeners() {
|
|
36417
36438
|
if (this.container) {
|
|
36418
|
-
this.listenTo(this.container, Events$
|
|
36419
|
-
this.listenTo(this.container, Events$
|
|
36420
|
-
this.listenTo(this.container, Events$
|
|
36421
|
-
this.listenTo(this.container, Events$
|
|
36422
|
-
this.listenTo(this.container, Events$
|
|
36423
|
-
this.listenTo(this.container, Events$
|
|
36424
|
-
this.listenTo(this.container, Events$
|
|
36425
|
-
this.listenTo(this.container, Events$
|
|
36426
|
-
this.listenTo(this.container, Events$
|
|
36427
|
-
this.listenTo(this.container, Events$
|
|
36428
|
-
this.listenTo(this.container, Events$
|
|
36429
|
-
this.listenTo(this.container, Events$
|
|
36430
|
-
this.listenTo(this.container, Events$
|
|
36431
|
-
this.listenTo(this.container, Events$
|
|
36439
|
+
this.listenTo(this.container, Events$1.CONTAINER_READY, this.onReady);
|
|
36440
|
+
this.listenTo(this.container, Events$1.CONTAINER_PLAY, this.onPlay);
|
|
36441
|
+
this.listenTo(this.container, Events$1.CONTAINER_STOP, this.onStop);
|
|
36442
|
+
this.listenTo(this.container, Events$1.CONTAINER_PAUSE, this.onPause);
|
|
36443
|
+
this.listenTo(this.container, Events$1.CONTAINER_ENDED, this.onEnded);
|
|
36444
|
+
this.listenTo(this.container, Events$1.CONTAINER_STATE_BUFFERING, this.onBuffering);
|
|
36445
|
+
this.listenTo(this.container, Events$1.CONTAINER_STATE_BUFFERFULL, this.onBufferFull);
|
|
36446
|
+
this.listenTo(this.container, Events$1.CONTAINER_ERROR, this.onError);
|
|
36447
|
+
this.listenTo(this.container, Events$1.CONTAINER_PLAYBACKSTATE, this.onPlaybackChanged);
|
|
36448
|
+
this.listenTo(this.container, Events$1.CONTAINER_VOLUME, this.onVolumeChanged);
|
|
36449
|
+
this.listenTo(this.container, Events$1.CONTAINER_SEEK, this.onSeek);
|
|
36450
|
+
this.listenTo(this.container, Events$1.CONTAINER_FULLSCREEN, this.onFullscreen);
|
|
36451
|
+
this.listenTo(this.container, Events$1.CONTAINER_HIGHDEFINITIONUPDATE, this.onHD);
|
|
36452
|
+
this.listenTo(this.container, Events$1.CONTAINER_PLAYBACKDVRSTATECHANGED, this.onDVR);
|
|
36432
36453
|
}
|
|
36433
36454
|
_gaq.push([this.trackerName + '_setAccount', this.account]);
|
|
36434
36455
|
if (this.domainName) {
|
|
@@ -36690,7 +36711,7 @@ function keyName(keyCode) {
|
|
|
36690
36711
|
|
|
36691
36712
|
const buttonHtml$2 = "<button class='gplayer-lite-btn gcore-skin-text-color gear-option'>\n <% if (isHd) { %>\n <span class=\"gear-option_hd-icon\"><%= hdIcon %></span>\n <% } %>\n <span>Quality</span>\n <span class=\"gear-option_arrow-right-icon\"><%= arrowRightIcon %></span>\n <span class='gear-option_value'><%= currentText %></span>\n</button>\n";
|
|
36692
36713
|
|
|
36693
|
-
const listHtml$1 = "<button class=\"gplayer-lite-btn go-back gcore-skin-text-color\">\n <span class=\"arrow-left-icon\"><%= arrowLeftIcon %></span>\n Quality\n</button>\n<ul class=\"gear-sub-menu\">\n <% if (!removeAuto) { %>\n <li>\n <a href=\"#\" class='gear-sub-menu_btn gcore-skin-text-color' data-id=\"-1\">\n <span class=\"check-icon\"><%= checkIcon %></span>\n Auto\n </a>\n </li>\n <% } %>\n <% for (const level of levels.slice().reverse()) { %>\n <li <% if (maxLevel >= 0 && level.level > maxLevel) { %>class=\"level-disabled\"<% } %>>\n <a href=\"#\" class='gear-sub-menu_btn gcore-skin-text-color' data-id=\"<%= level.level %>\">\n <span class=\"check-icon\"><%= checkIcon %></span>\n <%= labels[level.level] %>\n </a>\n </li>\n <% } %>\n</ul>\n";
|
|
36714
|
+
const listHtml$1 = "<button class=\"gplayer-lite-btn go-back gcore-skin-text-color\">\n <span class=\"arrow-left-icon\"><%= arrowLeftIcon %></span>\n Quality\n</button>\n<ul class=\"gear-sub-menu\">\n <% if (!removeAuto) { %>\n <li>\n <a href=\"#\" class='gear-sub-menu_btn gcore-skin-text-color' data-id=\"-1\" id=\"level_selector_auto\">\n <span class=\"check-icon\"><%= checkIcon %></span>\n Auto\n </a>\n </li>\n <% } %>\n <% for (const level of levels.slice().reverse()) { %>\n <li <% if (maxLevel >= 0 && level.level > maxLevel) { %>class=\"level-disabled\"<% } %>>\n <a href=\"#\" class='gear-sub-menu_btn gcore-skin-text-color' data-id=\"<%= level.level %>\" id=\"level_selector_<%= level.level %>\">\n <span class=\"check-icon\"><%= checkIcon %></span>\n <%= labels[level.level] %>\n </a>\n </li>\n <% } %>\n</ul>\n";
|
|
36694
36715
|
|
|
36695
36716
|
const hdIcon = "<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M14.9562 8.22232H13.9961V15.1873H14.9562C15.8914 15.1873 16.766 14.8253 17.4195 14.1676C18.0786 13.5037 18.4415 12.6281 18.4415 11.7026C18.4415 9.7837 16.8781 8.22253 14.9561 8.22253L14.9562 8.22232Z\"\n fill=\"#C9C9C9\"/>\n <path\n d=\"M22.0801 4H1.91994C0.859222 4 0 4.86406 0 5.91994V17.4878C0 18.5437 0.859222 19.4078 1.91994 19.4078H22.0801C23.1408 19.4078 24 18.5437 24 17.4878V5.91994C24 4.86406 23.1408 4 22.0801 4ZM10.3975 15.3473C10.3975 15.6124 10.1827 15.8272 9.91754 15.8272C9.65216 15.8272 9.43761 15.6122 9.43761 15.3473V12.0239H5.55956V15.3473C5.55956 15.6124 5.34481 15.8272 5.07963 15.8272C4.81425 15.8272 4.5997 15.6122 4.5997 15.3473L4.59949 7.74042C4.59949 7.47524 4.81425 7.26049 5.07943 7.26049C5.34481 7.26049 5.55936 7.47544 5.55936 7.74042V11.0636H9.43741V7.74042C9.43741 7.47524 9.65216 7.26049 9.91734 7.26049C10.1827 7.26049 10.3973 7.47544 10.3973 7.74042L10.3975 15.3473ZM18.1005 14.8438C17.2652 15.6844 16.1486 16.1472 14.9561 16.1472H13.5161C13.2507 16.1472 13.0361 15.9323 13.0361 15.6673V7.74263C13.0361 7.47745 13.2509 7.26269 13.5161 7.26269H14.9561C17.4072 7.26269 19.4013 9.25438 19.4013 11.7027C19.4013 12.8835 18.9392 13.9991 18.1005 14.844V14.8438Z\"\n fill=\"#C9C9C9\"/>\n</svg>\n";
|
|
36696
36717
|
|
|
@@ -36700,14 +36721,21 @@ const arrowLeftIcon = "<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fil
|
|
|
36700
36721
|
|
|
36701
36722
|
const checkIcon = "<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n d=\"M20.5793 4.19296C20.1216 3.86696 19.4777 3.96396 19.1424 4.40896L9.37295 17.3809L4.81634 12.107C4.45222 11.683 3.80218 11.6289 3.36709 11.9839C2.932 12.3389 2.87543 12.97 3.2416 13.393L8.64165 19.643C8.83708 19.869 9.12506 20 9.42849 20C9.4398 20 9.45114 20 9.46246 19.999C9.77926 19.989 10.0724 19.838 10.2586 19.59L20.8015 5.58996C21.1368 5.14496 21.0371 4.51896 20.5793 4.19296Z\"\n fill=\"#C9C9C9\"/>\n</svg>\n";
|
|
36702
36723
|
|
|
36703
|
-
const T$
|
|
36724
|
+
const T$7 = 'plugins.level_selector';
|
|
36704
36725
|
const VERSION$4 = '2.19.4';
|
|
36705
36726
|
/**
|
|
36706
36727
|
* A {@link MediaControl | media control} plugin that provides a UI to control the quality level of the playback.
|
|
36707
36728
|
* @beta
|
|
36708
36729
|
*
|
|
36709
36730
|
* @remarks
|
|
36710
|
-
*
|
|
36731
|
+
* Depends on:
|
|
36732
|
+
*
|
|
36733
|
+
* - {@link MediaControl}
|
|
36734
|
+
*
|
|
36735
|
+
* - {@link BottomGear}
|
|
36736
|
+
*
|
|
36737
|
+
* The plugin is rendered as an item in the gear menu.
|
|
36738
|
+
*
|
|
36711
36739
|
* When clicked, it shows a list of quality levels to choose from.
|
|
36712
36740
|
*
|
|
36713
36741
|
* Configuration options:
|
|
@@ -36732,13 +36760,13 @@ class LevelSelector extends UICorePlugin {
|
|
|
36732
36760
|
removeAuto = false;
|
|
36733
36761
|
isHd = false;
|
|
36734
36762
|
isOpen = false;
|
|
36735
|
-
buttonTemplate =
|
|
36736
|
-
listTemplate =
|
|
36763
|
+
static buttonTemplate = tmpl(buttonHtml$2);
|
|
36764
|
+
static listTemplate = tmpl(listHtml$1);
|
|
36737
36765
|
/**
|
|
36738
36766
|
* @internal
|
|
36739
36767
|
*/
|
|
36740
36768
|
get name() {
|
|
36741
|
-
return '
|
|
36769
|
+
return 'level_selector';
|
|
36742
36770
|
}
|
|
36743
36771
|
/**
|
|
36744
36772
|
* @internal
|
|
@@ -36774,19 +36802,19 @@ class LevelSelector extends UICorePlugin {
|
|
|
36774
36802
|
* @internal
|
|
36775
36803
|
*/
|
|
36776
36804
|
bindEvents() {
|
|
36777
|
-
this.listenTo(this.core, Events$
|
|
36805
|
+
this.listenTo(this.core, Events$1.CORE_ACTIVE_CONTAINER_CHANGED, () => this.bindPlaybackEvents());
|
|
36778
36806
|
this.listenTo(this.core, 'gear:rendered', this.render);
|
|
36779
36807
|
}
|
|
36780
36808
|
bindPlaybackEvents() {
|
|
36781
36809
|
this.removeAuto = false;
|
|
36782
36810
|
this.isHd = false;
|
|
36783
36811
|
const activePlayback = this.core.activePlayback;
|
|
36784
|
-
this.listenTo(activePlayback, Events$
|
|
36785
|
-
this.listenTo(activePlayback, Events$
|
|
36786
|
-
this.listenTo(activePlayback, Events$
|
|
36787
|
-
this.listenTo(activePlayback, Events$
|
|
36788
|
-
this.listenTo(activePlayback, Events$
|
|
36789
|
-
this.listenTo(activePlayback, Events$
|
|
36812
|
+
this.listenTo(activePlayback, Events$1.PLAYBACK_LEVELS_AVAILABLE, (levels) => this.fillLevels(levels));
|
|
36813
|
+
this.listenTo(activePlayback, Events$1.PLAYBACK_LEVEL_SWITCH_START, this.onLevelSwitchStart);
|
|
36814
|
+
this.listenTo(activePlayback, Events$1.PLAYBACK_LEVEL_SWITCH_END, this.onLevelSwitchEnd);
|
|
36815
|
+
this.listenTo(activePlayback, Events$1.PLAYBACK_BITRATE, this.updateCurrentLevel);
|
|
36816
|
+
this.listenTo(activePlayback, Events$1.PLAYBACK_STOP, this.onStop);
|
|
36817
|
+
this.listenTo(activePlayback, Events$1.PLAYBACK_HIGHDEFINITIONUPDATE, (isHd) => {
|
|
36790
36818
|
this.isHd = isHd;
|
|
36791
36819
|
this.deferRender();
|
|
36792
36820
|
});
|
|
@@ -36796,8 +36824,8 @@ class LevelSelector extends UICorePlugin {
|
|
|
36796
36824
|
}
|
|
36797
36825
|
onStop() {
|
|
36798
36826
|
const currentPlayback = this.core.activePlayback;
|
|
36799
|
-
this.listenToOnce(currentPlayback, Events$
|
|
36800
|
-
trace(`${T$
|
|
36827
|
+
this.listenToOnce(currentPlayback, Events$1.PLAYBACK_PLAY, () => {
|
|
36828
|
+
trace(`${T$7} on PLAYBACK_PLAY after stop`, { selectedLevelId: this.selectedLevelId });
|
|
36801
36829
|
if (currentPlayback.getPlaybackType() === 'live') {
|
|
36802
36830
|
if (this.selectedLevelId !== -1) {
|
|
36803
36831
|
currentPlayback.currentLevel = this.selectedLevelId;
|
|
@@ -36824,6 +36852,7 @@ class LevelSelector extends UICorePlugin {
|
|
|
36824
36852
|
* @internal
|
|
36825
36853
|
*/
|
|
36826
36854
|
render() {
|
|
36855
|
+
assert(this.core.getPlugin('bottom_gear'), 'bottom_gear plugin is required');
|
|
36827
36856
|
if (!this.shouldRender()) {
|
|
36828
36857
|
return this;
|
|
36829
36858
|
}
|
|
@@ -36831,28 +36860,20 @@ class LevelSelector extends UICorePlugin {
|
|
|
36831
36860
|
return this;
|
|
36832
36861
|
}
|
|
36833
36862
|
renderButton() {
|
|
36834
|
-
if (!this.buttonTemplate) {
|
|
36835
|
-
this.buttonTemplate = tmpl(buttonHtml$2);
|
|
36836
|
-
}
|
|
36837
36863
|
if (!this.isOpen) {
|
|
36838
|
-
const html =
|
|
36864
|
+
const html = LevelSelector.buttonTemplate({
|
|
36839
36865
|
arrowRightIcon,
|
|
36840
36866
|
currentText: this.currentText,
|
|
36841
36867
|
isHd: this.isHd,
|
|
36842
36868
|
hdIcon,
|
|
36843
36869
|
});
|
|
36844
36870
|
this.$el.html(html);
|
|
36845
|
-
const
|
|
36846
|
-
|
|
36847
|
-
?.find('.gear-options-list [data-quality]')
|
|
36848
|
-
?.html(this.el);
|
|
36871
|
+
const gear = this.core.getPlugin('bottom_gear');
|
|
36872
|
+
gear.getElement('quality')?.html(this.el);
|
|
36849
36873
|
}
|
|
36850
36874
|
}
|
|
36851
36875
|
renderDropdown() {
|
|
36852
|
-
|
|
36853
|
-
this.listTemplate = tmpl(listHtml$1);
|
|
36854
|
-
}
|
|
36855
|
-
const html = this.listTemplate({
|
|
36876
|
+
const html = LevelSelector.listTemplate({
|
|
36856
36877
|
arrowLeftIcon,
|
|
36857
36878
|
checkIcon,
|
|
36858
36879
|
labels: this.levelLabels,
|
|
@@ -36861,8 +36882,8 @@ class LevelSelector extends UICorePlugin {
|
|
|
36861
36882
|
removeAuto: this.removeAuto,
|
|
36862
36883
|
});
|
|
36863
36884
|
this.$el.html(html);
|
|
36864
|
-
const
|
|
36865
|
-
|
|
36885
|
+
const gear = this.core.getPlugin('bottom_gear');
|
|
36886
|
+
gear?.setContent(this.el);
|
|
36866
36887
|
}
|
|
36867
36888
|
get maxLevel() {
|
|
36868
36889
|
const maxRes = this.core.options.levelSelector?.restrictResolution;
|
|
@@ -36959,7 +36980,7 @@ class LevelSelector extends UICorePlugin {
|
|
|
36959
36980
|
this.highlightCurrentLevel();
|
|
36960
36981
|
}
|
|
36961
36982
|
highlightCurrentLevel() {
|
|
36962
|
-
trace(`${T$
|
|
36983
|
+
trace(`${T$7} highlightCurrentLevel`, {
|
|
36963
36984
|
selectedLevelId: this.selectedLevelId,
|
|
36964
36985
|
});
|
|
36965
36986
|
this.allLevelElements().removeClass('current');
|
|
@@ -37046,10 +37067,10 @@ class Logo extends UIContainerPlugin {
|
|
|
37046
37067
|
}
|
|
37047
37068
|
bindEvents() {
|
|
37048
37069
|
window.addEventListener('resize', this.setPosition);
|
|
37049
|
-
this.listenTo(this.container, Events$
|
|
37050
|
-
this.listenTo(this.container, Events$
|
|
37051
|
-
this.listenTo(this.container, Events$
|
|
37052
|
-
this.listenTo(this.container, Events$
|
|
37070
|
+
this.listenTo(this.container, Events$1.CONTAINER_RESIZE, this.setPosition);
|
|
37071
|
+
this.listenTo(this.container, Events$1.CONTAINER_STOP, this.onStop);
|
|
37072
|
+
this.listenTo(this.container, Events$1.CONTAINER_PLAY, this.onPlay);
|
|
37073
|
+
this.listenTo(this.container, Events$1.CONTAINER_LOADEDMETADATA, this.setPosition);
|
|
37053
37074
|
}
|
|
37054
37075
|
stopListening() {
|
|
37055
37076
|
window.removeEventListener('resize', this.setPosition);
|
|
@@ -37308,14 +37329,14 @@ class MediaControl extends UICorePlugin {
|
|
|
37308
37329
|
* @deprecated
|
|
37309
37330
|
*/
|
|
37310
37331
|
get container() {
|
|
37311
|
-
return this.core
|
|
37332
|
+
return this.core.activeContainer;
|
|
37312
37333
|
}
|
|
37313
37334
|
/**
|
|
37314
37335
|
* @internal
|
|
37315
37336
|
* @deprecated
|
|
37316
37337
|
*/
|
|
37317
37338
|
get playback() {
|
|
37318
|
-
return this.core
|
|
37339
|
+
return this.core.activePlayback;
|
|
37319
37340
|
}
|
|
37320
37341
|
/**
|
|
37321
37342
|
* @internal
|
|
@@ -37402,13 +37423,12 @@ class MediaControl extends UICorePlugin {
|
|
|
37402
37423
|
bindEvents() {
|
|
37403
37424
|
// @ts-ignore
|
|
37404
37425
|
this.stopListening();
|
|
37405
|
-
this.listenTo(this.core, Events$
|
|
37406
|
-
this.listenTo(this.core, Events$
|
|
37407
|
-
this.listenTo(this.core, Events$
|
|
37408
|
-
this.listenTo(this.core, Events$
|
|
37409
|
-
this.listenTo(this.core, Events$
|
|
37410
|
-
this.listenTo(this.core, Events$
|
|
37411
|
-
this.bindContainerEvents();
|
|
37426
|
+
this.listenTo(this.core, Events$1.CORE_ACTIVE_CONTAINER_CHANGED, this.onActiveContainerChanged);
|
|
37427
|
+
this.listenTo(this.core, Events$1.CORE_MOUSE_MOVE, this.show);
|
|
37428
|
+
this.listenTo(this.core, Events$1.CORE_MOUSE_LEAVE, () => this.hide(this.options.hideMediaControlDelay));
|
|
37429
|
+
this.listenTo(this.core, Events$1.CORE_FULLSCREEN, this.show);
|
|
37430
|
+
this.listenTo(this.core, Events$1.CORE_OPTIONS_CHANGE, this.configure);
|
|
37431
|
+
this.listenTo(this.core, Events$1.CORE_RESIZE, this.playerResize);
|
|
37412
37432
|
this.listenTo(this.core, 'core:advertisement:start', this.onStartAd);
|
|
37413
37433
|
this.listenTo(this.core, 'core:advertisement:finish', this.onFinishAd);
|
|
37414
37434
|
// const has360 = this.core?.getPlugin('video_360');
|
|
@@ -37432,26 +37452,23 @@ class MediaControl extends UICorePlugin {
|
|
|
37432
37452
|
// }
|
|
37433
37453
|
}
|
|
37434
37454
|
bindContainerEvents() {
|
|
37435
|
-
|
|
37436
|
-
|
|
37437
|
-
|
|
37438
|
-
this.listenTo(this.
|
|
37439
|
-
this.listenTo(this.
|
|
37440
|
-
this.listenTo(this.
|
|
37441
|
-
this.listenTo(this.
|
|
37442
|
-
this.listenTo(this.
|
|
37443
|
-
this.listenTo(this.
|
|
37444
|
-
this.listenTo(this.
|
|
37445
|
-
this.listenTo(this.
|
|
37446
|
-
this.listenTo(this.
|
|
37447
|
-
this.listenTo(this.
|
|
37448
|
-
this.listenTo(this.
|
|
37449
|
-
|
|
37450
|
-
this.listenTo(this.container, Events$2.CONTAINER_VOLUME, this.onVolumeChanged);
|
|
37451
|
-
this.listenTo(this.container, Events$2.CONTAINER_OPTIONS_CHANGE, this.setInitialVolume);
|
|
37452
|
-
if (this.container.playback.el.nodeName.toLowerCase() === 'video') {
|
|
37455
|
+
this.listenTo(this.core.activeContainer, Events$1.CONTAINER_PLAY, this.changeTogglePlay);
|
|
37456
|
+
this.listenTo(this.core.activeContainer, Events$1.CONTAINER_PAUSE, this.changeTogglePlay);
|
|
37457
|
+
this.listenTo(this.core.activeContainer, Events$1.CONTAINER_STOP, this.changeTogglePlay);
|
|
37458
|
+
this.listenTo(this.core.activeContainer, Events$1.CONTAINER_DBLCLICK, this.toggleFullscreen);
|
|
37459
|
+
this.listenTo(this.core.activeContainer, Events$1.CONTAINER_TIMEUPDATE, this.onTimeUpdate);
|
|
37460
|
+
this.listenTo(this.core.activeContainer, Events$1.CONTAINER_PROGRESS, this.updateProgressBar);
|
|
37461
|
+
this.listenTo(this.core.activeContainer, Events$1.CONTAINER_SETTINGSUPDATE, this.settingsUpdate);
|
|
37462
|
+
this.listenTo(this.core.activeContainer, Events$1.CONTAINER_PLAYBACKDVRSTATECHANGED, this.settingsUpdate);
|
|
37463
|
+
this.listenTo(this.core.activeContainer, Events$1.CONTAINER_HIGHDEFINITIONUPDATE, this.highDefinitionUpdate);
|
|
37464
|
+
this.listenTo(this.core.activeContainer, Events$1.CONTAINER_MEDIACONTROL_DISABLE, this.disable);
|
|
37465
|
+
this.listenTo(this.core.activeContainer, Events$1.CONTAINER_MEDIACONTROL_ENABLE, this.enable);
|
|
37466
|
+
this.listenTo(this.core.activeContainer, Events$1.CONTAINER_ENDED, this.ended);
|
|
37467
|
+
this.listenTo(this.core.activeContainer, Events$1.CONTAINER_VOLUME, this.onVolumeChanged);
|
|
37468
|
+
this.listenTo(this.core.activeContainer, Events$1.CONTAINER_OPTIONS_CHANGE, this.setInitialVolume);
|
|
37469
|
+
if (this.core.activePlayback.el.nodeName.toLowerCase() === 'video') {
|
|
37453
37470
|
// wait until the metadata has loaded and then check if fullscreen on video tag is supported
|
|
37454
|
-
this.listenToOnce(this.
|
|
37471
|
+
this.listenToOnce(this.core.activeContainer, Events$1.CONTAINER_LOADEDMETADATA, this.onLoadedMetadataOnVideoTag);
|
|
37455
37472
|
}
|
|
37456
37473
|
}
|
|
37457
37474
|
/**
|
|
@@ -37486,7 +37503,7 @@ class MediaControl extends UICorePlugin {
|
|
|
37486
37503
|
this.updateVolumeUI();
|
|
37487
37504
|
}
|
|
37488
37505
|
onLoadedMetadataOnVideoTag(event) {
|
|
37489
|
-
const video = this.
|
|
37506
|
+
const video = this.core.activePlayback?.el;
|
|
37490
37507
|
// video.webkitSupportsFullscreen is deprecated but iOS appears to only use this
|
|
37491
37508
|
// see https://github.com/clappr/clappr/issues/1127
|
|
37492
37509
|
if (!Fullscreen.fullscreenEnabled() && video.webkitSupportsFullscreen) {
|
|
@@ -37550,12 +37567,12 @@ class MediaControl extends UICorePlugin {
|
|
|
37550
37567
|
if (this.container && this.container.isPlaying()) {
|
|
37551
37568
|
this.$playPauseToggle?.append(pauseIcon);
|
|
37552
37569
|
this.$playStopToggle?.append(pauseIcon);
|
|
37553
|
-
this.trigger(Events$
|
|
37570
|
+
this.trigger(Events$1.MEDIACONTROL_PLAYING);
|
|
37554
37571
|
}
|
|
37555
37572
|
else {
|
|
37556
37573
|
this.$playPauseToggle?.append(playIcon);
|
|
37557
37574
|
this.$playStopToggle?.append(playIcon);
|
|
37558
|
-
this.trigger(Events$
|
|
37575
|
+
this.trigger(Events$1.MEDIACONTROL_NOTPLAYING);
|
|
37559
37576
|
if (Browser.isMobile) {
|
|
37560
37577
|
this.show();
|
|
37561
37578
|
}
|
|
@@ -37573,10 +37590,10 @@ class MediaControl extends UICorePlugin {
|
|
|
37573
37590
|
this.$seekBarHover.css({ left: offsetX });
|
|
37574
37591
|
}
|
|
37575
37592
|
}
|
|
37576
|
-
this.trigger(Events$
|
|
37593
|
+
this.trigger(Events$1.MEDIACONTROL_MOUSEMOVE_SEEKBAR, event);
|
|
37577
37594
|
}
|
|
37578
37595
|
mouseleaveOnSeekBar(event) {
|
|
37579
|
-
this.trigger(Events$
|
|
37596
|
+
this.trigger(Events$1.MEDIACONTROL_MOUSELEAVE_SEEKBAR, event);
|
|
37580
37597
|
}
|
|
37581
37598
|
onVolumeClick(event) {
|
|
37582
37599
|
this.setVolume(this.getVolumeFromUIEvent(event));
|
|
@@ -37694,13 +37711,13 @@ class MediaControl extends UICorePlugin {
|
|
|
37694
37711
|
this.container.setVolume(value);
|
|
37695
37712
|
}
|
|
37696
37713
|
else {
|
|
37697
|
-
this.listenToOnce(this.container, Events$
|
|
37714
|
+
this.listenToOnce(this.container, Events$1.CONTAINER_READY, () => {
|
|
37698
37715
|
this.container.setVolume(value);
|
|
37699
37716
|
});
|
|
37700
37717
|
}
|
|
37701
37718
|
};
|
|
37702
37719
|
if (!this.container) {
|
|
37703
|
-
this.listenToOnce(this, Events$
|
|
37720
|
+
this.listenToOnce(this, Events$1.MEDIACONTROL_CONTAINERCHANGED, () => setWhenContainerReady());
|
|
37704
37721
|
}
|
|
37705
37722
|
else {
|
|
37706
37723
|
setWhenContainerReady();
|
|
@@ -37708,7 +37725,7 @@ class MediaControl extends UICorePlugin {
|
|
|
37708
37725
|
}
|
|
37709
37726
|
toggleFullscreen() {
|
|
37710
37727
|
if (!Browser.isMobile) {
|
|
37711
|
-
this.trigger(Events$
|
|
37728
|
+
this.trigger(Events$1.MEDIACONTROL_FULLSCREEN, this.name);
|
|
37712
37729
|
this.container.fullscreen();
|
|
37713
37730
|
this.core.toggleFullscreen();
|
|
37714
37731
|
this.resetUserKeepVisible();
|
|
@@ -37716,24 +37733,25 @@ class MediaControl extends UICorePlugin {
|
|
|
37716
37733
|
}
|
|
37717
37734
|
onActiveContainerChanged() {
|
|
37718
37735
|
this.fullScreenOnVideoTagSupported = null;
|
|
37719
|
-
this.bindEvents();
|
|
37720
37736
|
// set the new container to match the volume of the last one
|
|
37721
37737
|
this.setInitialVolume();
|
|
37722
37738
|
this.changeTogglePlay();
|
|
37723
37739
|
this.bindContainerEvents();
|
|
37724
37740
|
this.settingsUpdate();
|
|
37725
|
-
this.
|
|
37726
|
-
this.
|
|
37727
|
-
this.
|
|
37728
|
-
this.trigger(Events$
|
|
37729
|
-
if (this.
|
|
37730
|
-
this.
|
|
37741
|
+
this.core.activeContainer &&
|
|
37742
|
+
this.core.activeContainer.trigger(Events$1.CONTAINER_PLAYBACKDVRSTATECHANGED, this.core.activeContainer.isDvrInUse());
|
|
37743
|
+
this.core.activeContainer && this.core.activeContainer.mediaControlDisabled && this.disable();
|
|
37744
|
+
this.trigger(Events$1.MEDIACONTROL_CONTAINERCHANGED);
|
|
37745
|
+
if (this.core.activeContainer.$el) {
|
|
37746
|
+
this.core.activeContainer.$el.addClass('container-skin-1');
|
|
37731
37747
|
}
|
|
37732
37748
|
if (this.options.cropVideo) {
|
|
37733
|
-
this.
|
|
37749
|
+
this.core.activeContainer.$el.addClass('crop-video');
|
|
37734
37750
|
}
|
|
37735
|
-
|
|
37751
|
+
// TODO handle by the spinner itself
|
|
37752
|
+
const spinnerPlugin = this.core.activeContainer.getPlugin('spinner');
|
|
37736
37753
|
spinnerPlugin?.$el.find('div').addClass('gcore-skin-main-color');
|
|
37754
|
+
// TODO handle by the seek_time itself
|
|
37737
37755
|
const seekTimePlugin = this.container.getPlugin('seek_time');
|
|
37738
37756
|
seekTimePlugin?.$el.addClass('gcore-skin-bg-color');
|
|
37739
37757
|
seekTimePlugin?.$el.find('span').addClass('gcore-skin-text-color');
|
|
@@ -37847,9 +37865,9 @@ class MediaControl extends UICorePlugin {
|
|
|
37847
37865
|
this.hideId = null;
|
|
37848
37866
|
}
|
|
37849
37867
|
this.$el.show();
|
|
37850
|
-
this.trigger(Events$
|
|
37868
|
+
this.trigger(Events$1.MEDIACONTROL_SHOW, this.name);
|
|
37851
37869
|
this.container &&
|
|
37852
|
-
this.container.trigger(Events$
|
|
37870
|
+
this.container.trigger(Events$1.CONTAINER_MEDIACONTROL_SHOW, this.name);
|
|
37853
37871
|
this.$el.removeClass('media-control-hide');
|
|
37854
37872
|
this.hideId = setTimeout(() => this.hide(), timeout);
|
|
37855
37873
|
if (event) {
|
|
@@ -37879,7 +37897,7 @@ class MediaControl extends UICorePlugin {
|
|
|
37879
37897
|
}
|
|
37880
37898
|
else {
|
|
37881
37899
|
if (!this.options.controlsDontHide || isFullscreen(this.container.el)) {
|
|
37882
|
-
this.trigger(Events$
|
|
37900
|
+
this.trigger(Events$1.MEDIACONTROL_HIDE, this.name);
|
|
37883
37901
|
this.$el.addClass('media-control-hide');
|
|
37884
37902
|
this.hideVolumeBar(0);
|
|
37885
37903
|
const showing = false;
|
|
@@ -37896,12 +37914,11 @@ class MediaControl extends UICorePlugin {
|
|
|
37896
37914
|
}
|
|
37897
37915
|
}
|
|
37898
37916
|
settingsUpdate() {
|
|
37899
|
-
const newSettings =
|
|
37900
|
-
$.extend(true, newSettings, {
|
|
37917
|
+
const newSettings = $.extend(true, {
|
|
37901
37918
|
left: [],
|
|
37902
37919
|
default: [],
|
|
37903
37920
|
right: [],
|
|
37904
|
-
});
|
|
37921
|
+
}, this.core.activeContainer?.settings);
|
|
37905
37922
|
newSettings.left = orderByOrderPattern([...newSettings.left, 'clipsText', 'volume'], LEFT_ORDER);
|
|
37906
37923
|
newSettings.right = [
|
|
37907
37924
|
'fullscreen',
|
|
@@ -37932,10 +37949,6 @@ class MediaControl extends UICorePlugin {
|
|
|
37932
37949
|
this.render();
|
|
37933
37950
|
}
|
|
37934
37951
|
}
|
|
37935
|
-
getSettings() {
|
|
37936
|
-
// TODO show live and remove duration/position if live
|
|
37937
|
-
return $.extend(true, {}, this.container && this.container.settings);
|
|
37938
|
-
}
|
|
37939
37952
|
highDefinitionUpdate(isHD) {
|
|
37940
37953
|
this.isHD = isHD;
|
|
37941
37954
|
}
|
|
@@ -37999,8 +38012,17 @@ class MediaControl extends UICorePlugin {
|
|
|
37999
38012
|
return this.$playbackRate;
|
|
38000
38013
|
case 'seekBarContainer':
|
|
38001
38014
|
return this.$seekBarContainer;
|
|
38015
|
+
case 'subtitlesSelector':
|
|
38016
|
+
return this.$subtitlesSelector;
|
|
38002
38017
|
}
|
|
38003
38018
|
}
|
|
38019
|
+
/**
|
|
38020
|
+
* Get the right panel area to append custom elements to
|
|
38021
|
+
* @returns ZeptoSelector of the right panel element
|
|
38022
|
+
*/
|
|
38023
|
+
getRightPanel() {
|
|
38024
|
+
return this.$el.find('.media-control-right-panel');
|
|
38025
|
+
}
|
|
38004
38026
|
resetIndicators() {
|
|
38005
38027
|
assert.ok(this.$duration && this.$position, 'duration and position elements must be present');
|
|
38006
38028
|
this.displayedPosition = this.$position.text();
|
|
@@ -38143,7 +38165,7 @@ class MediaControl extends UICorePlugin {
|
|
|
38143
38165
|
}
|
|
38144
38166
|
configure() {
|
|
38145
38167
|
this.advertisementPlaying ? this.disable() : this.enable();
|
|
38146
|
-
this.trigger(Events$
|
|
38168
|
+
this.trigger(Events$1.MEDIACONTROL_OPTIONS_CHANGE);
|
|
38147
38169
|
}
|
|
38148
38170
|
/**
|
|
38149
38171
|
* @internal
|
|
@@ -38159,7 +38181,7 @@ class MediaControl extends UICorePlugin {
|
|
|
38159
38181
|
this.$playPauseToggle?.addClass('paused');
|
|
38160
38182
|
this.$playStopToggle?.addClass('stopped');
|
|
38161
38183
|
this.changeTogglePlay();
|
|
38162
|
-
if (this.
|
|
38184
|
+
if (this.core.activeContainer) {
|
|
38163
38185
|
this.hideId = setTimeout(() => this.hide(), timeout);
|
|
38164
38186
|
this.disabled && this.hide();
|
|
38165
38187
|
}
|
|
@@ -38198,11 +38220,11 @@ class MediaControl extends UICorePlugin {
|
|
|
38198
38220
|
this.core.$el.append(this.el);
|
|
38199
38221
|
this.rendered = true;
|
|
38200
38222
|
this.updateVolumeUI();
|
|
38201
|
-
this.trigger(Events$
|
|
38223
|
+
this.trigger(Events$1.MEDIACONTROL_RENDERED);
|
|
38202
38224
|
return this;
|
|
38203
38225
|
}
|
|
38204
38226
|
handleFullScreenOnBtn() {
|
|
38205
|
-
this.trigger(Events$
|
|
38227
|
+
this.trigger(Events$1.MEDIACONTROL_FULLSCREEN, this.name);
|
|
38206
38228
|
this.container.fullscreen();
|
|
38207
38229
|
// TODO: fix after it full screen will be fixed on iOS
|
|
38208
38230
|
if (Browser.isiOS) {
|
|
@@ -38283,7 +38305,7 @@ const streamsMomentoIcon = "<svg id=\"Слой_1\" data-name=\"Слой 1\" xmln
|
|
|
38283
38305
|
const streamsWhiteNightsIcon = "<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"50\" height=\"50\" viewBox=\"0 0 50 50\">\n <defs>\n <clipPath id=\"clip-Icon\">\n <rect width=\"50\" height=\"50\"/>\n </clipPath>\n </defs>\n <g id=\"Icon\" clip-path=\"url(#clip-Icon)\">\n <g id=\"icon2\" transform=\"translate(-0.041 0)\">\n <path id=\"Контур_77\" data-name=\"Контур 77\" d=\"M6.493,13v8.266h6.275V19.74H8.31V17.714h4.006V16.3H8.31V14.53h4.365V13Zm7.5,0v8.266h1.7V15.732h.023l3.438,5.534h1.818V13h-1.7v5.545h-.023L15.8,13Z\" fill=\"#fff\"/>\n <path id=\"Контур_76\" data-name=\"Контур 76\" d=\"M29.949,29.1V26.774H31.94a1.4,1.4,0,0,1,.938.272,1.1,1.1,0,0,1,.313.874,1.155,1.155,0,0,1-.313.9,1.375,1.375,0,0,1-.938.278ZM28.132,25.36v8.266h1.817V30.4h1.818a1.353,1.353,0,0,1,.984.3,1.637,1.637,0,0,1,.394.949c.046.333.079.681.1,1.042a3.2,3.2,0,0,0,.185.938h1.819a1.218,1.218,0,0,1-.191-.423,3.611,3.611,0,0,1-.093-.527c-.019-.185-.033-.367-.041-.544s-.016-.332-.023-.463a5.052,5.052,0,0,0-.087-.625,2.109,2.109,0,0,0-.2-.573,1.586,1.586,0,0,0-.359-.451,1.414,1.414,0,0,0-.556-.284v-.023a1.926,1.926,0,0,0,1-.81,2.494,2.494,0,0,0,.307-1.262,2.308,2.308,0,0,0-.165-.88,2.128,2.128,0,0,0-.486-.724,2.3,2.3,0,0,0-.764-.492,2.67,2.67,0,0,0-1-.179ZM43.506,30.5V25.36H41.689V30.5a2.065,2.065,0,0,1-.37,1.36,1.7,1.7,0,0,1-1.343.434,2.086,2.086,0,0,1-.886-.156,1.283,1.283,0,0,1-.758-.978,3.748,3.748,0,0,1-.058-.66V25.36H36.456V30.5a3.16,3.16,0,0,0,.92,2.5,3.807,3.807,0,0,0,2.6.81,3.82,3.82,0,0,0,2.593-.816,3.132,3.132,0,0,0,.937-2.492Z\" fill=\"#fff\"/>\n <path id=\"Контур_80\" data-name=\"Контур 80\" d=\"M22.646,31.2H4.689a4.505,4.505,0,0,1-4.5-4.5V8.5A4.505,4.505,0,0,1,4.689,4h18.2a4.505,4.505,0,0,1,4.5,4.5v8.445l-.893.1a3.184,3.184,0,0,0-2.846,3.177V30.5l-.465.7ZM4.689,6a2.5,2.5,0,0,0-2.5,2.5V26.7a2.5,2.5,0,0,0,2.5,2.5H21.65V20.22a5.18,5.18,0,0,1,3.739-4.992V8.5a2.5,2.5,0,0,0-2.5-2.5Z\" fill=\"#fff\"/>\n <path id=\"Контур_81\" data-name=\"Контур 81\" d=\"M30.127,47.884a1,1,0,0,1-1-1V43.267H26.846a5.206,5.206,0,0,1-5.2-5.2V20.222a5.206,5.206,0,0,1,5.2-5.2H44.692a5.206,5.206,0,0,1,5.2,5.2V38.068a5.206,5.206,0,0,1-5.2,5.2H35.058l-4.216,4.316A1,1,0,0,1,30.127,47.884ZM26.846,17.022a3.2,3.2,0,0,0-3.2,3.2V38.067a3.2,3.2,0,0,0,3.2,3.2h3.281a1,1,0,0,1,1,1v2.162l2.8-2.86a1,1,0,0,1,.715-.3H44.692a3.2,3.2,0,0,0,3.2-3.2V20.222a3.2,3.2,0,0,0-3.2-3.2Z\" fill=\"#fff\"/>\n </g>\n </g>\n</svg>\n";
|
|
38284
38306
|
|
|
38285
38307
|
const VERSION$3 = '0.0.1';
|
|
38286
|
-
const T$
|
|
38308
|
+
const T$6 = 'plugins.media_control_multicamera';
|
|
38287
38309
|
class MultiCamera extends UICorePlugin {
|
|
38288
38310
|
currentCamera = null;
|
|
38289
38311
|
currentTime = 0;
|
|
@@ -38326,29 +38348,29 @@ class MultiCamera extends UICorePlugin {
|
|
|
38326
38348
|
this.noActiveStreams = this.multicamera.every((item) => !item.live);
|
|
38327
38349
|
}
|
|
38328
38350
|
bindEvents() {
|
|
38329
|
-
this.listenTo(this.core, Events$
|
|
38330
|
-
this.listenTo(this.core.mediaControl, Events$
|
|
38331
|
-
this.listenTo(this.core.mediaControl, Events$
|
|
38332
|
-
this.listenTo(this.core.mediaControl, Events$
|
|
38351
|
+
this.listenTo(this.core, Events$1.CORE_READY, this.bindPlaybackEvents);
|
|
38352
|
+
this.listenTo(this.core.mediaControl, Events$1.MEDIACONTROL_CONTAINERCHANGED, this.reload);
|
|
38353
|
+
this.listenTo(this.core.mediaControl, Events$1.MEDIACONTROL_RENDERED, this.render);
|
|
38354
|
+
this.listenTo(this.core.mediaControl, Events$1.MEDIACONTROL_HIDE, this.hideSelectLevelMenu);
|
|
38333
38355
|
}
|
|
38334
38356
|
unBindEvents() {
|
|
38335
38357
|
// @ts-ignore
|
|
38336
|
-
this.stopListening(this.core, Events$
|
|
38358
|
+
this.stopListening(this.core, Events$1.CORE_READY);
|
|
38337
38359
|
// @ts-ignore
|
|
38338
|
-
this.stopListening(this.core.mediaControl, Events$
|
|
38360
|
+
this.stopListening(this.core.mediaControl, Events$1.MEDIACONTROL_CONTAINERCHANGED);
|
|
38339
38361
|
// @ts-ignore
|
|
38340
|
-
this.stopListening(this.core.mediaControl, Events$
|
|
38362
|
+
this.stopListening(this.core.mediaControl, Events$1.MEDIACONTROL_RENDERED);
|
|
38341
38363
|
// @ts-ignore
|
|
38342
|
-
this.stopListening(this.core.mediaControl, Events$
|
|
38364
|
+
this.stopListening(this.core.mediaControl, Events$1.MEDIACONTROL_HIDE);
|
|
38343
38365
|
// @ts-ignore
|
|
38344
|
-
this.stopListening(this.core.activePlayback, Events$
|
|
38366
|
+
this.stopListening(this.core.activePlayback, Events$1.PLAYBACK_PLAY, this.onPlay);
|
|
38345
38367
|
}
|
|
38346
38368
|
onPlay() {
|
|
38347
38369
|
this.playing = true;
|
|
38348
38370
|
}
|
|
38349
38371
|
bindPlaybackEvents() {
|
|
38350
38372
|
const currentPlayback = this.core.activePlayback;
|
|
38351
|
-
this.listenToOnce(currentPlayback, Events$
|
|
38373
|
+
this.listenToOnce(currentPlayback, Events$1.PLAYBACK_PLAY, this.onPlay);
|
|
38352
38374
|
}
|
|
38353
38375
|
reload() {
|
|
38354
38376
|
this.unBindEvents();
|
|
@@ -38552,7 +38574,7 @@ class MultiCamera extends UICorePlugin {
|
|
|
38552
38574
|
// TODO figure out what this does
|
|
38553
38575
|
playbackOptions.recycleVideo = Browser.isMobile;
|
|
38554
38576
|
this.currentCamera = this.findElementById(id) ?? null;
|
|
38555
|
-
trace(`${T$
|
|
38577
|
+
trace(`${T$6} changeById`, { currentCamera: this.currentCamera, multicamera: this.multicamera });
|
|
38556
38578
|
if (!this.currentCamera) {
|
|
38557
38579
|
return;
|
|
38558
38580
|
}
|
|
@@ -38568,7 +38590,7 @@ class MultiCamera extends UICorePlugin {
|
|
|
38568
38590
|
// TODO remove?
|
|
38569
38591
|
// for html5 playback:
|
|
38570
38592
|
this.options.dvrEnabled = this.currentCamera.dvr;
|
|
38571
|
-
trace(`${T$
|
|
38593
|
+
trace(`${T$6} changeById`, { currentCamera: this.currentCamera });
|
|
38572
38594
|
// TODO
|
|
38573
38595
|
this.core.configure({
|
|
38574
38596
|
playback: playbackOptions,
|
|
@@ -38626,7 +38648,7 @@ const pipIcon = "<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"no
|
|
|
38626
38648
|
const buttonHtml$1 = "<button class=\"gplayer-lite-btn gcore-skin-button-color\">\n <span><%= pipIcon %></span>\n</button>\n";
|
|
38627
38649
|
|
|
38628
38650
|
const VERSION$2 = '0.0.1';
|
|
38629
|
-
const T$
|
|
38651
|
+
const T$5 = `plugins.media_control_pip`;
|
|
38630
38652
|
class PictureInPicture extends UICorePlugin {
|
|
38631
38653
|
get name() {
|
|
38632
38654
|
return 'media_control_pip';
|
|
@@ -38646,7 +38668,7 @@ class PictureInPicture extends UICorePlugin {
|
|
|
38646
38668
|
return this.core.activePlayback.el;
|
|
38647
38669
|
}
|
|
38648
38670
|
bindEvents() {
|
|
38649
|
-
this.listenTo(this.core.mediaControl, Events$
|
|
38671
|
+
this.listenTo(this.core.mediaControl, Events$1.MEDIACONTROL_RENDERED, this.render);
|
|
38650
38672
|
}
|
|
38651
38673
|
isPiPSupported() {
|
|
38652
38674
|
return document.pictureInPictureEnabled && !!HTMLVideoElement.prototype.requestPictureInPicture;
|
|
@@ -38672,7 +38694,7 @@ class PictureInPicture extends UICorePlugin {
|
|
|
38672
38694
|
}
|
|
38673
38695
|
}
|
|
38674
38696
|
requestPictureInPicture() {
|
|
38675
|
-
trace(`${T$
|
|
38697
|
+
trace(`${T$5} requestPictureInPicture`, {
|
|
38676
38698
|
videoElement: !!this.videoElement,
|
|
38677
38699
|
});
|
|
38678
38700
|
this.videoElement.requestPictureInPicture();
|
|
@@ -38731,23 +38753,23 @@ class PlaybackRate extends UICorePlugin {
|
|
|
38731
38753
|
}
|
|
38732
38754
|
bindEvents() {
|
|
38733
38755
|
this.listenTo(this.core, 'gear:rendered', this.render);
|
|
38734
|
-
this.listenTo(this.core.mediaControl, Events$
|
|
38756
|
+
this.listenTo(this.core.mediaControl, Events$1.MEDIACONTROL_CONTAINERCHANGED, this.reload);
|
|
38735
38757
|
this.listenTo(this.core.mediaControl, MEDIACONTROL_PLAYBACKRATE, this.updatePlaybackRate);
|
|
38736
38758
|
this.listenTo(this.core, 'core:advertisement:start', this.onStartAd);
|
|
38737
38759
|
this.listenTo(this.core, 'core:advertisement:finish', this.onFinishAd);
|
|
38738
38760
|
if (this.core.activeContainer) {
|
|
38739
|
-
this.listenTo(this.core.activePlayback, Events$
|
|
38761
|
+
this.listenTo(this.core.activePlayback, Events$1.PLAYBACK_BUFFERFULL, this.updateLiveStatus);
|
|
38740
38762
|
}
|
|
38741
38763
|
if (this.currentPlayback) {
|
|
38742
|
-
this.listenTo(this.currentPlayback, Events$
|
|
38743
|
-
this.listenTo(this.currentPlayback, Events$
|
|
38764
|
+
this.listenTo(this.currentPlayback, Events$1.PLAYBACK_STOP, this.onStop);
|
|
38765
|
+
this.listenTo(this.currentPlayback, Events$1.PLAYBACK_PLAY, this.onPlay);
|
|
38744
38766
|
// TODO import dash playback events
|
|
38745
38767
|
this.listenTo(this.currentPlayback, 'dash:playback-rate-changed', this.onDashRateChange);
|
|
38746
38768
|
}
|
|
38747
38769
|
}
|
|
38748
38770
|
unBindEvents() {
|
|
38749
38771
|
this.stopListening(this.core, 'gear:rendered', this.render);
|
|
38750
|
-
this.stopListening(this.core.mediaControl, Events$
|
|
38772
|
+
this.stopListening(this.core.mediaControl, Events$1.MEDIACONTROL_CONTAINERCHANGED, this.reload);
|
|
38751
38773
|
this.stopListening(this.core, 'core:advertisement:start', this.onStartAd);
|
|
38752
38774
|
this.stopListening(this.core, 'core:advertisement:finish', this.onFinishAd);
|
|
38753
38775
|
}
|
|
@@ -38817,7 +38839,7 @@ class PlaybackRate extends UICorePlugin {
|
|
|
38817
38839
|
onStartAd() {
|
|
38818
38840
|
this.prevSelectedRate = this.selectedRate;
|
|
38819
38841
|
this.setSelectedRate('1.0');
|
|
38820
|
-
this.listenToOnce(this.currentPlayback, Events$
|
|
38842
|
+
this.listenToOnce(this.currentPlayback, Events$1.PLAYBACK_PLAY, this.onFinishAd);
|
|
38821
38843
|
}
|
|
38822
38844
|
onFinishAd() {
|
|
38823
38845
|
if (this.prevSelectedRate) {
|
|
@@ -38892,7 +38914,7 @@ const posterHTML = "<div class=\"play-wrapper\" data-poster></div>\n";
|
|
|
38892
38914
|
//Copyright 2014 Globo.com Player authors. All rights reserved.
|
|
38893
38915
|
// Use of this source code is governed by a BSD-style
|
|
38894
38916
|
// license that can be found in the LICENSE file.
|
|
38895
|
-
const T$
|
|
38917
|
+
const T$4 = 'plugins.poster_custom';
|
|
38896
38918
|
/**
|
|
38897
38919
|
* Displays a poster image in the background and a big play button on top when playback is stopped
|
|
38898
38920
|
* @beta
|
|
@@ -38972,16 +38994,16 @@ class Poster extends UIContainerPlugin {
|
|
|
38972
38994
|
* @internal
|
|
38973
38995
|
*/
|
|
38974
38996
|
bindEvents() {
|
|
38975
|
-
this.listenTo(this.container, Events$
|
|
38976
|
-
this.listenTo(this.container, Events$
|
|
38977
|
-
this.listenTo(this.container, Events$
|
|
38978
|
-
this.listenTo(this.container, Events$
|
|
38979
|
-
this.listenTo(this.container, Events$
|
|
38980
|
-
this.listenTo(this.container, Events$
|
|
38997
|
+
this.listenTo(this.container, Events$1.CONTAINER_STOP, this.onStop);
|
|
38998
|
+
this.listenTo(this.container, Events$1.CONTAINER_PLAY, this.onPlay);
|
|
38999
|
+
this.listenTo(this.container, Events$1.CONTAINER_STATE_BUFFERING, this.update);
|
|
39000
|
+
this.listenTo(this.container, Events$1.CONTAINER_STATE_BUFFERFULL, this.update);
|
|
39001
|
+
this.listenTo(this.container, Events$1.CONTAINER_OPTIONS_CHANGE, this.render);
|
|
39002
|
+
this.listenTo(this.container, Events$1.CONTAINER_ERROR, this.onError);
|
|
38981
39003
|
this.showOnVideoEnd &&
|
|
38982
|
-
this.listenTo(this.container, Events$
|
|
38983
|
-
this.listenTo(this.container, Events$
|
|
38984
|
-
this.listenTo(this.container, Events$
|
|
39004
|
+
this.listenTo(this.container, Events$1.CONTAINER_ENDED, this.onStop);
|
|
39005
|
+
this.listenTo(this.container, Events$1.CONTAINER_READY, this.render);
|
|
39006
|
+
this.listenTo(this.container, Events$1.PLAYBACK_PLAY_INTENT, this.onPlayIntent);
|
|
38985
39007
|
}
|
|
38986
39008
|
/**
|
|
38987
39009
|
* Reenables earlier disabled plugin
|
|
@@ -39000,7 +39022,7 @@ class Poster extends UIContainerPlugin {
|
|
|
39000
39022
|
super.disable();
|
|
39001
39023
|
}
|
|
39002
39024
|
onError(error) {
|
|
39003
|
-
trace(`${T$
|
|
39025
|
+
trace(`${T$4} onError`, {
|
|
39004
39026
|
enabled: this.enabled,
|
|
39005
39027
|
});
|
|
39006
39028
|
this.hasFatalError = error.level === PlayerError.Levels.FATAL;
|
|
@@ -39021,7 +39043,7 @@ class Poster extends UIContainerPlugin {
|
|
|
39021
39043
|
this.update();
|
|
39022
39044
|
}
|
|
39023
39045
|
onStop() {
|
|
39024
|
-
trace(`${T$
|
|
39046
|
+
trace(`${T$4} onStop`, {
|
|
39025
39047
|
enabled: this.enabled,
|
|
39026
39048
|
});
|
|
39027
39049
|
this.hasStartedPlaying = false;
|
|
@@ -39029,7 +39051,7 @@ class Poster extends UIContainerPlugin {
|
|
|
39029
39051
|
this.update();
|
|
39030
39052
|
}
|
|
39031
39053
|
updatePlayButton(show) {
|
|
39032
|
-
trace(`${T$
|
|
39054
|
+
trace(`${T$4} updatePlayButton`, {
|
|
39033
39055
|
chromeless: this.options.chromeless,
|
|
39034
39056
|
allowUserInteraction: this.options.allowUserInteraction,
|
|
39035
39057
|
});
|
|
@@ -39057,7 +39079,7 @@ class Poster extends UIContainerPlugin {
|
|
|
39057
39079
|
this.$el.removeClass('clickable');
|
|
39058
39080
|
}
|
|
39059
39081
|
clicked() {
|
|
39060
|
-
trace(`${T$
|
|
39082
|
+
trace(`${T$4} clicked`, {
|
|
39061
39083
|
hasStartedPlaying: this.hasStartedPlaying,
|
|
39062
39084
|
chromeless: this.options.chromeless,
|
|
39063
39085
|
allowUserInteraction: this.options.allowUserInteraction,
|
|
@@ -39081,7 +39103,7 @@ class Poster extends UIContainerPlugin {
|
|
|
39081
39103
|
return !this.container.playback.isAudioOnly;
|
|
39082
39104
|
}
|
|
39083
39105
|
update() {
|
|
39084
|
-
trace(`${T$
|
|
39106
|
+
trace(`${T$4} update`, {
|
|
39085
39107
|
shouldRender: this.shouldRender,
|
|
39086
39108
|
});
|
|
39087
39109
|
if (!this.shouldRender) {
|
|
@@ -39094,7 +39116,7 @@ class Poster extends UIContainerPlugin {
|
|
|
39094
39116
|
this.updatePoster();
|
|
39095
39117
|
}
|
|
39096
39118
|
updatePoster() {
|
|
39097
|
-
trace(`${T$
|
|
39119
|
+
trace(`${T$4} updatePoster`, {
|
|
39098
39120
|
hasStartedPlaying: this.hasStartedPlaying,
|
|
39099
39121
|
});
|
|
39100
39122
|
if (!this.hasStartedPlaying) {
|
|
@@ -39109,7 +39131,7 @@ class Poster extends UIContainerPlugin {
|
|
|
39109
39131
|
this.$el.show();
|
|
39110
39132
|
}
|
|
39111
39133
|
hidePoster() {
|
|
39112
|
-
trace(`${T$
|
|
39134
|
+
trace(`${T$4} hidePoster`, {
|
|
39113
39135
|
shouldHideOnPlay: this.shouldHideOnPlay(),
|
|
39114
39136
|
});
|
|
39115
39137
|
if (!this.options.disableMediaControl) {
|
|
@@ -39205,13 +39227,13 @@ class SeekTime extends UICorePlugin {
|
|
|
39205
39227
|
$durationEl = null;
|
|
39206
39228
|
$seekTimeEl = null;
|
|
39207
39229
|
bindEvents() {
|
|
39208
|
-
this.listenTo(this.mediaControl, Events$
|
|
39209
|
-
this.listenTo(this.mediaControl, Events$
|
|
39210
|
-
this.listenTo(this.mediaControl, Events$
|
|
39211
|
-
this.listenTo(this.mediaControl, Events$
|
|
39230
|
+
this.listenTo(this.mediaControl, Events$1.MEDIACONTROL_RENDERED, this.render);
|
|
39231
|
+
this.listenTo(this.mediaControl, Events$1.MEDIACONTROL_MOUSEMOVE_SEEKBAR, this.showTime);
|
|
39232
|
+
this.listenTo(this.mediaControl, Events$1.MEDIACONTROL_MOUSELEAVE_SEEKBAR, this.hideTime);
|
|
39233
|
+
this.listenTo(this.mediaControl, Events$1.MEDIACONTROL_CONTAINERCHANGED, this.onContainerChanged);
|
|
39212
39234
|
if (this.mediaControlContainer) {
|
|
39213
|
-
this.listenTo(this.mediaControlContainer, Events$
|
|
39214
|
-
this.listenTo(this.mediaControlContainer, Events$
|
|
39235
|
+
this.listenTo(this.mediaControlContainer, Events$1.CONTAINER_PLAYBACKDVRSTATECHANGED, this.update);
|
|
39236
|
+
this.listenTo(this.mediaControlContainer, Events$1.CONTAINER_TIMEUPDATE, this.updateDuration);
|
|
39215
39237
|
}
|
|
39216
39238
|
}
|
|
39217
39239
|
onContainerChanged() {
|
|
@@ -39350,23 +39372,23 @@ class Share extends UICorePlugin {
|
|
|
39350
39372
|
};
|
|
39351
39373
|
}
|
|
39352
39374
|
bindEvents() {
|
|
39353
|
-
this.listenTo(this.core, Events$
|
|
39375
|
+
this.listenTo(this.core, Events$1.CORE_READY, this.onReady);
|
|
39354
39376
|
// this.listenTo(this.core.mediaControl, Events.MEDIACONTROL_CONTAINERCHANGED, this.reload);
|
|
39355
|
-
this.listenTo(this.core.mediaControl, Events$
|
|
39356
|
-
this.listenTo(this.core.mediaControl, Events$
|
|
39357
|
-
this.listenTo(this.core.mediaControl, Events$
|
|
39377
|
+
this.listenTo(this.core.mediaControl, Events$1.MEDIACONTROL_RENDERED, this.render);
|
|
39378
|
+
this.listenTo(this.core.mediaControl, Events$1.MEDIACONTROL_HIDE, this.hideShare);
|
|
39379
|
+
this.listenTo(this.core.mediaControl, Events$1.MEDIACONTROL_SHOW, this.showShare);
|
|
39358
39380
|
}
|
|
39359
39381
|
unBindEvents() {
|
|
39360
39382
|
// @ts-ignore
|
|
39361
|
-
this.stopListening(this.core, Events$
|
|
39383
|
+
this.stopListening(this.core, Events$1.CORE_READY);
|
|
39362
39384
|
// @ts-ignore
|
|
39363
39385
|
// this.stopListening(this.core.mediaControl, Events.MEDIACONTROL_CONTAINERCHANGED);
|
|
39364
39386
|
// @ts-ignore
|
|
39365
|
-
this.stopListening(this.core.mediaControl, Events$
|
|
39387
|
+
this.stopListening(this.core.mediaControl, Events$1.MEDIACONTROL_RENDERED);
|
|
39366
39388
|
// @ts-ignore
|
|
39367
|
-
this.stopListening(this.core.mediaControl, Events$
|
|
39389
|
+
this.stopListening(this.core.mediaControl, Events$1.MEDIACONTROL_HIDE);
|
|
39368
39390
|
// @ts-ignore
|
|
39369
|
-
this.stopListening(this.core.mediaControl, Events$
|
|
39391
|
+
this.stopListening(this.core.mediaControl, Events$1.MEDIACONTROL_SHOW);
|
|
39370
39392
|
}
|
|
39371
39393
|
canShowShare() {
|
|
39372
39394
|
this.hide = false;
|
|
@@ -39466,11 +39488,11 @@ class SkipTime extends UICorePlugin {
|
|
|
39466
39488
|
};
|
|
39467
39489
|
}
|
|
39468
39490
|
bindEvents() {
|
|
39469
|
-
this.listenTo(this.core, Events$
|
|
39491
|
+
this.listenTo(this.core, Events$1.CORE_READY, this.render);
|
|
39470
39492
|
if (!this.container) {
|
|
39471
39493
|
return;
|
|
39472
39494
|
}
|
|
39473
|
-
this.listenTo(this.container, Events$
|
|
39495
|
+
this.listenTo(this.container, Events$1.CONTAINER_DBLCLICK, this.handleRewindClicks);
|
|
39474
39496
|
}
|
|
39475
39497
|
setBack() {
|
|
39476
39498
|
this.position = 'left';
|
|
@@ -39507,7 +39529,7 @@ class SkipTime extends UICorePlugin {
|
|
|
39507
39529
|
this.position = 'right';
|
|
39508
39530
|
}
|
|
39509
39531
|
toggleFullscreen() {
|
|
39510
|
-
this.trigger(Events$
|
|
39532
|
+
this.trigger(Events$1.MEDIACONTROL_FULLSCREEN, this.name);
|
|
39511
39533
|
this.container.fullscreen();
|
|
39512
39534
|
this.core.toggleFullscreen();
|
|
39513
39535
|
}
|
|
@@ -39546,14 +39568,40 @@ const spinnerHTML = "<div data-bounce1></div>\n<div data-bounce2></div>\n<div da
|
|
|
39546
39568
|
// Copyright 2014 Globo.com Player authors. All rights reserved.
|
|
39547
39569
|
// Use of this source code is governed by a BSD-style
|
|
39548
39570
|
// license that can be found in the LICENSE file.
|
|
39549
|
-
const T$
|
|
39571
|
+
const T$3 = 'plugins.spinner';
|
|
39572
|
+
/**
|
|
39573
|
+
* Custom events emitted by the plugin
|
|
39574
|
+
*/
|
|
39575
|
+
var SpinnerEvents;
|
|
39576
|
+
(function (SpinnerEvents) {
|
|
39577
|
+
/**
|
|
39578
|
+
* Emitted at the end of the spinner animation cycle to facilitate smooth UI updates,
|
|
39579
|
+
* e.g. {@link SourceController} listens to this event to reload the source when the spinner is hidden
|
|
39580
|
+
*/
|
|
39581
|
+
SpinnerEvents["SYNC"] = "plugins:spinner:sync";
|
|
39582
|
+
})(SpinnerEvents || (SpinnerEvents = {}));
|
|
39583
|
+
/**
|
|
39584
|
+
* Shows a pending operation indicator when playback is buffering or in other appropriate cases
|
|
39585
|
+
* @beta
|
|
39586
|
+
* @remarks
|
|
39587
|
+
* The plugin emits
|
|
39588
|
+
*/
|
|
39550
39589
|
class SpinnerThreeBounce extends UIContainerPlugin {
|
|
39590
|
+
/**
|
|
39591
|
+
* @internal
|
|
39592
|
+
*/
|
|
39551
39593
|
get name() {
|
|
39552
39594
|
return 'spinner';
|
|
39553
39595
|
}
|
|
39596
|
+
/**
|
|
39597
|
+
* @internal
|
|
39598
|
+
*/
|
|
39554
39599
|
get supportedVersion() {
|
|
39555
39600
|
return { min: CLAPPR_VERSION };
|
|
39556
39601
|
}
|
|
39602
|
+
/**
|
|
39603
|
+
* @internal
|
|
39604
|
+
*/
|
|
39557
39605
|
get attributes() {
|
|
39558
39606
|
return {
|
|
39559
39607
|
'data-spinner': '',
|
|
@@ -39566,13 +39614,13 @@ class SpinnerThreeBounce extends UIContainerPlugin {
|
|
|
39566
39614
|
hasBuffering = false;
|
|
39567
39615
|
constructor(container) {
|
|
39568
39616
|
super(container);
|
|
39569
|
-
this.listenTo(this.container, Events$
|
|
39570
|
-
this.listenTo(this.container, Events$
|
|
39571
|
-
this.listenTo(this.container, Events$
|
|
39572
|
-
this.listenTo(this.container, Events$
|
|
39573
|
-
this.listenTo(this.container, Events$
|
|
39574
|
-
this.listenTo(this.container, Events$
|
|
39575
|
-
this.listenTo(this.container, Events$
|
|
39617
|
+
this.listenTo(this.container, Events$1.CONTAINER_STATE_BUFFERING, this.onBuffering);
|
|
39618
|
+
this.listenTo(this.container, Events$1.CONTAINER_STATE_BUFFERFULL, this.onBufferFull);
|
|
39619
|
+
this.listenTo(this.container, Events$1.CONTAINER_PLAY, this.onPlay);
|
|
39620
|
+
this.listenTo(this.container, Events$1.CONTAINER_STOP, this.onStop);
|
|
39621
|
+
this.listenTo(this.container, Events$1.CONTAINER_ENDED, this.onStop);
|
|
39622
|
+
this.listenTo(this.container, Events$1.CONTAINER_ERROR, this.onError);
|
|
39623
|
+
this.listenTo(this.container, Events$1.CONTAINER_READY, this.render);
|
|
39576
39624
|
}
|
|
39577
39625
|
onBuffering() {
|
|
39578
39626
|
this.hasBuffering = true;
|
|
@@ -39588,7 +39636,7 @@ class SpinnerThreeBounce extends UIContainerPlugin {
|
|
|
39588
39636
|
this.hide();
|
|
39589
39637
|
}
|
|
39590
39638
|
onStop() {
|
|
39591
|
-
trace(`${T$
|
|
39639
|
+
trace(`${T$3} onStop`, {
|
|
39592
39640
|
showOnError: this.options.spinner?.showOnError,
|
|
39593
39641
|
hasFatalError: this.hasFatalError,
|
|
39594
39642
|
});
|
|
@@ -39598,7 +39646,7 @@ class SpinnerThreeBounce extends UIContainerPlugin {
|
|
|
39598
39646
|
}
|
|
39599
39647
|
onError(e) {
|
|
39600
39648
|
this.hasFatalError = e.code === PlaybackErrorCode.MediaSourceUnavailable;
|
|
39601
|
-
trace(`${T$
|
|
39649
|
+
trace(`${T$3} onError`, {
|
|
39602
39650
|
showOnError: this.options.spinner?.showOnError,
|
|
39603
39651
|
hasFatalError: this.hasFatalError,
|
|
39604
39652
|
error: e.code,
|
|
@@ -39610,18 +39658,15 @@ class SpinnerThreeBounce extends UIContainerPlugin {
|
|
|
39610
39658
|
this.hide();
|
|
39611
39659
|
}
|
|
39612
39660
|
}
|
|
39613
|
-
|
|
39614
|
-
|
|
39615
|
-
|
|
39616
|
-
|
|
39617
|
-
|
|
39618
|
-
}
|
|
39619
|
-
this.$el.show();
|
|
39620
|
-
}
|
|
39621
|
-
else if (this.showTimeout === null) {
|
|
39622
|
-
this.showTimeout = setTimeout(() => this.$el.show(), 300);
|
|
39623
|
-
}
|
|
39661
|
+
/**
|
|
39662
|
+
* Shows the spinner
|
|
39663
|
+
*/
|
|
39664
|
+
show() {
|
|
39665
|
+
this.showTimeout = setTimeout(() => this.$el.show(), 300);
|
|
39624
39666
|
}
|
|
39667
|
+
/**
|
|
39668
|
+
* Hides the spinner
|
|
39669
|
+
*/
|
|
39625
39670
|
hide() {
|
|
39626
39671
|
if (this.showTimeout !== null) {
|
|
39627
39672
|
clearTimeout(this.showTimeout);
|
|
@@ -39629,13 +39674,16 @@ class SpinnerThreeBounce extends UIContainerPlugin {
|
|
|
39629
39674
|
}
|
|
39630
39675
|
this.$el.hide();
|
|
39631
39676
|
}
|
|
39677
|
+
/**
|
|
39678
|
+
* @internal
|
|
39679
|
+
*/
|
|
39632
39680
|
render() {
|
|
39633
39681
|
const showOnStart = this.options.spinner?.showOnStart;
|
|
39634
|
-
trace(`${T$
|
|
39682
|
+
trace(`${T$3} render`, {
|
|
39635
39683
|
buffering: this.container.buffering});
|
|
39636
39684
|
this.$el.html(this.template());
|
|
39637
39685
|
this.el.firstElementChild?.addEventListener('animationiteration', () => {
|
|
39638
|
-
this.trigger(
|
|
39686
|
+
this.trigger(SpinnerEvents.SYNC);
|
|
39639
39687
|
});
|
|
39640
39688
|
this.container.$el.append(this.$el[0]);
|
|
39641
39689
|
if (showOnStart || this.container.buffering) {
|
|
@@ -39683,12 +39731,12 @@ class Statistics extends ContainerPlugin {
|
|
|
39683
39731
|
bindEvents() {
|
|
39684
39732
|
// TODO remove this
|
|
39685
39733
|
this.listenToOnce(this.container, CUSTOM_EVENTS_CONTAINER_START, this.onStart);
|
|
39686
|
-
this.listenToOnce(this.container, Events$
|
|
39687
|
-
this.listenTo(this.container, Events$
|
|
39688
|
-
this.listenTo(this.container, Events$
|
|
39689
|
-
this.listenTo(this.container.playback, Events$
|
|
39690
|
-
this.listenTo(this.container.playback, Events$
|
|
39691
|
-
this.listenTo(this.container.playback, Events$
|
|
39734
|
+
this.listenToOnce(this.container, Events$1.CONTAINER_READY, this.onReady);
|
|
39735
|
+
this.listenTo(this.container, Events$1.CONTAINER_STATE_BUFFERING, this.onBuffering);
|
|
39736
|
+
this.listenTo(this.container, Events$1.CONTAINER_STATE_BUFFERFULL, this.onBufferFull);
|
|
39737
|
+
this.listenTo(this.container.playback, Events$1.PLAYBACK_TIMEUPDATE, this.onTimeUpdateLive);
|
|
39738
|
+
this.listenTo(this.container.playback, Events$1.PLAYBACK_LEVEL_SWITCH_START, this.startLevelSwitch);
|
|
39739
|
+
this.listenTo(this.container.playback, Events$1.PLAYBACK_LEVEL_SWITCH_END, this.stopLevelSwitch);
|
|
39692
39740
|
}
|
|
39693
39741
|
startLevelSwitch() {
|
|
39694
39742
|
this.bufTracking = false;
|
|
@@ -39781,87 +39829,102 @@ const comboboxHTML = "<button data-subtitles-button class='media-control-button
|
|
|
39781
39829
|
|
|
39782
39830
|
const stringHTML = "<div class=\"subtitle-string\">\n <p></p>\n</div>\n";
|
|
39783
39831
|
|
|
39784
|
-
const VERSION$1 = '
|
|
39785
|
-
const LOCAL_STORAGE_SUBTITLES_ID = '
|
|
39832
|
+
const VERSION$1 = '2.19.14';
|
|
39833
|
+
const LOCAL_STORAGE_SUBTITLES_ID = 'gplayer.plugins.subtitles.selected';
|
|
39834
|
+
const T$2 = 'plugins.subtitles';
|
|
39786
39835
|
const NO_TRACK = { language: 'off' };
|
|
39836
|
+
/**
|
|
39837
|
+
* A {@link MediaControl | media control} plugin that provides a UI to select the subtitles when available.
|
|
39838
|
+
* @beta
|
|
39839
|
+
*
|
|
39840
|
+
* @remarks
|
|
39841
|
+
* Depends on:
|
|
39842
|
+
*
|
|
39843
|
+
* - {@link MediaControl}
|
|
39844
|
+
*
|
|
39845
|
+
* Configuration options:
|
|
39846
|
+
*
|
|
39847
|
+
* - subtitles.language - The language of the subtitles to select by default.
|
|
39848
|
+
*
|
|
39849
|
+
* @example
|
|
39850
|
+
* ```ts
|
|
39851
|
+
* import { Subtitles } from '@gcorevideo/player'
|
|
39852
|
+
*
|
|
39853
|
+
* Player.registerPlugin(Subtitles)
|
|
39854
|
+
*
|
|
39855
|
+
* new Player({
|
|
39856
|
+
* ...
|
|
39857
|
+
* subtitles: {
|
|
39858
|
+
* language: 'en',
|
|
39859
|
+
* },
|
|
39860
|
+
* })
|
|
39861
|
+
* ```
|
|
39862
|
+
*/
|
|
39787
39863
|
class Subtitles extends UICorePlugin {
|
|
39788
|
-
|
|
39789
|
-
|
|
39790
|
-
currentPlayback;
|
|
39864
|
+
currentLevel = null;
|
|
39865
|
+
isPreselectedApplied = false;
|
|
39791
39866
|
isShowing = false;
|
|
39792
|
-
|
|
39793
|
-
|
|
39867
|
+
track = { ...NO_TRACK };
|
|
39868
|
+
tracks = null;
|
|
39869
|
+
$string = null;
|
|
39870
|
+
/**
|
|
39871
|
+
* @internal
|
|
39872
|
+
*/
|
|
39794
39873
|
get name() {
|
|
39795
|
-
return '
|
|
39874
|
+
return 'subtitles';
|
|
39796
39875
|
}
|
|
39876
|
+
/**
|
|
39877
|
+
* @internal
|
|
39878
|
+
*/
|
|
39797
39879
|
get supportedVersion() {
|
|
39798
39880
|
return { min: CLAPPR_VERSION };
|
|
39799
39881
|
}
|
|
39882
|
+
/**
|
|
39883
|
+
* @internal
|
|
39884
|
+
*/
|
|
39800
39885
|
static get version() {
|
|
39801
39886
|
return VERSION$1;
|
|
39802
39887
|
}
|
|
39803
|
-
|
|
39804
|
-
|
|
39805
|
-
|
|
39806
|
-
|
|
39807
|
-
|
|
39808
|
-
}
|
|
39888
|
+
static template = tmpl(comboboxHTML);
|
|
39889
|
+
static templateString = tmpl(stringHTML);
|
|
39890
|
+
/**
|
|
39891
|
+
* @internal
|
|
39892
|
+
*/
|
|
39809
39893
|
get attributes() {
|
|
39810
39894
|
return {
|
|
39811
39895
|
class: this.name,
|
|
39812
39896
|
'data-subtitles': '',
|
|
39813
39897
|
};
|
|
39814
39898
|
}
|
|
39899
|
+
/**
|
|
39900
|
+
* @internal
|
|
39901
|
+
*/
|
|
39815
39902
|
get events() {
|
|
39816
39903
|
return {
|
|
39817
39904
|
'click [data-subtitles-select]': 'onLevelSelect',
|
|
39818
39905
|
'click [data-subtitles-button]': 'onShowLevelSelectMenu',
|
|
39819
39906
|
};
|
|
39820
39907
|
}
|
|
39821
|
-
isPreselectedApplied = false;
|
|
39822
|
-
track = { ...NO_TRACK };
|
|
39823
39908
|
get preselectedLanguage() {
|
|
39824
39909
|
return this.core.options.subtitles?.language ?? 'off';
|
|
39825
39910
|
}
|
|
39911
|
+
/**
|
|
39912
|
+
* @internal
|
|
39913
|
+
*/
|
|
39826
39914
|
bindEvents() {
|
|
39827
|
-
this.
|
|
39828
|
-
|
|
39829
|
-
this.listenTo(this.core
|
|
39830
|
-
this.listenTo(this.core
|
|
39831
|
-
this.listenTo(
|
|
39832
|
-
|
|
39833
|
-
unBindEvents() {
|
|
39834
|
-
// @ts-ignore
|
|
39835
|
-
this.stopListening(this.core, Events$2.CORE_READY);
|
|
39836
|
-
// @ts-ignore
|
|
39837
|
-
this.stopListening(this.core.mediaControl, Events$2.MEDIACONTROL_CONTAINERCHANGED);
|
|
39838
|
-
// @ts-ignore
|
|
39839
|
-
this.stopListening(this.core.mediaControl, Events$2.MEDIACONTROL_RENDERED);
|
|
39840
|
-
// @ts-ignore
|
|
39841
|
-
this.stopListening(this.core.mediaControl, Events$2.MEDIACONTROL_HIDE);
|
|
39842
|
-
// @ts-ignore
|
|
39843
|
-
this.stopListening(this.core.mediaControl, Events$2.MEDIACONTROL_SHOW);
|
|
39844
|
-
if (this.currentContainer) {
|
|
39845
|
-
// @ts-ignore
|
|
39846
|
-
this.stopListening(this.currentContainer, Events$2.CONTAINER_FULLSCREEN);
|
|
39847
|
-
// @ts-ignore
|
|
39848
|
-
this.stopListening(this.currentContainer, 'container:advertisement:start', this.onStartAd);
|
|
39849
|
-
// @ts-ignore
|
|
39850
|
-
this.stopListening(this.currentContainer, 'container:advertisement:finish', this.onFinishAd);
|
|
39851
|
-
}
|
|
39915
|
+
const mediaControl = this.core.getPlugin('media_control');
|
|
39916
|
+
assert(mediaControl, 'media_control plugin is required');
|
|
39917
|
+
this.listenTo(this.core, Events$1.CORE_RESIZE, this.playerResize);
|
|
39918
|
+
this.listenTo(this.core, Events$1.CORE_ACTIVE_CONTAINER_CHANGED, this.bindPlaybackEvents);
|
|
39919
|
+
this.listenTo(mediaControl, Events$1.MEDIACONTROL_RENDERED, this.render);
|
|
39920
|
+
this.listenTo(mediaControl, Events$1.MEDIACONTROL_HIDE, this.hideSelectLevelMenu);
|
|
39852
39921
|
}
|
|
39853
39922
|
bindPlaybackEvents() {
|
|
39854
|
-
|
|
39855
|
-
|
|
39856
|
-
|
|
39857
|
-
}
|
|
39858
|
-
this.currentPlayback = this.core.activePlayback;
|
|
39859
|
-
this.currentContainer = this.core.activeContainer;
|
|
39860
|
-
this.listenTo(this.currentContainer, Events$2.CONTAINER_FULLSCREEN, this.playerResize);
|
|
39861
|
-
this.listenToOnce(this.currentPlayback, Events$2.PLAYBACK_PLAY, this.getTracks);
|
|
39862
|
-
this.listenTo(this.currentContainer, 'container:advertisement:start', this.onStartAd);
|
|
39923
|
+
this.listenTo(this.core.activeContainer, Events$1.CONTAINER_FULLSCREEN, this.playerResize);
|
|
39924
|
+
this.listenToOnce(this.core.activePlayback, Events$1.PLAYBACK_PLAY, this.getTracks);
|
|
39925
|
+
this.listenTo(this.core.activeContainer, 'container:advertisement:start', this.onStartAd);
|
|
39863
39926
|
// fix for iOS
|
|
39864
|
-
const video = this.
|
|
39927
|
+
const video = this.core.activePlayback.el;
|
|
39865
39928
|
assert(video, 'video element is required');
|
|
39866
39929
|
video.addEventListener('webkitbeginfullscreen', () => {
|
|
39867
39930
|
if (Browser.isiOS) {
|
|
@@ -39875,33 +39938,31 @@ class Subtitles extends UICorePlugin {
|
|
|
39875
39938
|
});
|
|
39876
39939
|
}
|
|
39877
39940
|
getTracks() {
|
|
39878
|
-
if (this.
|
|
39941
|
+
if (this.core.activePlayback) {
|
|
39879
39942
|
try {
|
|
39880
|
-
const tracks = this.
|
|
39881
|
-
|
|
39943
|
+
const tracks = this.core.activePlayback.el
|
|
39944
|
+
.textTracks;
|
|
39945
|
+
if (tracks.length > 0) {
|
|
39946
|
+
this.setTracks(tracks);
|
|
39947
|
+
}
|
|
39882
39948
|
}
|
|
39883
39949
|
catch (error) {
|
|
39884
39950
|
}
|
|
39885
39951
|
}
|
|
39886
39952
|
}
|
|
39887
39953
|
onStartAd() {
|
|
39888
|
-
if (this.isShowing && this.
|
|
39954
|
+
if (this.isShowing && this.core.activeContainer) {
|
|
39889
39955
|
this.hide();
|
|
39890
|
-
this.listenTo(this.
|
|
39956
|
+
this.listenTo(this.core.activeContainer, 'container:advertisement:finish', this.onFinishAd);
|
|
39891
39957
|
}
|
|
39892
39958
|
}
|
|
39893
39959
|
onFinishAd() {
|
|
39894
39960
|
this.show();
|
|
39895
|
-
this.stopListening(this.
|
|
39896
|
-
}
|
|
39897
|
-
reload() {
|
|
39898
|
-
this.unBindEvents();
|
|
39899
|
-
this.bindEvents();
|
|
39900
|
-
this.bindPlaybackEvents();
|
|
39961
|
+
this.stopListening(this.core.activeContainer, 'container:advertisement:finish', this.onFinishAd);
|
|
39901
39962
|
}
|
|
39902
39963
|
playerResize() {
|
|
39903
|
-
const shouldShow = this.
|
|
39904
|
-
isFullscreen(this.
|
|
39964
|
+
const shouldShow = this.core.activeContainer &&
|
|
39965
|
+
isFullscreen(this.core.activeContainer.el) &&
|
|
39905
39966
|
this.currentLevel &&
|
|
39906
39967
|
this.currentLevel.mode &&
|
|
39907
39968
|
Browser.isiOS &&
|
|
@@ -39915,6 +39976,9 @@ class Subtitles extends UICorePlugin {
|
|
|
39915
39976
|
catch (error) {
|
|
39916
39977
|
}
|
|
39917
39978
|
}
|
|
39979
|
+
/**
|
|
39980
|
+
* Hides the subtitles menu and the subtitles.
|
|
39981
|
+
*/
|
|
39918
39982
|
hide() {
|
|
39919
39983
|
this.isShowing = false;
|
|
39920
39984
|
this.renderIcon();
|
|
@@ -39925,11 +39989,14 @@ class Subtitles extends UICorePlugin {
|
|
|
39925
39989
|
}
|
|
39926
39990
|
}
|
|
39927
39991
|
}
|
|
39992
|
+
/**
|
|
39993
|
+
* Shows the subtitles menu and the subtitles.
|
|
39994
|
+
*/
|
|
39928
39995
|
show() {
|
|
39929
39996
|
this.isShowing = true;
|
|
39930
39997
|
this.renderIcon();
|
|
39931
|
-
if (this.
|
|
39932
|
-
isFullscreen(this.
|
|
39998
|
+
if (this.core.activeContainer &&
|
|
39999
|
+
isFullscreen(this.core.activeContainer.el) &&
|
|
39933
40000
|
this.currentLevel &&
|
|
39934
40001
|
this.currentLevel.mode &&
|
|
39935
40002
|
Browser.isiOS) {
|
|
@@ -39941,59 +40008,61 @@ class Subtitles extends UICorePlugin {
|
|
|
39941
40008
|
}
|
|
39942
40009
|
}
|
|
39943
40010
|
shouldRender() {
|
|
39944
|
-
|
|
39945
|
-
return false;
|
|
39946
|
-
}
|
|
39947
|
-
if (!this.currentPlayback) {
|
|
39948
|
-
return false;
|
|
39949
|
-
}
|
|
39950
|
-
// Only care if we have at least 2 to choose from
|
|
39951
|
-
const hasLevels = !!(this.tracks && this.tracks.length > 0);
|
|
39952
|
-
return hasLevels;
|
|
40011
|
+
return !!(this.tracks && this.tracks.length > 0);
|
|
39953
40012
|
}
|
|
39954
40013
|
resizeFont() {
|
|
39955
|
-
if (!this.
|
|
40014
|
+
if (!this.core.activeContainer) {
|
|
39956
40015
|
return;
|
|
39957
40016
|
}
|
|
39958
40017
|
if (!this.$string) {
|
|
39959
40018
|
return;
|
|
39960
40019
|
}
|
|
39961
|
-
const skinWidth = this.
|
|
40020
|
+
const skinWidth = this.core.activeContainer.$el.width();
|
|
39962
40021
|
this.$string.find('p').css('font-size', skinWidth * 0.03);
|
|
39963
40022
|
}
|
|
40023
|
+
/**
|
|
40024
|
+
* @internal
|
|
40025
|
+
*/
|
|
39964
40026
|
render() {
|
|
39965
|
-
if (this.
|
|
39966
|
-
|
|
39967
|
-
this.currentContainer?.$el.find('.subtitle-string').remove();
|
|
39968
|
-
this.$string = $(this.templateString());
|
|
39969
|
-
this.resizeFont();
|
|
39970
|
-
this.currentContainer?.$el.append(this.$string[0]);
|
|
39971
|
-
if (this.core.mediaControl.$subtitlesSelector &&
|
|
39972
|
-
this.core.mediaControl.$subtitlesSelector.length > 0) {
|
|
39973
|
-
this.core.mediaControl.$subtitlesSelector.append(this.el);
|
|
39974
|
-
}
|
|
39975
|
-
else {
|
|
39976
|
-
this.core.mediaControl.$('.media-control-right-panel').append(this.el);
|
|
39977
|
-
}
|
|
39978
|
-
this.updateCurrentLevel(this.track);
|
|
39979
|
-
this.highlightCurrentSubtitles();
|
|
39980
|
-
this.applyPreselectedSubtitles();
|
|
40027
|
+
if (!this.core.activeContainer) {
|
|
40028
|
+
return this;
|
|
39981
40029
|
}
|
|
39982
|
-
if (this.
|
|
39983
|
-
|
|
39984
|
-
this.renderIcon();
|
|
40030
|
+
if (!this.shouldRender()) {
|
|
40031
|
+
return this;
|
|
39985
40032
|
}
|
|
40033
|
+
trace(`${T$2} render`, {
|
|
40034
|
+
tracks: this.tracks?.length,
|
|
40035
|
+
track: this.track?.language,
|
|
40036
|
+
});
|
|
40037
|
+
const mediaControl = this.core.getPlugin('media_control');
|
|
40038
|
+
assert(mediaControl, 'media_control plugin is required');
|
|
40039
|
+
this.$el.html(Subtitles.template({ tracks: this.tracks }));
|
|
40040
|
+
this.core.activeContainer.$el.find('.subtitle-string').remove();
|
|
40041
|
+
this.$string = $(Subtitles.templateString());
|
|
40042
|
+
this.resizeFont();
|
|
40043
|
+
this.core.activeContainer.$el.append(this.$string[0]);
|
|
40044
|
+
const ss = mediaControl.getElement('subtitlesSelector');
|
|
40045
|
+
if (ss && ss.length > 0) {
|
|
40046
|
+
ss.append(this.el);
|
|
40047
|
+
}
|
|
40048
|
+
else {
|
|
40049
|
+
mediaControl.getRightPanel().append(this.el);
|
|
40050
|
+
}
|
|
40051
|
+
this.updateCurrentLevel(this.track);
|
|
40052
|
+
this.highlightCurrentSubtitles();
|
|
40053
|
+
this.applyPreselectedSubtitles();
|
|
40054
|
+
this.renderIcon();
|
|
39986
40055
|
return this;
|
|
39987
40056
|
}
|
|
39988
|
-
|
|
40057
|
+
setTracks(tracks) {
|
|
39989
40058
|
this.tracks = tracks;
|
|
39990
40059
|
this.render();
|
|
39991
40060
|
}
|
|
39992
40061
|
findLevelBy(id) {
|
|
39993
40062
|
if (this.tracks) {
|
|
39994
|
-
for (
|
|
39995
|
-
if (
|
|
39996
|
-
return
|
|
40063
|
+
for (const track of this.tracks) {
|
|
40064
|
+
if (track.language === id) {
|
|
40065
|
+
return track; // TODO TrackInfo?
|
|
39997
40066
|
}
|
|
39998
40067
|
}
|
|
39999
40068
|
}
|
|
@@ -40027,16 +40096,16 @@ class Subtitles extends UICorePlugin {
|
|
|
40027
40096
|
this.toggleContextMenu();
|
|
40028
40097
|
}
|
|
40029
40098
|
hideSelectLevelMenu() {
|
|
40030
|
-
this.$('
|
|
40099
|
+
this.$('[data-subtitles] ul').hide();
|
|
40031
40100
|
}
|
|
40032
40101
|
toggleContextMenu() {
|
|
40033
|
-
this.$('
|
|
40102
|
+
this.$('[data-subtitles] ul').toggle();
|
|
40034
40103
|
}
|
|
40035
40104
|
buttonElement() {
|
|
40036
|
-
return this.$('
|
|
40105
|
+
return this.$('[data-subtitles] button');
|
|
40037
40106
|
}
|
|
40038
40107
|
levelElement(id) {
|
|
40039
|
-
return this.$('
|
|
40108
|
+
return this.$('[data-subtitles] ul a' + (id ? '[data-subtitles-select="' + id + '"]' : '')).parent();
|
|
40040
40109
|
}
|
|
40041
40110
|
startLevelSwitch() {
|
|
40042
40111
|
this.buttonElement().addClass('changing');
|
|
@@ -40053,7 +40122,7 @@ class Subtitles extends UICorePlugin {
|
|
|
40053
40122
|
const track = this.tracks[i];
|
|
40054
40123
|
if (track.language === this.currentLevel.language) {
|
|
40055
40124
|
track.mode = 'showing';
|
|
40056
|
-
const currentTime = this.
|
|
40125
|
+
const currentTime = this.core.activePlayback?.getCurrentTime() ?? 0;
|
|
40057
40126
|
const cues = track.cues;
|
|
40058
40127
|
let subtitleText = '';
|
|
40059
40128
|
if (cues && cues.length) {
|
|
@@ -40113,8 +40182,10 @@ class Subtitles extends UICorePlugin {
|
|
|
40113
40182
|
}
|
|
40114
40183
|
renderIcon() {
|
|
40115
40184
|
const icon = this.isShowing ? subtitlesOnIcon : subtitlesOffIcon;
|
|
40116
|
-
this.core
|
|
40117
|
-
.
|
|
40185
|
+
this.core
|
|
40186
|
+
.getPlugin('media_control')
|
|
40187
|
+
.getElement('subtitlesSelector')
|
|
40188
|
+
?.find('span.subtitle-text')
|
|
40118
40189
|
.html(icon);
|
|
40119
40190
|
}
|
|
40120
40191
|
}
|
|
@@ -40308,18 +40379,18 @@ class Thumbnails extends UICorePlugin {
|
|
|
40308
40379
|
}
|
|
40309
40380
|
// TODO check if seek enabled
|
|
40310
40381
|
bindEvents() {
|
|
40311
|
-
this.listenToOnce(this.core, Events$
|
|
40312
|
-
this.listenTo(this.core.mediaControl, Events$
|
|
40313
|
-
this.listenTo(this.core.mediaControl, Events$
|
|
40314
|
-
this.listenTo(this.core.mediaControl, Events$
|
|
40315
|
-
this.listenTo(this.core.mediaControl, Events$
|
|
40382
|
+
this.listenToOnce(this.core, Events$1.CORE_READY, this._onCoreReady);
|
|
40383
|
+
this.listenTo(this.core.mediaControl, Events$1.MEDIACONTROL_MOUSEMOVE_SEEKBAR, this._onMouseMove);
|
|
40384
|
+
this.listenTo(this.core.mediaControl, Events$1.MEDIACONTROL_MOUSELEAVE_SEEKBAR, this._onMouseLeave);
|
|
40385
|
+
this.listenTo(this.core.mediaControl, Events$1.MEDIACONTROL_RENDERED, this._init);
|
|
40386
|
+
this.listenTo(this.core.mediaControl, Events$1.MEDIACONTROL_CONTAINERCHANGED, this._onMediaControlContainerChanged);
|
|
40316
40387
|
}
|
|
40317
40388
|
_bindContainerEvents() {
|
|
40318
40389
|
if (this._oldContainer) {
|
|
40319
|
-
this.stopListening(this._oldContainer, Events$
|
|
40390
|
+
this.stopListening(this._oldContainer, Events$1.CONTAINER_TIMEUPDATE, this._renderPlugin);
|
|
40320
40391
|
}
|
|
40321
40392
|
this._oldContainer = this.core.mediaControl.container;
|
|
40322
|
-
this.listenTo(this.core.mediaControl.container, Events$
|
|
40393
|
+
this.listenTo(this.core.mediaControl.container, Events$1.CONTAINER_TIMEUPDATE, this._renderPlugin);
|
|
40323
40394
|
}
|
|
40324
40395
|
_onCoreReady() {
|
|
40325
40396
|
try {
|
|
@@ -40710,9 +40781,15 @@ class SourceController extends CorePlugin {
|
|
|
40710
40781
|
sourcesDelay = {};
|
|
40711
40782
|
active = false;
|
|
40712
40783
|
sync = noSync;
|
|
40784
|
+
/**
|
|
40785
|
+
* @internal
|
|
40786
|
+
*/
|
|
40713
40787
|
get name() {
|
|
40714
40788
|
return 'source_controller';
|
|
40715
40789
|
}
|
|
40790
|
+
/**
|
|
40791
|
+
* @internal
|
|
40792
|
+
*/
|
|
40716
40793
|
get supportedVersion() {
|
|
40717
40794
|
return { min: CLAPPR_VERSION };
|
|
40718
40795
|
}
|
|
@@ -40732,7 +40809,7 @@ class SourceController extends CorePlugin {
|
|
|
40732
40809
|
*/
|
|
40733
40810
|
bindEvents() {
|
|
40734
40811
|
super.bindEvents();
|
|
40735
|
-
this.listenTo(this.core, Events$
|
|
40812
|
+
this.listenTo(this.core, Events$1.CORE_ACTIVE_CONTAINER_CHANGED, () => this.onReady());
|
|
40736
40813
|
}
|
|
40737
40814
|
onReady() {
|
|
40738
40815
|
trace(`${T} onReady`, {
|
|
@@ -40742,7 +40819,7 @@ class SourceController extends CorePlugin {
|
|
|
40742
40819
|
const spinner = this.core.activeContainer?.getPlugin('spinner');
|
|
40743
40820
|
if (spinner) {
|
|
40744
40821
|
this.sync = (cb) => {
|
|
40745
|
-
spinner.once(
|
|
40822
|
+
spinner.once(SpinnerEvents.SYNC, cb);
|
|
40746
40823
|
};
|
|
40747
40824
|
}
|
|
40748
40825
|
else {
|
|
@@ -40755,7 +40832,7 @@ class SourceController extends CorePlugin {
|
|
|
40755
40832
|
}
|
|
40756
40833
|
}
|
|
40757
40834
|
bindContainerEventListeners() {
|
|
40758
|
-
this.core.activePlayback.on(Events$
|
|
40835
|
+
this.core.activePlayback.on(Events$1.PLAYBACK_ERROR, (error) => {
|
|
40759
40836
|
trace(`${T} on PLAYBACK_ERROR`, {
|
|
40760
40837
|
error: {
|
|
40761
40838
|
code: error?.code,
|
|
@@ -40772,7 +40849,7 @@ class SourceController extends CorePlugin {
|
|
|
40772
40849
|
break;
|
|
40773
40850
|
}
|
|
40774
40851
|
});
|
|
40775
|
-
this.core.activePlayback.on(Events$
|
|
40852
|
+
this.core.activePlayback.on(Events$1.PLAYBACK_PLAY, () => {
|
|
40776
40853
|
trace(`${T} on PLAYBACK_PLAY`, {
|
|
40777
40854
|
currentSource: this.sourcesList[this.currentSourceIndex],
|
|
40778
40855
|
retrying: this.active,
|
|
@@ -40816,6 +40893,9 @@ class SourceController extends CorePlugin {
|
|
|
40816
40893
|
setTimeout(() => resolve(s), delay);
|
|
40817
40894
|
});
|
|
40818
40895
|
}
|
|
40896
|
+
/**
|
|
40897
|
+
* @internal
|
|
40898
|
+
*/
|
|
40819
40899
|
static get version() {
|
|
40820
40900
|
return VERSION;
|
|
40821
40901
|
}
|
|
@@ -40837,7 +40917,7 @@ class VolumeFade extends UICorePlugin {
|
|
|
40837
40917
|
return 'volume_fade';
|
|
40838
40918
|
}
|
|
40839
40919
|
bindEvents() {
|
|
40840
|
-
this.listenTo(this.core, Events$
|
|
40920
|
+
this.listenTo(this.core, Events$1.CORE_READY, this.onCoreReady);
|
|
40841
40921
|
if (this.core.mediaControl) {
|
|
40842
40922
|
this.listenTo(this.core.mediaControl, 'mediacontrol:volume:user', this._onUserChangeVolume);
|
|
40843
40923
|
}
|
|
@@ -40911,4 +40991,4 @@ class VolumeFade extends UICorePlugin {
|
|
|
40911
40991
|
}
|
|
40912
40992
|
}
|
|
40913
40993
|
|
|
40914
|
-
export { AudioSelector, BigMuteButton, BottomGear, ClapprNerdStats, ClapprStats, ClickToPause, ClipsPlugin, ContextMenu, DisableControls, DvrControls, ErrorScreen,
|
|
40994
|
+
export { AudioSelector, BigMuteButton, BottomGear, ClapprNerdStats, ClapprStats, ClickToPause, ClipsPlugin, ContextMenu, DisableControls, DvrControls, ErrorScreen, Favicon, GearEvents, GoogleAnalytics, Kibo, LevelSelector, Logo, MediaControl, MultiCamera, PictureInPicture, PlaybackRate, Poster, SeekTime, Share, SkipTime, SourceController, SpinnerEvents, SpinnerThreeBounce, Statistics, Subtitles, Thumbnails, VolumeFade, VolumeFadeEvents };
|