@gcorevideo/player 2.25.5 → 2.25.7
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/audio-tracks/template.ejs +5 -4
- package/assets/bottom-gear/gear.scss +40 -39
- package/assets/media-control/media-control.scss +343 -284
- package/assets/media-control/width270.scss +2 -10
- package/assets/media-control/width370.scss +3 -41
- package/assets/multi-camera/style.scss +9 -19
- package/assets/picture-in-picture/style.scss +13 -0
- package/assets/subtitles/style.scss +108 -68
- package/dist/core.js +1 -1
- package/dist/index.css +1346 -1422
- package/dist/index.embed.js +47 -28
- package/dist/index.js +85 -66
- package/lib/plugins/audio-selector/AudioTracks.d.ts +4 -3
- package/lib/plugins/audio-selector/AudioTracks.d.ts.map +1 -1
- package/lib/plugins/audio-selector/AudioTracks.js +41 -23
- package/lib/plugins/media-control/MediaControl.js +1 -1
- package/lib/plugins/picture-in-picture/PictureInPicture.d.ts +1 -1
- package/lib/plugins/picture-in-picture/PictureInPicture.d.ts.map +1 -1
- package/lib/plugins/picture-in-picture/PictureInPicture.js +1 -1
- package/package.json +1 -1
- package/src/plugins/audio-selector/AudioTracks.ts +53 -29
- package/src/plugins/audio-selector/__tests__/AudioTracks.test.ts +60 -45
- package/src/plugins/audio-selector/__tests__/__snapshots__/AudioSelector.test.ts.snap +24 -24
- package/src/plugins/audio-selector/__tests__/__snapshots__/AudioTracks.test.ts.snap +21 -18
- package/src/plugins/media-control/MediaControl.ts +1 -1
- package/src/plugins/media-control/__tests__/__snapshots__/MediaControl.test.ts.snap +6 -6
- package/src/plugins/picture-in-picture/PictureInPicture.ts +1 -1
- package/tsconfig.tsbuildinfo +1 -1
- package/assets/audio-tracks/style.scss +0 -124
- package/assets/picture-in-picture/button.scss +0 -12
package/dist/index.js
CHANGED
|
@@ -12680,7 +12680,7 @@ var PlaybackEvents;
|
|
|
12680
12680
|
// https://github.com/clappr/clappr/blob/8752995ea439321ac7ca3cd35e8c64de7a3c3d17/LICENSE
|
|
12681
12681
|
const AUTO$1 = -1;
|
|
12682
12682
|
const { now: now$2 } = Utils;
|
|
12683
|
-
const T$
|
|
12683
|
+
const T$o = 'playback.dash';
|
|
12684
12684
|
class DashPlayback extends BasePlayback {
|
|
12685
12685
|
_levels = null;
|
|
12686
12686
|
_currentLevel = null;
|
|
@@ -12954,10 +12954,10 @@ class DashPlayback extends BasePlayback {
|
|
|
12954
12954
|
}
|
|
12955
12955
|
_onPlaybackError = (event) => {
|
|
12956
12956
|
// TODO
|
|
12957
|
-
trace(`${T$
|
|
12957
|
+
trace(`${T$o} _onPlaybackError`, { event });
|
|
12958
12958
|
};
|
|
12959
12959
|
_onDASHJSSError = (event) => {
|
|
12960
|
-
trace(`${T$
|
|
12960
|
+
trace(`${T$o} _onDASHJSSError`, { event });
|
|
12961
12961
|
this._stopTimeUpdateTimer();
|
|
12962
12962
|
// Note that the other error types are deprecated
|
|
12963
12963
|
const e = event.error;
|
|
@@ -12992,7 +12992,7 @@ class DashPlayback extends BasePlayback {
|
|
|
12992
12992
|
}
|
|
12993
12993
|
};
|
|
12994
12994
|
triggerError(error) {
|
|
12995
|
-
trace(`${T$
|
|
12995
|
+
trace(`${T$o} triggerError`, { error });
|
|
12996
12996
|
// this triggers Events.ERROR to be handled by the UI
|
|
12997
12997
|
this.trigger(Events$1.PLAYBACK_ERROR, this.createError(error, {
|
|
12998
12998
|
useCodePrefix: false,
|
|
@@ -13031,10 +13031,10 @@ class DashPlayback extends BasePlayback {
|
|
|
13031
13031
|
}
|
|
13032
13032
|
get dvrEnabled() {
|
|
13033
13033
|
if (!this._dash) {
|
|
13034
|
-
trace(`${T$
|
|
13034
|
+
trace(`${T$o} dvrEnable no dash player instance`);
|
|
13035
13035
|
return false;
|
|
13036
13036
|
}
|
|
13037
|
-
trace(`${T$
|
|
13037
|
+
trace(`${T$o} get.dvrEnabled`, {
|
|
13038
13038
|
dvrWindowSize: this._dash?.getDVRWindowSize(),
|
|
13039
13039
|
minDvrSize: this._minDvrSize,
|
|
13040
13040
|
playbackType: this.getPlaybackType(),
|
|
@@ -13056,7 +13056,7 @@ class DashPlayback extends BasePlayback {
|
|
|
13056
13056
|
this.trigger(Events$1.PLAYBACK_PROGRESS, progress, {});
|
|
13057
13057
|
}
|
|
13058
13058
|
play() {
|
|
13059
|
-
trace(`${T$
|
|
13059
|
+
trace(`${T$o} play`, { dash: !!this._dash });
|
|
13060
13060
|
!this._dash && this._setup();
|
|
13061
13061
|
super.play();
|
|
13062
13062
|
this._startTimeUpdateTimer();
|
|
@@ -13142,7 +13142,7 @@ class DashPlayback extends BasePlayback {
|
|
|
13142
13142
|
}
|
|
13143
13143
|
// @ts-expect-error
|
|
13144
13144
|
get currentAudioTrack() {
|
|
13145
|
-
trace(`${T$
|
|
13145
|
+
trace(`${T$o} get currentAudioTrack`);
|
|
13146
13146
|
assert.ok(this._dash, 'DASH.js MediaPlayer is not initialized');
|
|
13147
13147
|
const t = this._dash.getCurrentTrackFor('audio');
|
|
13148
13148
|
if (!t) {
|
|
@@ -41850,7 +41850,7 @@ const AUTO = -1;
|
|
|
41850
41850
|
const DEFAULT_RECOVER_ATTEMPTS = 16;
|
|
41851
41851
|
Events$1.register('PLAYBACK_FRAGMENT_CHANGED');
|
|
41852
41852
|
Events$1.register('PLAYBACK_FRAGMENT_PARSING_METADATA');
|
|
41853
|
-
const T$
|
|
41853
|
+
const T$n = 'playback.hls';
|
|
41854
41854
|
class HlsPlayback extends BasePlayback {
|
|
41855
41855
|
_ccIsSetup = false;
|
|
41856
41856
|
_ccTracksUpdated = false;
|
|
@@ -42082,7 +42082,7 @@ class HlsPlayback extends BasePlayback {
|
|
|
42082
42082
|
maxMaxBufferLength: 4,
|
|
42083
42083
|
autoStartLoad: false,
|
|
42084
42084
|
}, this.options.playback.hlsjsConfig);
|
|
42085
|
-
trace(`${T$
|
|
42085
|
+
trace(`${T$n} _createHLSInstance`, { config });
|
|
42086
42086
|
this._hls = new Hls(config);
|
|
42087
42087
|
}
|
|
42088
42088
|
_attachHLSMedia() {
|
|
@@ -42175,7 +42175,7 @@ class HlsPlayback extends BasePlayback {
|
|
|
42175
42175
|
}
|
|
42176
42176
|
else {
|
|
42177
42177
|
Log.error('hlsjs: failed to recover', { evt, data });
|
|
42178
|
-
trace(`${T$
|
|
42178
|
+
trace(`${T$n} _recover failed to recover`, {
|
|
42179
42179
|
type: data.type,
|
|
42180
42180
|
details: data.details,
|
|
42181
42181
|
});
|
|
@@ -42261,7 +42261,7 @@ class HlsPlayback extends BasePlayback {
|
|
|
42261
42261
|
this.trigger(Events$1.PLAYBACK_SETTINGSUPDATE);
|
|
42262
42262
|
}
|
|
42263
42263
|
_onHLSJSError(evt, data) {
|
|
42264
|
-
trace(`${T$
|
|
42264
|
+
trace(`${T$n} _onHLSJSError`, {
|
|
42265
42265
|
fatal: data.fatal,
|
|
42266
42266
|
type: data.type,
|
|
42267
42267
|
details: data.details,
|
|
@@ -42309,7 +42309,7 @@ class HlsPlayback extends BasePlayback {
|
|
|
42309
42309
|
evt,
|
|
42310
42310
|
data,
|
|
42311
42311
|
});
|
|
42312
|
-
trace(`${T$
|
|
42312
|
+
trace(`${T$n} _onHLSJSError trying to recover from network error`, {
|
|
42313
42313
|
details: data.details,
|
|
42314
42314
|
});
|
|
42315
42315
|
error.level = PlayerError.Levels.WARN;
|
|
@@ -42322,7 +42322,7 @@ class HlsPlayback extends BasePlayback {
|
|
|
42322
42322
|
evt,
|
|
42323
42323
|
data,
|
|
42324
42324
|
});
|
|
42325
|
-
trace(`${T$
|
|
42325
|
+
trace(`${T$n} _onHLSJSError trying to recover from media error`, {
|
|
42326
42326
|
details: data.details,
|
|
42327
42327
|
});
|
|
42328
42328
|
error.level = PlayerError.Levels.WARN;
|
|
@@ -42352,7 +42352,7 @@ class HlsPlayback extends BasePlayback {
|
|
|
42352
42352
|
return;
|
|
42353
42353
|
}
|
|
42354
42354
|
Log.warn('hlsjs: non-fatal error occurred', { evt, data });
|
|
42355
|
-
trace(`${T$
|
|
42355
|
+
trace(`${T$n} _onHLSJSError non-fatal error occurred`, {
|
|
42356
42356
|
type: data.type,
|
|
42357
42357
|
details: data.details,
|
|
42358
42358
|
});
|
|
@@ -42686,11 +42686,11 @@ class HlsPlayback extends BasePlayback {
|
|
|
42686
42686
|
this._hls.audioTrack = Number(id); // TODO or find index by .id == id?
|
|
42687
42687
|
}
|
|
42688
42688
|
_onAudioTracksUpdated(_, data) {
|
|
42689
|
-
trace(`${T$
|
|
42689
|
+
trace(`${T$n} onAudioTracksUpdated`);
|
|
42690
42690
|
this.trigger(Events$1.PLAYBACK_AUDIO_AVAILABLE, data.audioTracks.map(toClapprTrack));
|
|
42691
42691
|
}
|
|
42692
42692
|
_onAudioTrackSwitched(_, data) {
|
|
42693
|
-
trace(`${T$
|
|
42693
|
+
trace(`${T$n} onAudioTrackSwitched`);
|
|
42694
42694
|
// @ts-ignore
|
|
42695
42695
|
const track = this._hls.audioTracks[data.id];
|
|
42696
42696
|
this.trigger(Events$1.PLAYBACK_AUDIO_CHANGED, toClapprTrack(track));
|
|
@@ -42711,7 +42711,7 @@ function toClapprTrack(t) {
|
|
|
42711
42711
|
};
|
|
42712
42712
|
}
|
|
42713
42713
|
|
|
42714
|
-
const T$
|
|
42714
|
+
const T$m = 'playback.html5_video';
|
|
42715
42715
|
const STALL_TIMEOUT = 15000;
|
|
42716
42716
|
class HTML5Video extends BasePlayback {
|
|
42717
42717
|
stallTimerId = null;
|
|
@@ -42719,7 +42719,7 @@ class HTML5Video extends BasePlayback {
|
|
|
42719
42719
|
* @internal
|
|
42720
42720
|
*/
|
|
42721
42721
|
createError(errorData, options) {
|
|
42722
|
-
trace(`${T$
|
|
42722
|
+
trace(`${T$m} createError`, {
|
|
42723
42723
|
errorData: { ...errorData },
|
|
42724
42724
|
});
|
|
42725
42725
|
const i18n = this.i18n ||
|
|
@@ -42735,11 +42735,11 @@ class HTML5Video extends BasePlayback {
|
|
|
42735
42735
|
return super.createError(errorData, { ...options, useCodePrefix: false });
|
|
42736
42736
|
}
|
|
42737
42737
|
_onWaiting() {
|
|
42738
|
-
trace(`${T$
|
|
42738
|
+
trace(`${T$m} _onWaiting`);
|
|
42739
42739
|
super._onWaiting();
|
|
42740
42740
|
}
|
|
42741
42741
|
_onEnded() {
|
|
42742
|
-
trace(`${T$
|
|
42742
|
+
trace(`${T$m} _onEnded`);
|
|
42743
42743
|
if (this.stallTimerId) {
|
|
42744
42744
|
clearTimeout(this.stallTimerId);
|
|
42745
42745
|
this.stallTimerId = null;
|
|
@@ -42747,12 +42747,12 @@ class HTML5Video extends BasePlayback {
|
|
|
42747
42747
|
super._onEnded();
|
|
42748
42748
|
}
|
|
42749
42749
|
_handleBufferingEvents() {
|
|
42750
|
-
trace(`${T$
|
|
42750
|
+
trace(`${T$m} _handleBufferingEvents`, {
|
|
42751
42751
|
networkState: this.el.networkState,
|
|
42752
42752
|
});
|
|
42753
42753
|
if (!this.stallTimerId) {
|
|
42754
42754
|
this.stallTimerId = setTimeout(() => {
|
|
42755
|
-
trace(`${T$
|
|
42755
|
+
trace(`${T$m} _handleBufferingEvents stall timeout`, {
|
|
42756
42756
|
buffering: this.buffering,
|
|
42757
42757
|
ended: this.ended,
|
|
42758
42758
|
});
|
|
@@ -42770,7 +42770,7 @@ class HTML5Video extends BasePlayback {
|
|
|
42770
42770
|
super._handleBufferingEvents();
|
|
42771
42771
|
}
|
|
42772
42772
|
_onPlaying() {
|
|
42773
|
-
trace(`${T$
|
|
42773
|
+
trace(`${T$m} _onPlaying`);
|
|
42774
42774
|
if (this.stallTimerId) {
|
|
42775
42775
|
clearTimeout(this.stallTimerId);
|
|
42776
42776
|
this.stallTimerId = null;
|
|
@@ -42778,7 +42778,7 @@ class HTML5Video extends BasePlayback {
|
|
|
42778
42778
|
super._onPlaying();
|
|
42779
42779
|
}
|
|
42780
42780
|
_onPause() {
|
|
42781
|
-
trace(`${T$
|
|
42781
|
+
trace(`${T$m} _onPause`);
|
|
42782
42782
|
super._onPause();
|
|
42783
42783
|
if (this.stallTimerId) {
|
|
42784
42784
|
clearTimeout(this.stallTimerId);
|
|
@@ -42788,7 +42788,7 @@ class HTML5Video extends BasePlayback {
|
|
|
42788
42788
|
get audioTracks() {
|
|
42789
42789
|
const tracks = this.el.audioTracks;
|
|
42790
42790
|
const supported = !!tracks;
|
|
42791
|
-
trace(`${T$
|
|
42791
|
+
trace(`${T$m} get audioTracks`, { supported });
|
|
42792
42792
|
const retval = [];
|
|
42793
42793
|
if (supported) {
|
|
42794
42794
|
for (let i = 0; i < tracks.length; i++) {
|
|
@@ -42807,7 +42807,7 @@ class HTML5Video extends BasePlayback {
|
|
|
42807
42807
|
get currentAudioTrack() {
|
|
42808
42808
|
const tracks = this.el.audioTracks;
|
|
42809
42809
|
const supported = !!tracks;
|
|
42810
|
-
trace(`${T$
|
|
42810
|
+
trace(`${T$m} get currentAudioTrack`, {
|
|
42811
42811
|
supported,
|
|
42812
42812
|
});
|
|
42813
42813
|
if (supported) {
|
|
@@ -42828,7 +42828,7 @@ class HTML5Video extends BasePlayback {
|
|
|
42828
42828
|
switchAudioTrack(id) {
|
|
42829
42829
|
const tracks = this.el.audioTracks;
|
|
42830
42830
|
const supported = !!tracks;
|
|
42831
|
-
trace(`${T$
|
|
42831
|
+
trace(`${T$m} switchAudioTrack`, {
|
|
42832
42832
|
supported,
|
|
42833
42833
|
});
|
|
42834
42834
|
if (supported) {
|
|
@@ -42847,7 +42847,7 @@ function registerPlaybacks() {
|
|
|
42847
42847
|
Loader.registerPlayback(DashPlayback);
|
|
42848
42848
|
}
|
|
42849
42849
|
|
|
42850
|
-
const T$
|
|
42850
|
+
const T$l = 'gplayer';
|
|
42851
42851
|
const DEFAULT_OPTIONS = {
|
|
42852
42852
|
autoPlay: false,
|
|
42853
42853
|
debug: 'none',
|
|
@@ -42935,7 +42935,7 @@ class Player {
|
|
|
42935
42935
|
* ```
|
|
42936
42936
|
*/
|
|
42937
42937
|
attachTo(playerElement) {
|
|
42938
|
-
trace(`${T$
|
|
42938
|
+
trace(`${T$l} attachTo`, {
|
|
42939
42939
|
player: !!this.player,
|
|
42940
42940
|
});
|
|
42941
42941
|
assert.ok(!this.player, 'Player already initialized');
|
|
@@ -42945,7 +42945,7 @@ class Player {
|
|
|
42945
42945
|
}
|
|
42946
42946
|
const coreOpts = this.buildCoreOptions(playerElement);
|
|
42947
42947
|
const { core, container } = Player.getRegisteredPlugins();
|
|
42948
|
-
trace(`${T$
|
|
42948
|
+
trace(`${T$l} init`, {
|
|
42949
42949
|
registeredPlaybacks: Loader.registeredPlaybacks.map((p) => p.prototype.name),
|
|
42950
42950
|
});
|
|
42951
42951
|
coreOpts.plugins = {
|
|
@@ -42959,7 +42959,7 @@ class Player {
|
|
|
42959
42959
|
* Destroys the player, releasing all resources and unmounting its UI from the DOM.
|
|
42960
42960
|
*/
|
|
42961
42961
|
destroy() {
|
|
42962
|
-
trace(`${T$
|
|
42962
|
+
trace(`${T$l} destroy`, {
|
|
42963
42963
|
player: !!this.player,
|
|
42964
42964
|
});
|
|
42965
42965
|
if (this.player) {
|
|
@@ -43146,7 +43146,7 @@ class Player {
|
|
|
43146
43146
|
this.config = $.extend(true, this.config, config);
|
|
43147
43147
|
}
|
|
43148
43148
|
initPlayer(coreOptions) {
|
|
43149
|
-
trace(`${T$
|
|
43149
|
+
trace(`${T$l} initPlayer`, {
|
|
43150
43150
|
autoPlay: coreOptions.autoPlay,
|
|
43151
43151
|
sources: coreOptions.sources,
|
|
43152
43152
|
player: !!this.player,
|
|
@@ -43171,7 +43171,7 @@ class Player {
|
|
|
43171
43171
|
}
|
|
43172
43172
|
}
|
|
43173
43173
|
triggerAutoPlay() {
|
|
43174
|
-
trace(`${T$
|
|
43174
|
+
trace(`${T$l} triggerAutoPlay`);
|
|
43175
43175
|
setTimeout(() => {
|
|
43176
43176
|
this.player?.play({
|
|
43177
43177
|
autoPlay: true,
|
|
@@ -43189,7 +43189,7 @@ class Player {
|
|
|
43189
43189
|
// TODO test
|
|
43190
43190
|
events = {
|
|
43191
43191
|
onReady: () => {
|
|
43192
|
-
trace(`${T$
|
|
43192
|
+
trace(`${T$l} onReady`, {
|
|
43193
43193
|
ready: this.ready,
|
|
43194
43194
|
});
|
|
43195
43195
|
if (this.ready) {
|
|
@@ -43223,7 +43223,7 @@ class Player {
|
|
|
43223
43223
|
buildCoreOptions(rootNode) {
|
|
43224
43224
|
const sources = this.buildMediaSourcesList();
|
|
43225
43225
|
const source = sources[0];
|
|
43226
|
-
trace(`${T$
|
|
43226
|
+
trace(`${T$l} buildCoreOptions`, {
|
|
43227
43227
|
source,
|
|
43228
43228
|
sources,
|
|
43229
43229
|
});
|
|
@@ -43284,7 +43284,7 @@ class Player {
|
|
|
43284
43284
|
assert.ok(this.player, 'Player is not initialized');
|
|
43285
43285
|
const core = this.player.core;
|
|
43286
43286
|
core.on(Events$1.CORE_SCREEN_ORIENTATION_CHANGED, ({ orientation }) => {
|
|
43287
|
-
trace(`${T$
|
|
43287
|
+
trace(`${T$l} on CORE_SCREEN_ORIENTATION_CHANGED`, {
|
|
43288
43288
|
orientation,
|
|
43289
43289
|
rootNode: {
|
|
43290
43290
|
width: this.rootNode?.clientWidth,
|
|
@@ -43299,14 +43299,14 @@ class Player {
|
|
|
43299
43299
|
}
|
|
43300
43300
|
}, null);
|
|
43301
43301
|
core.on(Events$1.CORE_RESIZE, ({ width, height }) => {
|
|
43302
|
-
trace(`${T$
|
|
43302
|
+
trace(`${T$l} on CORE_RESIZE`, {
|
|
43303
43303
|
width,
|
|
43304
43304
|
height,
|
|
43305
43305
|
});
|
|
43306
43306
|
this.safeTriggerEvent(PlayerEvent.Resize, { width, height });
|
|
43307
43307
|
}, null);
|
|
43308
43308
|
core.on(Events$1.CORE_FULLSCREEN, (isFullscreen) => {
|
|
43309
|
-
trace(`${T$
|
|
43309
|
+
trace(`${T$l} CORE_FULLSCREEN`, {
|
|
43310
43310
|
isFullscreen,
|
|
43311
43311
|
});
|
|
43312
43312
|
this.safeTriggerEvent(PlayerEvent.Fullscreen, isFullscreen);
|
|
@@ -43314,7 +43314,7 @@ class Player {
|
|
|
43314
43314
|
}
|
|
43315
43315
|
}
|
|
43316
43316
|
|
|
43317
|
-
var version$1 = "2.25.
|
|
43317
|
+
var version$1 = "2.25.7";
|
|
43318
43318
|
|
|
43319
43319
|
var packages = {
|
|
43320
43320
|
"node_modules/@clappr/core": {
|
|
@@ -43338,7 +43338,7 @@ function version() {
|
|
|
43338
43338
|
};
|
|
43339
43339
|
}
|
|
43340
43340
|
|
|
43341
|
-
const pluginHtml$6 = "<button
|
|
43341
|
+
const pluginHtml$6 = "<button class='gcore-skin-button-color media-control-dd' id=\"gplayer-audiotracks-button\" aria-haspopup=\"menu\" aria-expanded=\"false\">\n <span class=\"media-control-dd__text\" id=\"gplayer-audiotracks-button-text\"><%= title %></span>\n <span class=\"media-control-dd__arrow\"><%= icon %></span>\n</button>\n<ul class=\"gcore-skin-bg-color menu media-control-dd__popup\" id=\"gplayer-audiotracks-menu\" role=\"menu\">\n <% for (const track of tracks) { %>\n <li>\n <a href=\"#\" class=\"gcore-skin-text-color\" data-item=\"<%= track.id %>\" role=\"menuitemradio\" aria-checked=\"<%= track.id === current %>\">\n <%= track.label %>\n </a>\n </li>\n <% }; %>\n</ul>\n";
|
|
43342
43342
|
|
|
43343
43343
|
const audioArrow = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<svg width=\"9px\" height=\"6px\" viewBox=\"0 0 9 6\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n <!-- Generator: Sketch 49 (51002) - http://www.bohemiancoding.com/sketch -->\n <title>quality-arrow</title>\n <desc>Created with Sketch.</desc>\n <defs></defs>\n <g id=\"quality-arrow\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n <path\n d=\"M5.07079194,5.78553848 C4.91457318,5.94277844 4.70551573,6.00941824 4.50028717,5.99893557 C4.2950586,6.00941824 4.08676693,5.94277844 3.92978239,5.78553848 L0.221118462,1.2997069 C-0.0737061539,1.00469478 -0.0737061539,0.526236029 0.221118462,0.231972666 C0.515177299,-0.0630394586 1.23500883,0.00734414472 1.64852907,0.00734414472 L7.77475484,0.00734414472 C8.21201421,0.00734414472 8.48539703,-0.0630394586 8.77945587,0.231972666 C9.07351471,0.526236029 9.07351471,1.00469478 8.77945587,1.2997069 L5.07079194,5.78553848 Z\"\n fill=\"#FFFFFE\"></path>\n </g>\n</svg>\n";
|
|
43344
43344
|
|
|
@@ -43649,7 +43649,7 @@ const INITIAL_SETTINGS = {
|
|
|
43649
43649
|
default: [],
|
|
43650
43650
|
seekEnabled: false,
|
|
43651
43651
|
};
|
|
43652
|
-
const T$
|
|
43652
|
+
const T$k = 'plugins.media_control';
|
|
43653
43653
|
/**
|
|
43654
43654
|
* Extended events for the {@link MediaControl} plugin
|
|
43655
43655
|
* @beta
|
|
@@ -43931,7 +43931,7 @@ class MediaControl extends UICorePlugin {
|
|
|
43931
43931
|
* Hides the media control UI
|
|
43932
43932
|
*/
|
|
43933
43933
|
disable() {
|
|
43934
|
-
trace(`${T$
|
|
43934
|
+
trace(`${T$k} disable`);
|
|
43935
43935
|
this.userDisabled = true; // TODO distinguish between user and system (e.g., unplayable) disabled?
|
|
43936
43936
|
this.hide();
|
|
43937
43937
|
this.unbindKeyEvents();
|
|
@@ -43941,7 +43941,7 @@ class MediaControl extends UICorePlugin {
|
|
|
43941
43941
|
* Reenables the plugin disabled earlier with the {@link MediaControl.disable} method
|
|
43942
43942
|
*/
|
|
43943
43943
|
enable() {
|
|
43944
|
-
trace(`${T$
|
|
43944
|
+
trace(`${T$k} enable`);
|
|
43945
43945
|
if (this.options.chromeless) {
|
|
43946
43946
|
return;
|
|
43947
43947
|
}
|
|
@@ -44490,7 +44490,7 @@ class MediaControl extends UICorePlugin {
|
|
|
44490
44490
|
const panel = this.getElementLocation(name);
|
|
44491
44491
|
if (panel) {
|
|
44492
44492
|
element.attr(`data-${name}`, '');
|
|
44493
|
-
element.addClass('
|
|
44493
|
+
element.addClass('media-control-item');
|
|
44494
44494
|
mountTo(panel, element);
|
|
44495
44495
|
}
|
|
44496
44496
|
}
|
|
@@ -44871,7 +44871,7 @@ function mergeElements(a, b) {
|
|
|
44871
44871
|
}
|
|
44872
44872
|
|
|
44873
44873
|
const VERSION$7 = '2.22.4';
|
|
44874
|
-
const T
|
|
44874
|
+
// const T = 'plugins.audiotracks'
|
|
44875
44875
|
/**
|
|
44876
44876
|
* `PLUGIN` that makes possible to switch audio tracks via the media control UI.
|
|
44877
44877
|
* @beta
|
|
@@ -44884,6 +44884,7 @@ const T$k = 'plugins.audiotracks';
|
|
|
44884
44884
|
*/
|
|
44885
44885
|
class AudioTracks extends UICorePlugin {
|
|
44886
44886
|
currentTrack = null;
|
|
44887
|
+
open = false;
|
|
44887
44888
|
tracks = [];
|
|
44888
44889
|
/**
|
|
44889
44890
|
* @internal
|
|
@@ -44909,7 +44910,7 @@ class AudioTracks extends UICorePlugin {
|
|
|
44909
44910
|
*/
|
|
44910
44911
|
get attributes() {
|
|
44911
44912
|
return {
|
|
44912
|
-
class: 'media-control-audiotracks',
|
|
44913
|
+
class: 'media-control-audiotracks media-control-dd__wrap',
|
|
44913
44914
|
};
|
|
44914
44915
|
}
|
|
44915
44916
|
/**
|
|
@@ -44917,8 +44918,8 @@ class AudioTracks extends UICorePlugin {
|
|
|
44917
44918
|
*/
|
|
44918
44919
|
get events() {
|
|
44919
44920
|
return {
|
|
44920
|
-
'click [data-
|
|
44921
|
-
'click #audiotracks-button': 'toggleMenu',
|
|
44921
|
+
'click #gplayer-audiotracks-menu [data-item]': 'onTrackSelect',
|
|
44922
|
+
'click #gplayer-audiotracks-button': 'toggleMenu',
|
|
44922
44923
|
};
|
|
44923
44924
|
}
|
|
44924
44925
|
/**
|
|
@@ -44932,8 +44933,9 @@ class AudioTracks extends UICorePlugin {
|
|
|
44932
44933
|
const mediaControl = this.core.getPlugin('media_control');
|
|
44933
44934
|
assert(mediaControl, 'media_control plugin is required');
|
|
44934
44935
|
this.listenTo(mediaControl, Events$1.MEDIACONTROL_RENDERED, () => {
|
|
44935
|
-
|
|
44936
|
+
this.mount();
|
|
44936
44937
|
});
|
|
44938
|
+
// TODO when tracks change, re-render and re-attach
|
|
44937
44939
|
this.listenTo(mediaControl, Events$1.MEDIACONTROL_HIDE, this.hideMenu);
|
|
44938
44940
|
this.listenTo(mediaControl, ExtendedEvents.MEDIACONTROL_MENU_COLLAPSE, (from) => {
|
|
44939
44941
|
if (from !== this.name) {
|
|
@@ -44948,6 +44950,7 @@ class AudioTracks extends UICorePlugin {
|
|
|
44948
44950
|
tracks.find((track) => track.kind === 'main') ?? null; // TODO test
|
|
44949
44951
|
this.tracks = tracks;
|
|
44950
44952
|
this.render();
|
|
44953
|
+
this.mount();
|
|
44951
44954
|
});
|
|
44952
44955
|
this.listenTo(this.core.activeContainer, Events$1.CONTAINER_AUDIO_CHANGED, (track) => {
|
|
44953
44956
|
this.currentTrack = track;
|
|
@@ -44955,6 +44958,10 @@ class AudioTracks extends UICorePlugin {
|
|
|
44955
44958
|
this.buttonElement().removeClass('changing');
|
|
44956
44959
|
this.updateText();
|
|
44957
44960
|
});
|
|
44961
|
+
// TODO test
|
|
44962
|
+
this.listenTo(this.core.activeContainer, Events$1.CONTAINER_CLICK, () => {
|
|
44963
|
+
this.hideMenu();
|
|
44964
|
+
});
|
|
44958
44965
|
}
|
|
44959
44966
|
shouldRender() {
|
|
44960
44967
|
// Render is called from the parent class constructor so tracks aren't available
|
|
@@ -44965,21 +44972,19 @@ class AudioTracks extends UICorePlugin {
|
|
|
44965
44972
|
* @internal
|
|
44966
44973
|
*/
|
|
44967
44974
|
render() {
|
|
44968
|
-
if (!this.shouldRender()) {
|
|
44969
|
-
return this;
|
|
44970
|
-
}
|
|
44971
44975
|
this.$el.html(AudioTracks.template({
|
|
44972
|
-
tracks: this.tracks,
|
|
44976
|
+
tracks: this.tracks ?? [],
|
|
44973
44977
|
title: this.getTitle(),
|
|
44974
44978
|
icon: audioArrow,
|
|
44975
44979
|
current: this.currentTrack?.id,
|
|
44976
44980
|
}));
|
|
44981
|
+
this.$el.find('#gplayer-audiotracks-menu').hide();
|
|
44977
44982
|
this.updateText();
|
|
44978
44983
|
this.highlightCurrentTrack();
|
|
44979
44984
|
return this;
|
|
44980
44985
|
}
|
|
44981
44986
|
onTrackSelect(event) {
|
|
44982
|
-
const id = event.currentTarget?.dataset?.
|
|
44987
|
+
const id = event.currentTarget?.dataset?.item;
|
|
44983
44988
|
if (id) {
|
|
44984
44989
|
this.selectAudioTrack(id);
|
|
44985
44990
|
}
|
|
@@ -44993,25 +44998,34 @@ class AudioTracks extends UICorePlugin {
|
|
|
44993
44998
|
this.updateText();
|
|
44994
44999
|
}
|
|
44995
45000
|
hideMenu() {
|
|
44996
|
-
|
|
44997
|
-
this.$el.find('#audiotracks-
|
|
44998
|
-
this.$el.find('#audiotracks-button').attr('aria-expanded', 'false');
|
|
45001
|
+
this.open = false;
|
|
45002
|
+
this.$el.find('#gplayer-audiotracks-menu').hide();
|
|
45003
|
+
this.$el.find('#gplayer-audiotracks-button').attr('aria-expanded', 'false');
|
|
44999
45004
|
}
|
|
45000
45005
|
toggleMenu() {
|
|
45001
|
-
this.
|
|
45002
|
-
this
|
|
45003
|
-
|
|
45004
|
-
|
|
45006
|
+
this.open = !this.open;
|
|
45007
|
+
this.core
|
|
45008
|
+
.getPlugin('media_control')
|
|
45009
|
+
.trigger(ExtendedEvents.MEDIACONTROL_MENU_COLLAPSE, this.name);
|
|
45010
|
+
if (this.open) {
|
|
45011
|
+
this.$el.find('#gplayer-audiotracks-menu').show();
|
|
45012
|
+
}
|
|
45013
|
+
else {
|
|
45014
|
+
this.$el.find('#gplayer-audiotracks-menu').hide();
|
|
45015
|
+
}
|
|
45016
|
+
this.$el
|
|
45017
|
+
.find('#gplayer-audiotracks-button')
|
|
45018
|
+
.attr('aria-expanded', this.open);
|
|
45005
45019
|
}
|
|
45006
45020
|
buttonElement() {
|
|
45007
|
-
return this.$('button');
|
|
45021
|
+
return this.$('#gplayer-audiotracks-button');
|
|
45008
45022
|
}
|
|
45009
45023
|
buttonElementText() {
|
|
45010
|
-
return this.$('button
|
|
45024
|
+
return this.$el.find('#gplayer-audiotracks-button-text');
|
|
45011
45025
|
}
|
|
45012
45026
|
trackElement(id) {
|
|
45013
|
-
return this.$('#audiotracks-
|
|
45014
|
-
(id !== undefined ? `[data-
|
|
45027
|
+
return this.$('#gplayer-audiotracks-menu a' +
|
|
45028
|
+
(id !== undefined ? `[data-item="${id}"]` : '')).parent();
|
|
45015
45029
|
}
|
|
45016
45030
|
getTitle() {
|
|
45017
45031
|
if (!this.currentTrack) {
|
|
@@ -45042,6 +45056,11 @@ class AudioTracks extends UICorePlugin {
|
|
|
45042
45056
|
.attr('aria-checked', 'true');
|
|
45043
45057
|
}
|
|
45044
45058
|
}
|
|
45059
|
+
mount() {
|
|
45060
|
+
if (this.shouldRender()) {
|
|
45061
|
+
this.core.getPlugin('media_control')?.slot('audiotracks', this.$el);
|
|
45062
|
+
}
|
|
45063
|
+
}
|
|
45045
45064
|
}
|
|
45046
45065
|
|
|
45047
45066
|
const templateHtml$2 = "<div class=\"big-mute-icon-wrapper\" data-big-mute id=\"gplayer-big-mute-button\">\n <div class=\"big-mute-icon gcore-skin-border-color\" data-big-mute-icon id=\"gplayer-big-mute-icon\"></div>\n</div>\n";
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { UICorePlugin } from '@clappr/core';
|
|
2
|
-
import '../../../assets/audio-tracks/style.scss';
|
|
3
2
|
/**
|
|
4
3
|
* `PLUGIN` that makes possible to switch audio tracks via the media control UI.
|
|
5
4
|
* @beta
|
|
@@ -12,6 +11,7 @@ import '../../../assets/audio-tracks/style.scss';
|
|
|
12
11
|
*/
|
|
13
12
|
export declare class AudioTracks extends UICorePlugin {
|
|
14
13
|
private currentTrack;
|
|
14
|
+
private open;
|
|
15
15
|
private tracks;
|
|
16
16
|
/**
|
|
17
17
|
* @internal
|
|
@@ -38,8 +38,8 @@ export declare class AudioTracks extends UICorePlugin {
|
|
|
38
38
|
* @internal
|
|
39
39
|
*/
|
|
40
40
|
get events(): {
|
|
41
|
-
'click [data-
|
|
42
|
-
'click #audiotracks-button': string;
|
|
41
|
+
'click #gplayer-audiotracks-menu [data-item]': string;
|
|
42
|
+
'click #gplayer-audiotracks-button': string;
|
|
43
43
|
};
|
|
44
44
|
/**
|
|
45
45
|
* @internal
|
|
@@ -63,5 +63,6 @@ export declare class AudioTracks extends UICorePlugin {
|
|
|
63
63
|
private startTrackSwitching;
|
|
64
64
|
private updateText;
|
|
65
65
|
private highlightCurrentTrack;
|
|
66
|
+
private mount;
|
|
66
67
|
}
|
|
67
68
|
//# sourceMappingURL=AudioTracks.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AudioTracks.d.ts","sourceRoot":"","sources":["../../../src/plugins/audio-selector/AudioTracks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,YAAY,EAAY,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"AudioTracks.d.ts","sourceRoot":"","sources":["../../../src/plugins/audio-selector/AudioTracks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,YAAY,EAAY,MAAM,cAAc,CAAA;AAgB7D;;;;;;;;;GASG;AACH,qBAAa,WAAY,SAAQ,YAAY;IAC3C,OAAO,CAAC,YAAY,CAA0B;IAE9C,OAAO,CAAC,IAAI,CAAQ;IAEpB,OAAO,CAAC,MAAM,CAAmB;IAEjC;;OAEG;IACH,IAAI,IAAI,WAEP;IAED;;OAEG;IACH,IAAI,gBAAgB;;MAEnB;IAED;;OAEG;IACH,MAAM,KAAK,OAAO,WAEjB;IAED,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAuB;IAEvD;;OAEG;IACH,IAAa,UAAU;;MAItB;IAED;;OAEG;IACH,IAAa,MAAM;;;MAKlB;IAED;;OAEG;IACM,UAAU;IASnB,OAAO,CAAC,WAAW;IAoBnB,OAAO,CAAC,wBAAwB;IA6BhC,OAAO,CAAC,YAAY;IAMpB;;OAEG;IACM,MAAM;IAgBf,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,QAAQ;IAMhB,OAAO,CAAC,UAAU;IAgBlB,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,QAAQ;IAOhB,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,UAAU;IAOlB,OAAO,CAAC,qBAAqB;IAgB7B,OAAO,CAAC,KAAK;CAKd"}
|