@gcorevideo/player 2.22.20 → 2.22.22
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/clappr-nerd-stats/clappr-nerd-stats.ejs +30 -30
- package/assets/clappr-nerd-stats/clappr-nerd-stats.scss +21 -14
- package/assets/level-selector/button.ejs +1 -1
- package/dist/core.js +1 -1
- package/dist/index.css +696 -688
- package/dist/index.js +271 -247
- package/dist/player.d.ts +57 -27
- package/dist/plugins/index.css +335 -327
- package/dist/plugins/index.js +109 -89
- package/docs/api/{player.bitratetrackrecord.md → player.clapprstatsbitratetrack.md} +3 -3
- package/docs/api/player.clapprstatsmetrics.md +2 -2
- package/docs/api/player.extendedevents.md +45 -0
- package/docs/api/player.gearevents.md +1 -1
- package/docs/api/player.md +22 -2
- package/docs/api/player.mediacontrol.mount.md +0 -5
- package/docs/api/player.mediacontrol.putelement.md +5 -0
- package/docs/api/player.mediacontrol.toggleelement.md +1 -1
- package/docs/api/player.volumefade._constructor_.md +50 -0
- package/docs/api/player.volumefade.md +40 -1
- package/docs/api/player.volumefadesettings.md +18 -0
- package/lib/plugins/clappr-nerd-stats/NerdStats.d.ts +1 -0
- package/lib/plugins/clappr-nerd-stats/NerdStats.d.ts.map +1 -1
- package/lib/plugins/clappr-nerd-stats/NerdStats.js +13 -3
- package/lib/plugins/clappr-nerd-stats/speedtest/Speedtest.d.ts.map +1 -1
- package/lib/plugins/clappr-nerd-stats/speedtest/Speedtest.js +1 -0
- package/lib/plugins/clappr-nerd-stats/speedtest/index.js +1 -1
- package/lib/plugins/clappr-nerd-stats/utils.d.ts.map +1 -1
- package/lib/plugins/clappr-nerd-stats/utils.js +17 -15
- package/lib/plugins/clappr-stats/ClapprStats.d.ts +1 -0
- package/lib/plugins/clappr-stats/ClapprStats.d.ts.map +1 -1
- package/lib/plugins/clappr-stats/ClapprStats.js +3 -0
- package/lib/plugins/click-to-pause/ClickToPause.js +6 -7
- package/lib/plugins/media-control/MediaControl.d.ts +3 -0
- package/lib/plugins/media-control/MediaControl.d.ts.map +1 -1
- package/lib/plugins/media-control/MediaControl.js +6 -1
- package/lib/plugins/volume-fade/VolumeFade.d.ts +28 -11
- package/lib/plugins/volume-fade/VolumeFade.d.ts.map +1 -1
- package/lib/plugins/volume-fade/VolumeFade.js +66 -61
- package/package.json +1 -1
- package/src/plugins/clappr-nerd-stats/NerdStats.ts +21 -8
- package/src/plugins/clappr-nerd-stats/speedtest/Speedtest.ts +1 -0
- package/src/plugins/clappr-nerd-stats/speedtest/index.ts +1 -1
- package/src/plugins/clappr-nerd-stats/utils.ts +23 -13
- package/src/plugins/clappr-stats/ClapprStats.ts +4 -0
- package/src/plugins/click-to-pause/ClickToPause.ts +6 -6
- package/src/plugins/level-selector/__tests__/__snapshots__/QualityLevels.test.ts.snap +1 -1
- package/src/plugins/media-control/MediaControl.ts +6 -1
- package/src/plugins/volume-fade/VolumeFade.ts +96 -76
- package/temp/player.api.json +132 -34
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -312,8 +312,12 @@ export class NerdStats extends UICorePlugin {
|
|
|
312
312
|
|
|
313
313
|
private updateMetrics(metrics: PerfMetrics) {
|
|
314
314
|
trace(`${T} updateMetrics`, { custom: this.speedtestMetrics })
|
|
315
|
-
Object.assign(this.metrics, metrics)
|
|
316
|
-
this.
|
|
315
|
+
Object.assign(this.metrics, metrics) // TODO no Object.assign
|
|
316
|
+
this.metrics.custom = {
|
|
317
|
+
...this.speedtestMetrics,
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
this.updateCustomMetrics()
|
|
317
321
|
|
|
318
322
|
this.$el
|
|
319
323
|
.find('#nerd-stats-current-time')
|
|
@@ -382,17 +386,19 @@ export class NerdStats extends UICorePlugin {
|
|
|
382
386
|
|
|
383
387
|
this.setStatsBoxSize()
|
|
384
388
|
drawSpeedTestResults()
|
|
385
|
-
|
|
386
|
-
this.speedtestMetrics,
|
|
387
|
-
this.$el.find('#nerd-stats-quality-vod'),
|
|
388
|
-
this.$el.find('#nerd-stats-quality-live'),
|
|
389
|
-
)
|
|
389
|
+
this.updateEstimatedQuality()
|
|
390
390
|
|
|
391
391
|
if (!this.open) {
|
|
392
392
|
this.hide()
|
|
393
393
|
}
|
|
394
394
|
}
|
|
395
395
|
|
|
396
|
+
private updateCustomMetrics() {
|
|
397
|
+
this.$el.find('#nerd-stats-dl-text').text(this.metrics.custom.connectionSpeed.toFixed(2))
|
|
398
|
+
this.$el.find('#nerd-stats-ping-text').text(this.metrics.custom.ping.toFixed(2))
|
|
399
|
+
this.$el.find('#nerd-stats-jitter-text').text(this.metrics.custom.jitter.toFixed(2))
|
|
400
|
+
}
|
|
401
|
+
|
|
396
402
|
private updateEstimatedQuality() {
|
|
397
403
|
this.estimateQuality()
|
|
398
404
|
this.$el
|
|
@@ -401,6 +407,12 @@ export class NerdStats extends UICorePlugin {
|
|
|
401
407
|
this.$el
|
|
402
408
|
.find('#nerd-stats-quality-live-text')
|
|
403
409
|
.html(this.metrics.custom.liveQuality)
|
|
410
|
+
|
|
411
|
+
drawSummary(
|
|
412
|
+
this.speedtestMetrics,
|
|
413
|
+
this.$el.find('#nerd-stats-quality-vod'),
|
|
414
|
+
this.$el.find('#nerd-stats-quality-live'),
|
|
415
|
+
)
|
|
404
416
|
}
|
|
405
417
|
|
|
406
418
|
private setStatsBoxSize() {
|
|
@@ -453,8 +465,9 @@ export class NerdStats extends UICorePlugin {
|
|
|
453
465
|
this.speedtestMetrics.connectionSpeed = 0
|
|
454
466
|
this.speedtestMetrics.ping = 0
|
|
455
467
|
this.speedtestMetrics.jitter = 0
|
|
456
|
-
|
|
468
|
+
|
|
457
469
|
if (clapprStats) {
|
|
470
|
+
clapprStats.clearMetrics()
|
|
458
471
|
this.updateMetrics(clapprStats.exportMetrics())
|
|
459
472
|
}
|
|
460
473
|
}
|
|
@@ -37,7 +37,7 @@ const getColor = (speedValue: number): string => {
|
|
|
37
37
|
};
|
|
38
38
|
|
|
39
39
|
export function drawSpeedTestResults() {
|
|
40
|
-
const canvas = document.getElementById('
|
|
40
|
+
const canvas = document.getElementById('nerd-stats-speed-test-canvas');
|
|
41
41
|
if (!canvas) {
|
|
42
42
|
return;
|
|
43
43
|
}
|
|
@@ -10,31 +10,41 @@ const qualityClasses = [
|
|
|
10
10
|
]
|
|
11
11
|
|
|
12
12
|
export const getDownloadQuality = (speedValue: number): number => {
|
|
13
|
+
if (!speedValue) {
|
|
14
|
+
return 0
|
|
15
|
+
}
|
|
13
16
|
if (speedValue < 3) {
|
|
14
17
|
return 1
|
|
15
|
-
}
|
|
18
|
+
}
|
|
19
|
+
if (speedValue < 7) {
|
|
16
20
|
return 2
|
|
17
|
-
}
|
|
21
|
+
}
|
|
22
|
+
if (speedValue < 13) {
|
|
18
23
|
return 3
|
|
19
|
-
}
|
|
24
|
+
}
|
|
25
|
+
if (speedValue < 25) {
|
|
20
26
|
return 4
|
|
21
|
-
} else {
|
|
22
|
-
return 5
|
|
23
27
|
}
|
|
28
|
+
return 5
|
|
24
29
|
}
|
|
25
30
|
|
|
26
31
|
export const getPingQuality = (pingValue: number): number => {
|
|
32
|
+
if (!pingValue) {
|
|
33
|
+
return 0
|
|
34
|
+
}
|
|
27
35
|
if (pingValue < 20) {
|
|
28
36
|
return 5
|
|
29
|
-
}
|
|
37
|
+
}
|
|
38
|
+
if (pingValue < 50) {
|
|
30
39
|
return 4
|
|
31
|
-
}
|
|
40
|
+
}
|
|
41
|
+
if (pingValue < 100) {
|
|
32
42
|
return 3
|
|
33
|
-
}
|
|
43
|
+
}
|
|
44
|
+
if (pingValue < 150) {
|
|
34
45
|
return 2
|
|
35
|
-
} else {
|
|
36
|
-
return 1
|
|
37
46
|
}
|
|
47
|
+
return 1
|
|
38
48
|
}
|
|
39
49
|
|
|
40
50
|
export const generateQualityHtml = (quality: number): string => {
|
|
@@ -61,9 +71,9 @@ export const drawSummary = (
|
|
|
61
71
|
) => {
|
|
62
72
|
const { connectionSpeed, ping } = customMetrics
|
|
63
73
|
|
|
64
|
-
if (!connectionSpeed || !ping) {
|
|
65
|
-
|
|
66
|
-
}
|
|
74
|
+
// if (!connectionSpeed || !ping) {
|
|
75
|
+
// return
|
|
76
|
+
// }
|
|
67
77
|
const downloadQuality = getDownloadQuality(connectionSpeed)
|
|
68
78
|
const pingQuality = getPingQuality(ping)
|
|
69
79
|
const liveQuality = Math.min(downloadQuality, pingQuality)
|
|
@@ -172,6 +172,10 @@ export class ClapprStats extends ContainerPlugin {
|
|
|
172
172
|
return structuredClone(this.metrics)
|
|
173
173
|
}
|
|
174
174
|
|
|
175
|
+
clearMetrics() {
|
|
176
|
+
this.metrics = newMetrics()
|
|
177
|
+
}
|
|
178
|
+
|
|
175
179
|
private onBitrate(newBitrate: QualityLevel) {
|
|
176
180
|
const bitrate = newBitrate.bitrate
|
|
177
181
|
const now = this.now()
|
|
@@ -58,13 +58,13 @@ export class ClickToPause extends ContainerPlugin {
|
|
|
58
58
|
|
|
59
59
|
if (isLivePlayback && !isDvrEnabled) {
|
|
60
60
|
this.togglePlay(true)
|
|
61
|
-
|
|
62
|
-
this.clearTimer()
|
|
63
|
-
this.timer = setTimeout(() => {
|
|
64
|
-
this.timer = null
|
|
65
|
-
this.togglePlay(false)
|
|
66
|
-
}, 300)
|
|
61
|
+
return
|
|
67
62
|
}
|
|
63
|
+
this.clearTimer()
|
|
64
|
+
this.timer = setTimeout(() => {
|
|
65
|
+
this.timer = null
|
|
66
|
+
this.togglePlay(false)
|
|
67
|
+
}, 300)
|
|
68
68
|
}
|
|
69
69
|
|
|
70
70
|
private settingsUpdate() {
|
|
@@ -154,7 +154,7 @@ exports[`QualityLevels > options.restrictResolution > given vertical video forma
|
|
|
154
154
|
`;
|
|
155
155
|
|
|
156
156
|
exports[`QualityLevels > options.restrictResolution > initially > should render the restricted quality level label 1`] = `
|
|
157
|
-
"<button class="gplayer-lite-btn gcore-skin-text-color gear-option" aria-haspopup="menu">
|
|
157
|
+
"<button class="gplayer-lite-btn gcore-skin-text-color gear-option" aria-haspopup="menu" id="quality-levels">
|
|
158
158
|
<span class="gear-option_icon hidden">/assets/icons/new/hd.svg</span>
|
|
159
159
|
<span class="gear-option_label">quality</span>
|
|
160
160
|
<span class="gear-option_value">360p</span>
|
|
@@ -136,6 +136,10 @@ const LEFT_ORDER = [
|
|
|
136
136
|
'dvr',
|
|
137
137
|
]
|
|
138
138
|
|
|
139
|
+
export enum ExtendedEvents {
|
|
140
|
+
MEDIACONTROL_VOLUME = 'mediacontrol:volume',
|
|
141
|
+
}
|
|
142
|
+
|
|
139
143
|
const { Config, Fullscreen, formatTime, extend, removeArrayItem } = Utils
|
|
140
144
|
|
|
141
145
|
function orderByOrderPattern(arr: string[], order: string[]): string[] {
|
|
@@ -793,16 +797,17 @@ export class MediaControl extends UICorePlugin {
|
|
|
793
797
|
// if the container is not ready etc
|
|
794
798
|
this.intendedVolume = value
|
|
795
799
|
this.persistConfig && !isInitialVolume && Config.persist('volume', value)
|
|
796
|
-
// TODO
|
|
797
800
|
const setWhenContainerReady = () => {
|
|
798
801
|
if (this.core.activeContainer && this.core.activeContainer.isReady) {
|
|
799
802
|
this.core.activeContainer.setVolume(value)
|
|
803
|
+
this.trigger(ExtendedEvents.MEDIACONTROL_VOLUME, value)
|
|
800
804
|
} else {
|
|
801
805
|
this.listenToOnce(
|
|
802
806
|
this.core.activeContainer,
|
|
803
807
|
Events.CONTAINER_READY,
|
|
804
808
|
() => {
|
|
805
809
|
this.core.activeContainer.setVolume(value)
|
|
810
|
+
this.trigger(ExtendedEvents.MEDIACONTROL_VOLUME, value)
|
|
806
811
|
},
|
|
807
812
|
)
|
|
808
813
|
}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { UICorePlugin, Events, Browser, $,
|
|
2
|
-
import { reportError } from '@gcorevideo/utils'
|
|
1
|
+
import { UICorePlugin, Events, Browser, $, Core } from '@clappr/core'
|
|
2
|
+
import { reportError, trace } from '@gcorevideo/utils'
|
|
3
3
|
|
|
4
|
-
import { TimerId } from '../../utils/types.js'
|
|
4
|
+
import { TimerId } from '../../utils/types.js'
|
|
5
|
+
import { ExtendedEvents } from '../media-control/MediaControl.js'
|
|
5
6
|
|
|
6
7
|
/**
|
|
7
8
|
* Events emitted by the VolumeFade plugin.
|
|
@@ -11,114 +12,133 @@ export enum VolumeFadeEvents {
|
|
|
11
12
|
FADE = 'core:volume:fade',
|
|
12
13
|
}
|
|
13
14
|
|
|
15
|
+
const T = 'plugins.volume_fade'
|
|
16
|
+
|
|
17
|
+
const DEFAULT_DURATION = 600
|
|
18
|
+
const DEFAULT_VOLUME_LEVEL = 80
|
|
19
|
+
|
|
14
20
|
/**
|
|
15
|
-
* `PLUGIN` that applies fade effect to the player's volume change.
|
|
16
21
|
* @beta
|
|
17
22
|
*/
|
|
18
|
-
export
|
|
19
|
-
|
|
23
|
+
export type VolumeFadeSettings = {
|
|
24
|
+
/**
|
|
25
|
+
* Initial active volume level, effective until volume is changed via media control
|
|
26
|
+
*/
|
|
27
|
+
level?: number
|
|
28
|
+
/**
|
|
29
|
+
* Fade duration, ms
|
|
30
|
+
*/
|
|
31
|
+
duration?: number
|
|
32
|
+
}
|
|
20
33
|
|
|
21
|
-
|
|
34
|
+
/**
|
|
35
|
+
* `PLUGIN` that mutes the sound and fades it in when the mouse is over the player.
|
|
36
|
+
* @beta
|
|
37
|
+
*
|
|
38
|
+
* @remarks
|
|
39
|
+
* When the user moves the mouse over and away from the player, the sound is unmuted and unmuted with a fade effect.
|
|
40
|
+
*
|
|
41
|
+
* Depends on {@link MediaControl} plugin.
|
|
42
|
+
* Configuration options - {@link VolumeFadeSettings}
|
|
43
|
+
*/
|
|
44
|
+
export class VolumeFade extends UICorePlugin {
|
|
45
|
+
private activeVolume = 0
|
|
22
46
|
|
|
23
|
-
private
|
|
47
|
+
private duration = 0
|
|
24
48
|
|
|
25
|
-
private
|
|
49
|
+
private timerId: TimerId | null = null
|
|
26
50
|
|
|
27
51
|
/**
|
|
28
52
|
* @internal
|
|
29
53
|
*/
|
|
30
54
|
get name() {
|
|
31
|
-
return 'volume_fade'
|
|
55
|
+
return 'volume_fade'
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
constructor(core: Core) {
|
|
59
|
+
super(core)
|
|
60
|
+
if (typeof this.options.volumeFade?.level === 'number') {
|
|
61
|
+
this.activeVolume = this.options.volumeFade.level
|
|
62
|
+
}
|
|
32
63
|
}
|
|
33
64
|
|
|
34
65
|
/**
|
|
35
66
|
* @internal
|
|
36
67
|
*/
|
|
37
68
|
override bindEvents() {
|
|
38
|
-
|
|
39
|
-
this.listenTo(this.core, Events.CORE_READY, this.onCoreReady);
|
|
40
|
-
if (this.core.mediaControl) {
|
|
41
|
-
this.listenTo(this.core.mediaControl, 'mediacontrol:volume:user', this._onUserChangeVolume);
|
|
42
|
-
}
|
|
43
|
-
// this.listenTo(this.core, 'core:volume:config', this._onVolumeConfig);
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
private unBindEvents() {
|
|
47
|
-
this.core.$el.off('mouseleave.volume');
|
|
48
|
-
this.core.$el.off('mouseenter.volume');
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
private _onUserChangeVolume(volume: number) {
|
|
52
|
-
this._aboveBorderVolume = volume;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
private _onVolumeConfig(value: number) {
|
|
56
|
-
this._aboveBorderVolume = value;
|
|
57
|
-
this.container?.setVolume(0);
|
|
69
|
+
this.listenTo(this.core, Events.CORE_READY, this.onCoreReady)
|
|
58
70
|
}
|
|
59
71
|
|
|
60
72
|
private onCoreReady() {
|
|
61
|
-
this.
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
$(this.options.playerElement).on('mouseenter.volume', () => {
|
|
66
|
-
this.onEnter();
|
|
67
|
-
});
|
|
68
|
-
$(this.options.playerElement).on('mouseleave.volume', () => {
|
|
69
|
-
this.onLeave();
|
|
70
|
-
});
|
|
73
|
+
const mediaControl = this.core.getPlugin('media_control')
|
|
74
|
+
if (Browser.isMobile) {
|
|
75
|
+
this.destroy()
|
|
76
|
+
return
|
|
71
77
|
}
|
|
72
|
-
if (
|
|
73
|
-
this.
|
|
78
|
+
if (mediaControl) {
|
|
79
|
+
this.listenTo(
|
|
80
|
+
mediaControl,
|
|
81
|
+
ExtendedEvents.MEDIACONTROL_VOLUME,
|
|
82
|
+
this.onVolumeChange,
|
|
83
|
+
)
|
|
74
84
|
}
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
85
|
+
$(this.core.$el).on('mouseenter', () => this.onEnter())
|
|
86
|
+
$(this.core.$el).on('mouseleave', () => this.onLeave())
|
|
87
|
+
if (!this.activeVolume) {
|
|
88
|
+
this.activeVolume =
|
|
89
|
+
this.core.activeContainer?.volume &&
|
|
90
|
+
!isNaN(this.core.activeContainer.volume)
|
|
91
|
+
? this.core.activeContainer.volume
|
|
92
|
+
: DEFAULT_VOLUME_LEVEL
|
|
79
93
|
}
|
|
80
|
-
this.delay = this.options.volumeFade && this.options.volumeFade.delay || 600;
|
|
81
|
-
this.container?.setVolume(0);
|
|
82
|
-
}
|
|
83
94
|
|
|
84
|
-
|
|
85
|
-
|
|
95
|
+
this.duration = this.options.volumeFade?.duration || DEFAULT_DURATION
|
|
96
|
+
// TODO check if `mute` must be respected
|
|
97
|
+
this.core.activeContainer?.setVolume(this.activeVolume)
|
|
98
|
+
this.core.activePlayback.volume(0)
|
|
86
99
|
}
|
|
87
100
|
|
|
88
|
-
private
|
|
89
|
-
|
|
90
|
-
|
|
101
|
+
private onVolumeChange(volume: number) {
|
|
102
|
+
trace(`${T} onVolumeChange`, { volume })
|
|
103
|
+
this.activeVolume = volume
|
|
104
|
+
}
|
|
91
105
|
|
|
92
|
-
|
|
93
|
-
|
|
106
|
+
private onEnter() {
|
|
107
|
+
trace(`${T} onEnter`)
|
|
108
|
+
this.fade(this.duration, 1)
|
|
109
|
+
}
|
|
94
110
|
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
111
|
+
private onLeave() {
|
|
112
|
+
trace(`${T} onLeave`)
|
|
113
|
+
this.fade(this.duration, 0)
|
|
114
|
+
}
|
|
99
115
|
|
|
116
|
+
private fade(duration: number, to: 0 | 1) {
|
|
117
|
+
this.stopFade()
|
|
118
|
+
const start = new Date().getTime()
|
|
119
|
+
const from = 1 - to
|
|
120
|
+
this.timerId = setInterval(() => {
|
|
121
|
+
const delta = new Date().getTime() - start
|
|
122
|
+
const progress = Math.min(1, delta / duration)
|
|
123
|
+
const normVol = progress * to + (1 - progress) * from
|
|
124
|
+
const volume = normVol * this.activeVolume
|
|
125
|
+
this.core.activePlayback.volume(volume)
|
|
100
126
|
try {
|
|
101
|
-
this.
|
|
102
|
-
this.core.trigger(VolumeFadeEvents.FADE, progress * this._aboveBorderVolume);
|
|
127
|
+
this.core.trigger(VolumeFadeEvents.FADE, volume)
|
|
103
128
|
} catch (error) {
|
|
104
|
-
|
|
105
|
-
reportError(error);
|
|
106
|
-
this.clearCurrentInterval();
|
|
129
|
+
reportError(error)
|
|
107
130
|
}
|
|
108
|
-
if (progress >= 1
|
|
109
|
-
this.
|
|
131
|
+
if (progress >= 1) {
|
|
132
|
+
this.stopFade()
|
|
110
133
|
}
|
|
111
|
-
}, 10)
|
|
134
|
+
}, 10)
|
|
112
135
|
}
|
|
113
136
|
|
|
114
|
-
private
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
this.
|
|
137
|
+
private stopFade() {
|
|
138
|
+
trace(`${T} stopFade`)
|
|
139
|
+
if (this.timerId !== null) {
|
|
140
|
+
clearInterval(this.timerId)
|
|
141
|
+
this.timerId = null
|
|
118
142
|
}
|
|
119
143
|
}
|
|
120
|
-
|
|
121
|
-
private onLeave() {
|
|
122
|
-
this.numberTo(this.delay, 1);
|
|
123
|
-
}
|
|
124
144
|
}
|
package/temp/player.api.json
CHANGED
|
@@ -234,32 +234,6 @@
|
|
|
234
234
|
},
|
|
235
235
|
"implementsTokenRanges": []
|
|
236
236
|
},
|
|
237
|
-
{
|
|
238
|
-
"kind": "TypeAlias",
|
|
239
|
-
"canonicalReference": "@gcorevideo/player!BitrateTrackRecord:type",
|
|
240
|
-
"docComment": "/**\n * @beta\n */\n",
|
|
241
|
-
"excerptTokens": [
|
|
242
|
-
{
|
|
243
|
-
"kind": "Content",
|
|
244
|
-
"text": "export type BitrateTrackRecord = "
|
|
245
|
-
},
|
|
246
|
-
{
|
|
247
|
-
"kind": "Content",
|
|
248
|
-
"text": "{\n start: number;\n end?: number;\n time?: number;\n bitrate: number;\n}"
|
|
249
|
-
},
|
|
250
|
-
{
|
|
251
|
-
"kind": "Content",
|
|
252
|
-
"text": ";"
|
|
253
|
-
}
|
|
254
|
-
],
|
|
255
|
-
"fileUrlPath": "src/plugins/clappr-stats/types.ts",
|
|
256
|
-
"releaseTag": "Beta",
|
|
257
|
-
"name": "BitrateTrackRecord",
|
|
258
|
-
"typeTokenRange": {
|
|
259
|
-
"startIndex": 1,
|
|
260
|
-
"endIndex": 2
|
|
261
|
-
}
|
|
262
|
-
},
|
|
263
237
|
{
|
|
264
238
|
"kind": "Class",
|
|
265
239
|
"canonicalReference": "@gcorevideo/player!BottomGear:class",
|
|
@@ -486,6 +460,32 @@
|
|
|
486
460
|
},
|
|
487
461
|
"implementsTokenRanges": []
|
|
488
462
|
},
|
|
463
|
+
{
|
|
464
|
+
"kind": "TypeAlias",
|
|
465
|
+
"canonicalReference": "@gcorevideo/player!ClapprStatsBitrateTrack:type",
|
|
466
|
+
"docComment": "/**\n * @beta\n */\n",
|
|
467
|
+
"excerptTokens": [
|
|
468
|
+
{
|
|
469
|
+
"kind": "Content",
|
|
470
|
+
"text": "export type ClapprStatsBitrateTrack = "
|
|
471
|
+
},
|
|
472
|
+
{
|
|
473
|
+
"kind": "Content",
|
|
474
|
+
"text": "{\n start: number;\n end?: number;\n time?: number;\n bitrate: number;\n}"
|
|
475
|
+
},
|
|
476
|
+
{
|
|
477
|
+
"kind": "Content",
|
|
478
|
+
"text": ";"
|
|
479
|
+
}
|
|
480
|
+
],
|
|
481
|
+
"fileUrlPath": "src/plugins/clappr-stats/types.ts",
|
|
482
|
+
"releaseTag": "Beta",
|
|
483
|
+
"name": "ClapprStatsBitrateTrack",
|
|
484
|
+
"typeTokenRange": {
|
|
485
|
+
"startIndex": 1,
|
|
486
|
+
"endIndex": 2
|
|
487
|
+
}
|
|
488
|
+
},
|
|
489
489
|
{
|
|
490
490
|
"kind": "Enum",
|
|
491
491
|
"canonicalReference": "@gcorevideo/player!ClapprStatsChronograph:enum",
|
|
@@ -1053,8 +1053,8 @@
|
|
|
1053
1053
|
},
|
|
1054
1054
|
{
|
|
1055
1055
|
"kind": "Reference",
|
|
1056
|
-
"text": "
|
|
1057
|
-
"canonicalReference": "@gcorevideo/player!
|
|
1056
|
+
"text": "ClapprStatsBitrateTrack",
|
|
1057
|
+
"canonicalReference": "@gcorevideo/player!ClapprStatsBitrateTrack:type"
|
|
1058
1058
|
},
|
|
1059
1059
|
{
|
|
1060
1060
|
"kind": "Content",
|
|
@@ -1925,6 +1925,44 @@
|
|
|
1925
1925
|
"endIndex": 2
|
|
1926
1926
|
}
|
|
1927
1927
|
},
|
|
1928
|
+
{
|
|
1929
|
+
"kind": "Enum",
|
|
1930
|
+
"canonicalReference": "@gcorevideo/player!ExtendedEvents:enum",
|
|
1931
|
+
"docComment": "",
|
|
1932
|
+
"excerptTokens": [
|
|
1933
|
+
{
|
|
1934
|
+
"kind": "Content",
|
|
1935
|
+
"text": "export declare enum ExtendedEvents "
|
|
1936
|
+
}
|
|
1937
|
+
],
|
|
1938
|
+
"fileUrlPath": "src/plugins/media-control/MediaControl.ts",
|
|
1939
|
+
"releaseTag": "Public",
|
|
1940
|
+
"name": "ExtendedEvents",
|
|
1941
|
+
"preserveMemberOrder": false,
|
|
1942
|
+
"members": [
|
|
1943
|
+
{
|
|
1944
|
+
"kind": "EnumMember",
|
|
1945
|
+
"canonicalReference": "@gcorevideo/player!ExtendedEvents.MEDIACONTROL_VOLUME:member",
|
|
1946
|
+
"docComment": "",
|
|
1947
|
+
"excerptTokens": [
|
|
1948
|
+
{
|
|
1949
|
+
"kind": "Content",
|
|
1950
|
+
"text": "MEDIACONTROL_VOLUME = "
|
|
1951
|
+
},
|
|
1952
|
+
{
|
|
1953
|
+
"kind": "Content",
|
|
1954
|
+
"text": "\"mediacontrol:volume\""
|
|
1955
|
+
}
|
|
1956
|
+
],
|
|
1957
|
+
"initializerTokenRange": {
|
|
1958
|
+
"startIndex": 1,
|
|
1959
|
+
"endIndex": 2
|
|
1960
|
+
},
|
|
1961
|
+
"releaseTag": "Public",
|
|
1962
|
+
"name": "MEDIACONTROL_VOLUME"
|
|
1963
|
+
}
|
|
1964
|
+
]
|
|
1965
|
+
},
|
|
1928
1966
|
{
|
|
1929
1967
|
"kind": "Class",
|
|
1930
1968
|
"canonicalReference": "@gcorevideo/player!Favicon:class",
|
|
@@ -2019,7 +2057,7 @@
|
|
|
2019
2057
|
{
|
|
2020
2058
|
"kind": "EnumMember",
|
|
2021
2059
|
"canonicalReference": "@gcorevideo/player!GearEvents.RENDERED:member",
|
|
2022
|
-
"docComment": "/**\n *
|
|
2060
|
+
"docComment": "/**\n * Subscribe to this event to accurately attach an item to the gear menu\n */\n",
|
|
2023
2061
|
"excerptTokens": [
|
|
2024
2062
|
{
|
|
2025
2063
|
"kind": "Content",
|
|
@@ -3276,7 +3314,7 @@
|
|
|
3276
3314
|
{
|
|
3277
3315
|
"kind": "Method",
|
|
3278
3316
|
"canonicalReference": "@gcorevideo/player!MediaControl#mount:member(1)",
|
|
3279
|
-
"docComment": "/**\n * Get a media control element DOM node\n *\n * @remarks\n *\n * Use this method to render custom media control UI in a plugin\n *\n * @
|
|
3317
|
+
"docComment": "/**\n * Get a media control element DOM node\n *\n * @remarks\n *\n * Use this method to render custom media control UI in a plugin\n *\n * @param name - The name of the media control element\n *\n * @returns The DOM node to render to or extend\n *\n * @example\n * ```ts\n * class MyPlugin extends UICorePlugin {\n * override render() {\n * this.$el.html('<div data-clips>Here we go</div>')\n * this.core.getPlugin('media_control').mount('clips', this.$el)\n * return this\n * }\n * }\n * ```\n *\n */\n",
|
|
3280
3318
|
"excerptTokens": [
|
|
3281
3319
|
{
|
|
3282
3320
|
"kind": "Content",
|
|
@@ -3372,7 +3410,7 @@
|
|
|
3372
3410
|
{
|
|
3373
3411
|
"kind": "Method",
|
|
3374
3412
|
"canonicalReference": "@gcorevideo/player!MediaControl#putElement:member(1)",
|
|
3375
|
-
"docComment": "",
|
|
3413
|
+
"docComment": "/**\n * @deprecated\n *\n * Use {@link MediaControl.mount} instead\n *\n * @param name - \n *\n * @param element - \n */\n",
|
|
3376
3414
|
"excerptTokens": [
|
|
3377
3415
|
{
|
|
3378
3416
|
"kind": "Content",
|
|
@@ -3533,7 +3571,7 @@
|
|
|
3533
3571
|
{
|
|
3534
3572
|
"kind": "Method",
|
|
3535
3573
|
"canonicalReference": "@gcorevideo/player!MediaControl#toggleElement:member(1)",
|
|
3536
|
-
"docComment": "/**\n * Toggle the visibility of a media control element\n *\n * @param name - The name of the media control element\n *\n * @param show -
|
|
3574
|
+
"docComment": "/**\n * Toggle the visibility of a media control element\n *\n * @param name - The name of the media control element\n *\n * @param show - Visibility state\n */\n",
|
|
3537
3575
|
"excerptTokens": [
|
|
3538
3576
|
{
|
|
3539
3577
|
"kind": "Content",
|
|
@@ -9818,7 +9856,7 @@
|
|
|
9818
9856
|
{
|
|
9819
9857
|
"kind": "Class",
|
|
9820
9858
|
"canonicalReference": "@gcorevideo/player!VolumeFade:class",
|
|
9821
|
-
"docComment": "/**\n * `PLUGIN` that
|
|
9859
|
+
"docComment": "/**\n * `PLUGIN` that mutes the sound and fades it in when the mouse is over the player.\n *\n * @remarks\n *\n * When the user moves the mouse over and away from the player, the sound is unmuted and unmuted with a fade effect.\n *\n * Depends on {@link MediaControl} plugin. Configuration options - {@link VolumeFadeSettings}\n *\n * @beta\n */\n",
|
|
9822
9860
|
"excerptTokens": [
|
|
9823
9861
|
{
|
|
9824
9862
|
"kind": "Content",
|
|
@@ -9839,7 +9877,41 @@
|
|
|
9839
9877
|
"isAbstract": false,
|
|
9840
9878
|
"name": "VolumeFade",
|
|
9841
9879
|
"preserveMemberOrder": false,
|
|
9842
|
-
"members": [
|
|
9880
|
+
"members": [
|
|
9881
|
+
{
|
|
9882
|
+
"kind": "Constructor",
|
|
9883
|
+
"canonicalReference": "@gcorevideo/player!VolumeFade:constructor(1)",
|
|
9884
|
+
"docComment": "/**\n * Constructs a new instance of the `VolumeFade` class\n */\n",
|
|
9885
|
+
"excerptTokens": [
|
|
9886
|
+
{
|
|
9887
|
+
"kind": "Content",
|
|
9888
|
+
"text": "constructor(core: "
|
|
9889
|
+
},
|
|
9890
|
+
{
|
|
9891
|
+
"kind": "Reference",
|
|
9892
|
+
"text": "Core",
|
|
9893
|
+
"canonicalReference": "@clappr/core!default:class"
|
|
9894
|
+
},
|
|
9895
|
+
{
|
|
9896
|
+
"kind": "Content",
|
|
9897
|
+
"text": ");"
|
|
9898
|
+
}
|
|
9899
|
+
],
|
|
9900
|
+
"releaseTag": "Beta",
|
|
9901
|
+
"isProtected": false,
|
|
9902
|
+
"overloadIndex": 1,
|
|
9903
|
+
"parameters": [
|
|
9904
|
+
{
|
|
9905
|
+
"parameterName": "core",
|
|
9906
|
+
"parameterTypeTokenRange": {
|
|
9907
|
+
"startIndex": 1,
|
|
9908
|
+
"endIndex": 2
|
|
9909
|
+
},
|
|
9910
|
+
"isOptional": false
|
|
9911
|
+
}
|
|
9912
|
+
]
|
|
9913
|
+
}
|
|
9914
|
+
],
|
|
9843
9915
|
"extendsTokenRange": {
|
|
9844
9916
|
"startIndex": 1,
|
|
9845
9917
|
"endIndex": 2
|
|
@@ -9884,6 +9956,32 @@
|
|
|
9884
9956
|
}
|
|
9885
9957
|
]
|
|
9886
9958
|
},
|
|
9959
|
+
{
|
|
9960
|
+
"kind": "TypeAlias",
|
|
9961
|
+
"canonicalReference": "@gcorevideo/player!VolumeFadeSettings:type",
|
|
9962
|
+
"docComment": "/**\n * @beta\n */\n",
|
|
9963
|
+
"excerptTokens": [
|
|
9964
|
+
{
|
|
9965
|
+
"kind": "Content",
|
|
9966
|
+
"text": "export type VolumeFadeSettings = "
|
|
9967
|
+
},
|
|
9968
|
+
{
|
|
9969
|
+
"kind": "Content",
|
|
9970
|
+
"text": "{\n level?: number;\n duration?: number;\n}"
|
|
9971
|
+
},
|
|
9972
|
+
{
|
|
9973
|
+
"kind": "Content",
|
|
9974
|
+
"text": ";"
|
|
9975
|
+
}
|
|
9976
|
+
],
|
|
9977
|
+
"fileUrlPath": "src/plugins/volume-fade/VolumeFade.ts",
|
|
9978
|
+
"releaseTag": "Beta",
|
|
9979
|
+
"name": "VolumeFadeSettings",
|
|
9980
|
+
"typeTokenRange": {
|
|
9981
|
+
"startIndex": 1,
|
|
9982
|
+
"endIndex": 2
|
|
9983
|
+
}
|
|
9984
|
+
},
|
|
9887
9985
|
{
|
|
9888
9986
|
"kind": "Interface",
|
|
9889
9987
|
"canonicalReference": "@gcorevideo/player!WatchEventData:interface",
|