@codercms/web-player 0.0.3 → 0.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/core/AudioTrack.d.ts +6 -0
- package/dist/core/AudioTrack.js +1 -0
- package/dist/core/AudioTrack.js.map +1 -0
- package/dist/core/HLSLoader.js +26 -1
- package/dist/core/HLSLoader.js.map +1 -1
- package/dist/core/LoaderInterface.d.ts +11 -2
- package/dist/core/LoaderInterface.js +4 -0
- package/dist/core/LoaderInterface.js.map +1 -1
- package/dist/core/PlaylistPlayer.d.ts +1 -1
- package/dist/core/PlaylistPlayer.js.map +1 -1
- package/dist/core/VideoPlayer.d.ts +66 -6
- package/dist/core/VideoPlayer.js +316 -106
- package/dist/core/VideoPlayer.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AudioTrack.js","sourceRoot":"","sources":["AudioTrack.ts"],"names":[],"mappings":""}
|
package/dist/core/HLSLoader.js
CHANGED
|
@@ -48,12 +48,33 @@ export class HLSLoader {
|
|
|
48
48
|
this._onLevelsUpdated(data.levels);
|
|
49
49
|
resolve();
|
|
50
50
|
});
|
|
51
|
+
hls.on(Hls.Events.LEVEL_SWITCHING, (event, data) => {
|
|
52
|
+
this.emitter.emit(LoaderEvents.QualityLevelSwitching, data.level, hls.autoLevelEnabled);
|
|
53
|
+
});
|
|
51
54
|
hls.on(Hls.Events.LEVEL_SWITCHED, (event, data) => {
|
|
52
|
-
this.emitter.emit(LoaderEvents.QualityLevelSwitched, data.level);
|
|
55
|
+
this.emitter.emit(LoaderEvents.QualityLevelSwitched, data.level, hls.autoLevelEnabled);
|
|
53
56
|
});
|
|
54
57
|
hls.on(Hls.Events.LEVELS_UPDATED, (event, data) => {
|
|
55
58
|
this._onLevelsUpdated(data.levels);
|
|
56
59
|
});
|
|
60
|
+
hls.on(Hls.Events.AUDIO_TRACK_SWITCHING, (event, data) => {
|
|
61
|
+
this.emitter.emit(LoaderEvents.AudioTrackSwitching, data.id);
|
|
62
|
+
});
|
|
63
|
+
hls.on(Hls.Events.AUDIO_TRACK_SWITCHED, (event, data) => {
|
|
64
|
+
this.emitter.emit(LoaderEvents.AudioTrackSwitching, data.id);
|
|
65
|
+
});
|
|
66
|
+
hls.on(Hls.Events.AUDIO_TRACKS_UPDATED, (event, data) => {
|
|
67
|
+
const tracks = [];
|
|
68
|
+
for (const track of data.audioTracks) {
|
|
69
|
+
tracks.push({
|
|
70
|
+
id: track.id,
|
|
71
|
+
name: track.name,
|
|
72
|
+
bitrate: track.bitrate,
|
|
73
|
+
loaderData: track
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
this.emitter.emit(LoaderEvents.AudioTracksUpdated, tracks);
|
|
77
|
+
});
|
|
57
78
|
hls.on(Hls.Events.ERROR, (event, data) => {
|
|
58
79
|
if (data.fatal) {
|
|
59
80
|
switch (data.type) {
|
|
@@ -108,6 +129,10 @@ export class HLSLoader {
|
|
|
108
129
|
}
|
|
109
130
|
// TODO: Support graceful = false
|
|
110
131
|
this.hls.audioTrack = id;
|
|
132
|
+
if (!graceful) {
|
|
133
|
+
this.el.currentTime -= 1;
|
|
134
|
+
this.el.currentTime += 1;
|
|
135
|
+
}
|
|
111
136
|
}
|
|
112
137
|
switchQualityLevel(id, graceful) {
|
|
113
138
|
if (!this.hls) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HLSLoader.js","sourceRoot":"","sources":["HLSLoader.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAGxE,OAAO,GAAG,EAAE,EAA8B,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"HLSLoader.js","sourceRoot":"","sources":["HLSLoader.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,15 @@
|
|
|
1
1
|
import type { QualityLevel } from './QualityLevel';
|
|
2
|
+
import type { AudioTrack } from './AudioTrack';
|
|
2
3
|
export declare enum LoaderEvents {
|
|
3
4
|
Loading = "loader.loading",
|
|
4
5
|
Loaded = "loader.loaded",
|
|
5
6
|
Error = "loader.error",
|
|
6
7
|
QualityLevelsUpdated = "loader.qualityLevelsUpdated",
|
|
7
|
-
|
|
8
|
+
QualityLevelSwitching = "loader.qualityLevelSwitching",
|
|
9
|
+
QualityLevelSwitched = "loader.qualityLevelSwitched",
|
|
10
|
+
AudioTracksUpdated = "loader.audioTracksUpdated",
|
|
11
|
+
AudioTrackSwitching = "loader.audioTrackSwitching",
|
|
12
|
+
AudioTrackSwitched = "loader.audioTrackSwitched"
|
|
8
13
|
}
|
|
9
14
|
export type LoaderError = {
|
|
10
15
|
message: string;
|
|
@@ -15,7 +20,11 @@ export type LoaderEventsMap = {
|
|
|
15
20
|
[LoaderEvents.Loaded]: (params: LoadParams) => void;
|
|
16
21
|
[LoaderEvents.Error]: (error: LoaderError) => void;
|
|
17
22
|
[LoaderEvents.QualityLevelsUpdated]: (levels: QualityLevel[]) => void;
|
|
18
|
-
[LoaderEvents.
|
|
23
|
+
[LoaderEvents.QualityLevelSwitching]: (levelId: number, isAutoLevel: boolean) => void;
|
|
24
|
+
[LoaderEvents.QualityLevelSwitched]: (levelId: number, isAutoLevel: boolean) => void;
|
|
25
|
+
[LoaderEvents.AudioTracksUpdated]: (tracks: AudioTrack[]) => void;
|
|
26
|
+
[LoaderEvents.AudioTrackSwitching]: (trackId: number) => void;
|
|
27
|
+
[LoaderEvents.AudioTrackSwitched]: (trackId: number) => void;
|
|
19
28
|
};
|
|
20
29
|
export type GetUrlCb = (signal: AbortSignal) => Promise<string>;
|
|
21
30
|
export interface LoadParams {
|
|
@@ -4,7 +4,11 @@ export var LoaderEvents;
|
|
|
4
4
|
LoaderEvents["Loaded"] = "loader.loaded";
|
|
5
5
|
LoaderEvents["Error"] = "loader.error";
|
|
6
6
|
LoaderEvents["QualityLevelsUpdated"] = "loader.qualityLevelsUpdated";
|
|
7
|
+
LoaderEvents["QualityLevelSwitching"] = "loader.qualityLevelSwitching";
|
|
7
8
|
LoaderEvents["QualityLevelSwitched"] = "loader.qualityLevelSwitched";
|
|
9
|
+
LoaderEvents["AudioTracksUpdated"] = "loader.audioTracksUpdated";
|
|
10
|
+
LoaderEvents["AudioTrackSwitching"] = "loader.audioTrackSwitching";
|
|
11
|
+
LoaderEvents["AudioTrackSwitched"] = "loader.audioTrackSwitched";
|
|
8
12
|
})(LoaderEvents || (LoaderEvents = {}));
|
|
9
13
|
export async function getLoadUrl(params) {
|
|
10
14
|
let url;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LoaderInterface.js","sourceRoot":"","sources":["LoaderInterface.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"LoaderInterface.js","sourceRoot":"","sources":["LoaderInterface.ts"],"names":[],"mappings":"AAGA,MAAM,CAAN,IAAY,YAYX;AAZD,WAAY,YAAY;IACvB,0CAA0B,CAAA;IAC1B,wCAAwB,CAAA;IACxB,sCAAsB,CAAA;IAEtB,oEAAoD,CAAA;IACpD,sEAAsD,CAAA;IACtD,oEAAoD,CAAA;IAEpD,gEAAgD,CAAA;IAChD,kEAAkD,CAAA;IAClD,gEAAgD,CAAA;AACjD,CAAC,EAZW,YAAY,KAAZ,YAAY,QAYvB;AA8CD,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,MAAkB;IAClD,IAAI,GAAW,CAAC;IAEhB,IAAI,MAAM,CAAC,QAAQ,EAAE;QACpB,GAAG,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;KAC3B;SAAM,IAAI,MAAM,CAAC,GAAG,YAAY,OAAO,EAAE;QACzC,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;KAChC;SAAM;QACN,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;QACjB,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;KAC9B;IAED,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE;QACxB,MAAM,KAAK,CAAC,cAAc,CAAC,CAAC;KAC5B;IAED,OAAO,GAAG,CAAC;AACZ,CAAC"}
|
|
@@ -18,7 +18,7 @@ export declare class PlaylistPlayer<ItemImpl extends PlaylistItemInterface> {
|
|
|
18
18
|
readonly playlist: Playlist<ItemImpl>;
|
|
19
19
|
readonly player: VideoPlayer;
|
|
20
20
|
protected readonly opts: PlaylistPlayerOpts;
|
|
21
|
-
constructor(el
|
|
21
|
+
constructor(el?: HTMLVideoElement, opts?: PlaylistPlayerOpts);
|
|
22
22
|
private _handleHTMLPlayEvent;
|
|
23
23
|
private _loadPlaylistItem;
|
|
24
24
|
togglePlay(opts?: LoadOpts): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlaylistPlayer.js","sourceRoot":"","sources":["PlaylistPlayer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,WAAW,EAA6B,MAAM,uBAAuB,CAAC;AAC7F,OAAO,EAEN,QAAQ,EACR,cAAc,EAGd,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,MAAM,CAAN,IAAY,oBAIX;AAJD,WAAY,oBAAoB;IAC/B,0EAAkD,CAAA;IAClD,wEAAgD,CAAA;IAChD,sFAA8D,CAAA;AAC/D,CAAC,EAJW,oBAAoB,KAApB,oBAAoB,QAI/B;AAeD,MAAM,OAAO,cAAc;IAClB,OAAO,GAAG,IAAI,YAAY,EAAqC,CAAC;IAExE,aAAa;IACG,QAAQ,GAAG,IAAI,QAAQ,CAAW,IAAI,CAAC,OAAO,CAAC,CAAC;IAEhD,MAAM,CAAc;IAEjB,IAAI,CAAqB;IAE5C,YAAY,
|
|
1
|
+
{"version":3,"file":"PlaylistPlayer.js","sourceRoot":"","sources":["PlaylistPlayer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { EventEmitter } from 'eventemitter3';
|
|
2
|
+
import { type Readable, type Writable } from 'svelte/store';
|
|
2
3
|
import { HLSLoader } from './HLSLoader.js';
|
|
3
4
|
import type { GetUrlCb, LoaderEventsMap, LoaderInterface } from './LoaderInterface.js';
|
|
4
5
|
import type { QualityLevel } from './QualityLevel';
|
|
6
|
+
import type { AudioTrack } from './AudioTrack';
|
|
5
7
|
export declare enum PlayerEvents {
|
|
6
8
|
Play = "player.play",
|
|
7
9
|
Pause = "player.pause",
|
|
@@ -18,7 +20,11 @@ export declare enum PlayerEvents {
|
|
|
18
20
|
MuteChange = "player.muteChange",
|
|
19
21
|
VolumeStateChange = "player.volumeStateChange",
|
|
20
22
|
QualityLevelsUpdated = "player.qualityLevelsUpdated",
|
|
21
|
-
|
|
23
|
+
QualityLevelSwitching = "player.qualityLevelSwitching",
|
|
24
|
+
QualityLevelSwitched = "player.qualityLevelSwitched",
|
|
25
|
+
AudioTracksUpdated = "player.audioTracksUpdated",
|
|
26
|
+
AudioTrackSwitching = "player.audioTrackSwitching",
|
|
27
|
+
AudioTrackSwitched = "player.audioTrackSwitched"
|
|
22
28
|
}
|
|
23
29
|
export type VideoPlayerEventsMap = {
|
|
24
30
|
[PlayerEvents.Play]: () => void;
|
|
@@ -36,7 +42,14 @@ export type VideoPlayerEventsMap = {
|
|
|
36
42
|
[PlayerEvents.MuteChange]: (muted: boolean) => void;
|
|
37
43
|
[PlayerEvents.VolumeStateChange]: (volume: number, muted: boolean) => void;
|
|
38
44
|
[PlayerEvents.QualityLevelsUpdated]: (levels: QualityLevel[]) => void;
|
|
39
|
-
[PlayerEvents.
|
|
45
|
+
[PlayerEvents.QualityLevelSwitching]: (level: QualityLevel, isAutoLevel: boolean) => void;
|
|
46
|
+
[PlayerEvents.QualityLevelSwitched]: (level: QualityLevel, isAutoLevel: boolean) => void;
|
|
47
|
+
[PlayerEvents.QualityLevelsUpdated]: (levels: QualityLevel[]) => void;
|
|
48
|
+
[PlayerEvents.QualityLevelSwitching]: (level: QualityLevel, isAutoLevel: boolean) => void;
|
|
49
|
+
[PlayerEvents.QualityLevelSwitched]: (level: QualityLevel, isAutoLevel: boolean) => void;
|
|
50
|
+
[PlayerEvents.AudioTracksUpdated]: (tracks: AudioTrack[]) => void;
|
|
51
|
+
[PlayerEvents.AudioTrackSwitching]: (track: AudioTrack) => void;
|
|
52
|
+
[PlayerEvents.AudioTrackSwitched]: (track: AudioTrack) => void;
|
|
40
53
|
} & LoaderEventsMap;
|
|
41
54
|
export declare enum PlayerActions {
|
|
42
55
|
PlayItem = "player.playItem"
|
|
@@ -60,14 +73,14 @@ export type BufferedPart = {
|
|
|
60
73
|
end: number;
|
|
61
74
|
};
|
|
62
75
|
export declare class VideoPlayer {
|
|
63
|
-
protected el
|
|
76
|
+
protected el?: HTMLMediaElement;
|
|
64
77
|
protected emitter: EventEmitter<VideoPlayerEventsMap>;
|
|
65
78
|
protected loadAbortController: AbortController | null;
|
|
66
79
|
protected currentLoader: LoaderInterface | null;
|
|
67
80
|
protected hlsLoader: HLSLoader | null;
|
|
68
81
|
protected _isLoading: boolean;
|
|
69
|
-
protected _duration: number;
|
|
70
82
|
protected _paused: boolean;
|
|
83
|
+
protected _duration: number;
|
|
71
84
|
protected _currentTime: number;
|
|
72
85
|
protected _playbackRate: number;
|
|
73
86
|
protected _muted: boolean;
|
|
@@ -76,16 +89,48 @@ export declare class VideoPlayer {
|
|
|
76
89
|
protected _isAutoQuality: boolean;
|
|
77
90
|
protected _currentQualityLevel: QualityLevel | null;
|
|
78
91
|
protected _qualityLevels: Array<QualityLevel>;
|
|
79
|
-
|
|
92
|
+
protected _currentAudioTrack: AudioTrack | null;
|
|
93
|
+
protected _audioTracks: AudioTrack[];
|
|
94
|
+
protected _isLoadingStore: Writable<boolean>;
|
|
95
|
+
protected _pausedStore: Writable<boolean>;
|
|
96
|
+
protected _durationStore: Writable<number>;
|
|
97
|
+
protected _currentTimeStore: Writable<number>;
|
|
98
|
+
protected _playbackRateStore: Writable<number>;
|
|
99
|
+
protected _mutedStore: Writable<boolean>;
|
|
100
|
+
protected _volumeStore: Writable<number>;
|
|
101
|
+
protected _bufferedStore: Writable<Array<BufferedPart>>;
|
|
102
|
+
protected _isAutoQualityStore: Writable<boolean>;
|
|
103
|
+
protected _currentQualityLevelStore: Writable<QualityLevel | null>;
|
|
104
|
+
protected _qualityLevelsStore: Writable<QualityLevel[]>;
|
|
105
|
+
protected _currentAudioTrackStore: Writable<AudioTrack | null>;
|
|
106
|
+
protected _audioTracksStore: Writable<AudioTrack[]>;
|
|
107
|
+
constructor(el?: HTMLMediaElement, emitter?: EventEmitter<VideoPlayerEventsMap, any>);
|
|
80
108
|
private _registerVideoEvents;
|
|
81
|
-
private
|
|
109
|
+
private _unregisterVideoElementEvents;
|
|
82
110
|
private _onProgress;
|
|
83
111
|
private _onLoaded;
|
|
112
|
+
private _updateIsLoading;
|
|
113
|
+
private _updateBufferedParts;
|
|
114
|
+
private _updateDuration;
|
|
115
|
+
private _updateCurrentTime;
|
|
116
|
+
private _updatePlaybackRate;
|
|
117
|
+
private _updateVolume;
|
|
118
|
+
private _updateMuted;
|
|
119
|
+
private _updatePaused;
|
|
120
|
+
private _updateQualityLevels;
|
|
121
|
+
private _updateQualityLevel;
|
|
122
|
+
private _updateAudioTracks;
|
|
123
|
+
private _updateCurrentAudioTrack;
|
|
124
|
+
attachEl(el: HTMLMediaElement): void;
|
|
125
|
+
detachEl(): void;
|
|
84
126
|
load(params: PlayerLoadParams): Promise<void>;
|
|
85
127
|
togglePlay(): Promise<void>;
|
|
86
128
|
play(): Promise<void>;
|
|
87
129
|
pause(): void;
|
|
88
130
|
seekTo(pos: number): void;
|
|
131
|
+
setVolume(vol: number): void;
|
|
132
|
+
setMuted(muted: boolean): void;
|
|
133
|
+
toggleMute(): void;
|
|
89
134
|
setQualityLevel(id: number, graceful: boolean): void;
|
|
90
135
|
setAutoQualityLevel(graceful: boolean): void;
|
|
91
136
|
subscribe<K extends keyof VideoPlayerEventsMap>(ev: K, cb: VideoPlayerEventsMap[K]): void;
|
|
@@ -94,6 +139,8 @@ export declare class VideoPlayer {
|
|
|
94
139
|
get qualityLevels(): QualityLevel[];
|
|
95
140
|
get isAutoQuality(): boolean;
|
|
96
141
|
get qualityLevel(): QualityLevel | null;
|
|
142
|
+
get audioTracks(): AudioTrack[];
|
|
143
|
+
get audioTrack(): AudioTrack | null;
|
|
97
144
|
get duration(): number;
|
|
98
145
|
get paused(): boolean;
|
|
99
146
|
get currentTime(): number;
|
|
@@ -101,4 +148,17 @@ export declare class VideoPlayer {
|
|
|
101
148
|
get playbackRate(): number;
|
|
102
149
|
get volume(): number;
|
|
103
150
|
get muted(): boolean;
|
|
151
|
+
get pausedStore(): Readable<boolean>;
|
|
152
|
+
get isLoadingStore(): Readable<boolean>;
|
|
153
|
+
get qualityLevelsStore(): Readable<QualityLevel[]>;
|
|
154
|
+
get isAutoQualityStore(): Readable<boolean>;
|
|
155
|
+
get qualityLevelStore(): Readable<QualityLevel | null>;
|
|
156
|
+
get audioTracksStore(): Readable<AudioTrack[]>;
|
|
157
|
+
get audioTrackStore(): Readable<AudioTrack | null>;
|
|
158
|
+
get durationStore(): Readable<number>;
|
|
159
|
+
get currentTimeStore(): Readable<number>;
|
|
160
|
+
get bufferedStore(): Readable<BufferedPart[]>;
|
|
161
|
+
get playbackRateStore(): Readable<number>;
|
|
162
|
+
get volumeStore(): Readable<number>;
|
|
163
|
+
get mutedStore(): Readable<boolean>;
|
|
104
164
|
}
|
package/dist/core/VideoPlayer.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { EventEmitter } from 'eventemitter3';
|
|
2
|
+
import { readonly, writable } from 'svelte/store';
|
|
2
3
|
import { HLSLoader, isHlsJsSupported } from './HLSLoader.js';
|
|
3
4
|
import { LoaderEvents } from './LoaderInterface.js';
|
|
4
5
|
import { BROWSER } from 'esm-env';
|
|
@@ -19,7 +20,11 @@ export var PlayerEvents;
|
|
|
19
20
|
PlayerEvents["MuteChange"] = "player.muteChange";
|
|
20
21
|
PlayerEvents["VolumeStateChange"] = "player.volumeStateChange";
|
|
21
22
|
PlayerEvents["QualityLevelsUpdated"] = "player.qualityLevelsUpdated";
|
|
23
|
+
PlayerEvents["QualityLevelSwitching"] = "player.qualityLevelSwitching";
|
|
22
24
|
PlayerEvents["QualityLevelSwitched"] = "player.qualityLevelSwitched";
|
|
25
|
+
PlayerEvents["AudioTracksUpdated"] = "player.audioTracksUpdated";
|
|
26
|
+
PlayerEvents["AudioTrackSwitching"] = "player.audioTrackSwitching";
|
|
27
|
+
PlayerEvents["AudioTrackSwitched"] = "player.audioTrackSwitched";
|
|
23
28
|
})(PlayerEvents || (PlayerEvents = {}));
|
|
24
29
|
export var PlayerActions;
|
|
25
30
|
(function (PlayerActions) {
|
|
@@ -38,8 +43,8 @@ export class VideoPlayer {
|
|
|
38
43
|
currentLoader = null;
|
|
39
44
|
hlsLoader = null;
|
|
40
45
|
_isLoading = false;
|
|
41
|
-
_duration = 0;
|
|
42
46
|
_paused = true;
|
|
47
|
+
_duration = 0;
|
|
43
48
|
_currentTime = 0;
|
|
44
49
|
_playbackRate = 0;
|
|
45
50
|
_muted = false;
|
|
@@ -48,31 +53,48 @@ export class VideoPlayer {
|
|
|
48
53
|
_isAutoQuality = true;
|
|
49
54
|
_currentQualityLevel = null;
|
|
50
55
|
_qualityLevels = [];
|
|
56
|
+
_currentAudioTrack = null;
|
|
57
|
+
_audioTracks = [];
|
|
58
|
+
_isLoadingStore = writable(this._isLoading);
|
|
59
|
+
_pausedStore = writable(this._paused);
|
|
60
|
+
_durationStore = writable(this._duration);
|
|
61
|
+
_currentTimeStore = writable(this._currentTime);
|
|
62
|
+
_playbackRateStore = writable(this._playbackRate);
|
|
63
|
+
_mutedStore = writable(this._muted);
|
|
64
|
+
_volumeStore = writable(this._volume);
|
|
65
|
+
_bufferedStore = writable(this._buffered);
|
|
66
|
+
_isAutoQualityStore = writable(this._isAutoQuality);
|
|
67
|
+
_currentQualityLevelStore = writable(this._currentQualityLevel);
|
|
68
|
+
_qualityLevelsStore = writable(this._qualityLevels);
|
|
69
|
+
_currentAudioTrackStore = writable(this._currentAudioTrack);
|
|
70
|
+
_audioTracksStore = writable(this._audioTracks);
|
|
51
71
|
constructor(el, emitter = new EventEmitter()) {
|
|
52
|
-
this.el = el;
|
|
53
72
|
this.emitter = emitter;
|
|
54
73
|
// Do nothing in SSR environment
|
|
55
74
|
if (!BROWSER) {
|
|
56
75
|
return;
|
|
57
76
|
}
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
this._volume = el.volume;
|
|
61
|
-
this._currentTime = el.currentTime;
|
|
62
|
-
this._playbackRate = el.playbackRate;
|
|
63
|
-
// Setup HLS.js loader
|
|
64
|
-
if (isHlsJsSupported()) {
|
|
65
|
-
// @ts-ignore
|
|
66
|
-
this.hlsLoader = new HLSLoader(this.emitter, this.el, {
|
|
67
|
-
progressive: true
|
|
68
|
-
});
|
|
77
|
+
if (el) {
|
|
78
|
+
this.attachEl(el);
|
|
69
79
|
}
|
|
80
|
+
// Reset state
|
|
81
|
+
this.emitter.on(LoaderEvents.Loading, () => {
|
|
82
|
+
this._updateIsLoading(true);
|
|
83
|
+
this._updateAudioTracks([]);
|
|
84
|
+
this._updateQualityLevels([]);
|
|
85
|
+
this._updateDuration(0);
|
|
86
|
+
this._updateCurrentTime(0);
|
|
87
|
+
this._updateBufferedParts([]);
|
|
88
|
+
this._currentQualityLevel = null;
|
|
89
|
+
this._currentQualityLevelStore.set(null);
|
|
90
|
+
this._currentAudioTrack = null;
|
|
91
|
+
this._currentAudioTrackStore.set(null);
|
|
92
|
+
});
|
|
70
93
|
this.emitter.on(LoaderEvents.QualityLevelsUpdated, (newLevels) => {
|
|
71
94
|
console.log('Quality levels updated', newLevels);
|
|
72
|
-
this.
|
|
73
|
-
this.emitter.emit(PlayerEvents.QualityLevelsUpdated, newLevels);
|
|
95
|
+
this._updateQualityLevels(newLevels);
|
|
74
96
|
});
|
|
75
|
-
this.emitter.on(LoaderEvents.
|
|
97
|
+
this.emitter.on(LoaderEvents.QualityLevelSwitching, (newLevelId, isAutoLevel) => {
|
|
76
98
|
const newLevel = this._qualityLevels.find((lvl) => lvl.id === newLevelId);
|
|
77
99
|
if (!newLevel) {
|
|
78
100
|
console.error(`Quality level switch to unknown level`, {
|
|
@@ -81,131 +103,142 @@ export class VideoPlayer {
|
|
|
81
103
|
});
|
|
82
104
|
return;
|
|
83
105
|
}
|
|
84
|
-
this.
|
|
85
|
-
this.emitter.emit(PlayerEvents.
|
|
106
|
+
this._isAutoQuality = isAutoLevel;
|
|
107
|
+
this.emitter.emit(PlayerEvents.QualityLevelSwitching, newLevel, isAutoLevel);
|
|
86
108
|
});
|
|
87
|
-
this.emitter.on(LoaderEvents.
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
// console.log('Mute change', { muted });
|
|
102
|
-
// });
|
|
103
|
-
//
|
|
104
|
-
// this.emitter.on(PlayerEvents.VolumeChange, (volume: number) => {
|
|
105
|
-
// console.log('Volume change', { volume });
|
|
106
|
-
// });
|
|
107
|
-
//
|
|
108
|
-
// this.emitter.on(PlayerEvents.PlaybackRateChange, (rate: number) => {
|
|
109
|
-
// console.log('Playback rate change', { rate });
|
|
110
|
-
// });
|
|
111
|
-
//
|
|
112
|
-
// this.emitter.on(PlayerEvents.LoadingStarted, () => {
|
|
113
|
-
// console.log('Video Loading...');
|
|
114
|
-
// });
|
|
115
|
-
//
|
|
116
|
-
// this.emitter.on(PlayerEvents.LoadingEnded, () => {
|
|
117
|
-
// console.log('Video Loaded...');
|
|
118
|
-
// });
|
|
119
|
-
this._registerVideoEvents();
|
|
120
|
-
}
|
|
121
|
-
_registerVideoEvents() {
|
|
122
|
-
this.el.addEventListener('play', () => {
|
|
123
|
-
this._paused = false;
|
|
124
|
-
this.emitter.emit(PlayerEvents.Play);
|
|
109
|
+
this.emitter.on(LoaderEvents.QualityLevelSwitched, (newLevelId, isAutoLevel) => {
|
|
110
|
+
const newLevel = this._qualityLevels.find((lvl) => lvl.id === newLevelId);
|
|
111
|
+
if (!newLevel) {
|
|
112
|
+
console.error(`Quality level switch to unknown level`, {
|
|
113
|
+
newLevelId,
|
|
114
|
+
levels: this._qualityLevels
|
|
115
|
+
});
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
118
|
+
this._updateQualityLevel(newLevel, isAutoLevel);
|
|
119
|
+
});
|
|
120
|
+
this.emitter.on(LoaderEvents.AudioTracksUpdated, (newTracks) => {
|
|
121
|
+
console.log('Audio tracks updated', newTracks);
|
|
122
|
+
this._updateAudioTracks(newTracks);
|
|
125
123
|
});
|
|
126
|
-
this.
|
|
127
|
-
|
|
124
|
+
this.emitter.on(LoaderEvents.AudioTrackSwitching, (newTrackId) => {
|
|
125
|
+
const newTrack = this._audioTracks.find((lvl) => lvl.id === newTrackId);
|
|
126
|
+
if (!newTrack) {
|
|
127
|
+
console.error(`Audio track switch to unknown track`, {
|
|
128
|
+
newTrackId,
|
|
129
|
+
levels: this._qualityLevels
|
|
130
|
+
});
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
133
|
+
this.emitter.emit(PlayerEvents.AudioTrackSwitching, newTrack);
|
|
134
|
+
});
|
|
135
|
+
this.emitter.on(LoaderEvents.AudioTrackSwitched, (newTrackId) => {
|
|
136
|
+
const newTrack = this._audioTracks.find((lvl) => lvl.id === newTrackId);
|
|
137
|
+
if (!newTrack) {
|
|
138
|
+
console.error(`Audio track switch to unknown track`, {
|
|
139
|
+
newTrackId,
|
|
140
|
+
levels: this._qualityLevels
|
|
141
|
+
});
|
|
142
|
+
return;
|
|
143
|
+
}
|
|
144
|
+
this._updateCurrentAudioTrack(newTrack);
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
_registerVideoEvents(el) {
|
|
148
|
+
const _onPlay = () => {
|
|
149
|
+
this._updatePaused(el.paused);
|
|
150
|
+
};
|
|
151
|
+
const _onPause = () => {
|
|
152
|
+
this._updatePaused(el.paused);
|
|
153
|
+
};
|
|
154
|
+
const _onPlaying = () => {
|
|
128
155
|
// Playing event can occur before canplaythrough event, so send loaded event there too
|
|
129
156
|
this._onLoaded();
|
|
130
157
|
this.emitter.emit(PlayerEvents.Playing);
|
|
131
|
-
}
|
|
132
|
-
|
|
158
|
+
};
|
|
159
|
+
const _onWaiting = () => {
|
|
133
160
|
// Loading event is already sent
|
|
134
161
|
if (this._isLoading) {
|
|
135
162
|
return;
|
|
136
163
|
}
|
|
137
|
-
this.
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
164
|
+
this._updateIsLoading(true);
|
|
165
|
+
};
|
|
166
|
+
const _onEnded = () => {
|
|
167
|
+
this.emitter.emit(PlayerEvents.Ended);
|
|
168
|
+
};
|
|
169
|
+
const _onReadyToPlay = () => {
|
|
143
170
|
this._onLoaded();
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
let newDur =
|
|
171
|
+
};
|
|
172
|
+
const _onDurationChange = () => {
|
|
173
|
+
let newDur = el.duration;
|
|
147
174
|
if (!isFinite(newDur) || isNaN(newDur)) {
|
|
148
175
|
newDur = 0;
|
|
149
176
|
}
|
|
150
177
|
if (this._duration !== newDur) {
|
|
151
|
-
this.
|
|
152
|
-
this.emitter.emit(PlayerEvents.PlaybackDurationChange, newDur);
|
|
178
|
+
this._updateDuration(newDur);
|
|
153
179
|
}
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
let newTime =
|
|
180
|
+
};
|
|
181
|
+
const _onTimeUpdate = () => {
|
|
182
|
+
let newTime = el.currentTime;
|
|
157
183
|
if (!isFinite(newTime) || isNaN(newTime)) {
|
|
158
184
|
newTime = 0;
|
|
159
185
|
}
|
|
160
186
|
if (this._currentTime !== newTime) {
|
|
161
|
-
this.
|
|
162
|
-
this.emitter.emit(PlayerEvents.PlaybackTimeUpdate, newTime);
|
|
187
|
+
this._updateCurrentTime(newTime);
|
|
163
188
|
}
|
|
164
189
|
// Buffered parts may not be dispatched in on progress event
|
|
165
190
|
// so take care that there is always fresh buffered parts
|
|
166
|
-
this._onProgress();
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
const
|
|
170
|
-
|
|
171
|
-
this._playbackRate = newRate;
|
|
172
|
-
this.emitter.emit(PlayerEvents.PlaybackRateChange, newRate);
|
|
173
|
-
}
|
|
174
|
-
});
|
|
175
|
-
this.el.addEventListener('volumechange', () => {
|
|
176
|
-
const newVol = this.el.volume;
|
|
177
|
-
const newMuted = this.el.muted;
|
|
191
|
+
this._onProgress(el);
|
|
192
|
+
};
|
|
193
|
+
const _onVolumeChange = () => {
|
|
194
|
+
const newVol = el.volume;
|
|
195
|
+
const newMuted = el.muted;
|
|
178
196
|
const isVolChanged = this._volume !== newVol;
|
|
179
197
|
const isMuteChanged = this._muted !== newMuted;
|
|
180
198
|
if (isVolChanged) {
|
|
181
|
-
this.
|
|
182
|
-
this.emitter.emit(PlayerEvents.VolumeChange, newVol);
|
|
199
|
+
this._updateVolume(newVol);
|
|
183
200
|
}
|
|
184
201
|
if (isMuteChanged) {
|
|
185
|
-
this.
|
|
186
|
-
this.emitter.emit(PlayerEvents.MuteChange, newMuted);
|
|
202
|
+
this._updateMuted(newMuted);
|
|
187
203
|
}
|
|
188
204
|
if (isVolChanged || isMuteChanged) {
|
|
189
205
|
this.emitter.emit(PlayerEvents.VolumeStateChange, newVol, newMuted);
|
|
190
206
|
}
|
|
191
|
-
}
|
|
192
|
-
|
|
207
|
+
};
|
|
208
|
+
const _onRateChange = () => {
|
|
209
|
+
const newRate = el.playbackRate;
|
|
210
|
+
if (this._playbackRate !== newRate) {
|
|
211
|
+
this._updatePlaybackRate(newRate);
|
|
212
|
+
}
|
|
213
|
+
};
|
|
214
|
+
const _onProgress = () => {
|
|
215
|
+
this._onProgress(el);
|
|
216
|
+
};
|
|
217
|
+
const _onError = (ev) => {
|
|
193
218
|
this.emitter.emit(PlayerEvents.Error, ev.error ?? 'unknown playback error');
|
|
194
|
-
}
|
|
219
|
+
};
|
|
220
|
+
el.addEventListener('play', _onPlay);
|
|
221
|
+
el.addEventListener('pause', _onPause);
|
|
222
|
+
el.addEventListener('playing', _onPlaying);
|
|
223
|
+
el.addEventListener('waiting', _onWaiting);
|
|
224
|
+
el.addEventListener('ended', _onEnded);
|
|
225
|
+
el.addEventListener('progress', _onProgress);
|
|
226
|
+
el.addEventListener('canplaythrough', _onReadyToPlay);
|
|
227
|
+
el.addEventListener('durationchange', _onDurationChange);
|
|
228
|
+
el.addEventListener('timeupdate', _onTimeUpdate);
|
|
229
|
+
el.addEventListener('ratechange', _onRateChange);
|
|
230
|
+
el.addEventListener('volumechange', _onVolumeChange);
|
|
231
|
+
el.addEventListener('error', _onError);
|
|
195
232
|
}
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
}
|
|
200
|
-
_onProgress() {
|
|
201
|
-
const newBuf = this.el.buffered;
|
|
233
|
+
_unregisterVideoElementEvents() { }
|
|
234
|
+
_onProgress(el) {
|
|
235
|
+
const newBuf = el.buffered;
|
|
202
236
|
const parts = [];
|
|
203
237
|
if (newBuf.length !== this._buffered.length) {
|
|
204
238
|
for (let i = 0; i < newBuf.length; i++) {
|
|
205
239
|
parts.push({ start: newBuf.start(i), end: newBuf.end(i) });
|
|
206
240
|
}
|
|
207
|
-
this.
|
|
208
|
-
this.emitter.emit(PlayerEvents.PlaybackBufferingProgress, parts);
|
|
241
|
+
this._updateBufferedParts(parts);
|
|
209
242
|
return;
|
|
210
243
|
}
|
|
211
244
|
let isChanged = false;
|
|
@@ -218,15 +251,117 @@ export class VideoPlayer {
|
|
|
218
251
|
if (!isChanged) {
|
|
219
252
|
return;
|
|
220
253
|
}
|
|
221
|
-
this.
|
|
222
|
-
this.emitter.emit(PlayerEvents.PlaybackBufferingProgress, parts);
|
|
254
|
+
this._updateBufferedParts(parts);
|
|
223
255
|
}
|
|
224
256
|
_onLoaded() {
|
|
225
257
|
if (this._isLoading) {
|
|
226
|
-
this.
|
|
258
|
+
this._updateIsLoading(false);
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
_updateIsLoading(isLoading) {
|
|
262
|
+
this._isLoading = isLoading;
|
|
263
|
+
this._isLoadingStore.set(isLoading);
|
|
264
|
+
if (isLoading) {
|
|
265
|
+
this.emitter.emit(PlayerEvents.LoadingStarted);
|
|
266
|
+
}
|
|
267
|
+
else {
|
|
227
268
|
this.emitter.emit(PlayerEvents.LoadingEnded);
|
|
228
269
|
}
|
|
229
270
|
}
|
|
271
|
+
_updateBufferedParts(buffered) {
|
|
272
|
+
this._buffered = buffered;
|
|
273
|
+
this._bufferedStore.set(buffered);
|
|
274
|
+
this.emitter.emit(PlayerEvents.PlaybackBufferingProgress, buffered);
|
|
275
|
+
}
|
|
276
|
+
_updateDuration(duration) {
|
|
277
|
+
this._duration = duration;
|
|
278
|
+
this._durationStore.set(duration);
|
|
279
|
+
this.emitter.emit(PlayerEvents.PlaybackDurationChange, duration);
|
|
280
|
+
}
|
|
281
|
+
_updateCurrentTime(currentTime) {
|
|
282
|
+
this._currentTime = currentTime;
|
|
283
|
+
this._currentTimeStore.set(currentTime);
|
|
284
|
+
this.emitter.emit(PlayerEvents.PlaybackTimeUpdate, currentTime);
|
|
285
|
+
}
|
|
286
|
+
_updatePlaybackRate(rate) {
|
|
287
|
+
this._playbackRate = rate;
|
|
288
|
+
this._playbackRateStore.set(rate);
|
|
289
|
+
this.emitter.emit(PlayerEvents.PlaybackRateChange, rate);
|
|
290
|
+
}
|
|
291
|
+
_updateVolume(volume) {
|
|
292
|
+
this._volume = volume;
|
|
293
|
+
this._volumeStore.set(volume);
|
|
294
|
+
this.emitter.emit(PlayerEvents.VolumeChange, volume);
|
|
295
|
+
}
|
|
296
|
+
_updateMuted(muted) {
|
|
297
|
+
this._muted = muted;
|
|
298
|
+
this._mutedStore.set(muted);
|
|
299
|
+
this.emitter.emit(PlayerEvents.MuteChange, muted);
|
|
300
|
+
}
|
|
301
|
+
_updatePaused(paused) {
|
|
302
|
+
this._paused = paused;
|
|
303
|
+
this._pausedStore.set(paused);
|
|
304
|
+
if (!paused) {
|
|
305
|
+
this.emitter.emit(PlayerEvents.Play);
|
|
306
|
+
}
|
|
307
|
+
else {
|
|
308
|
+
this.emitter.emit(PlayerEvents.Pause);
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
_updateQualityLevels(levels) {
|
|
312
|
+
this._qualityLevels = levels;
|
|
313
|
+
this._qualityLevelsStore.set(levels);
|
|
314
|
+
this.emitter.emit(PlayerEvents.QualityLevelsUpdated, levels);
|
|
315
|
+
}
|
|
316
|
+
_updateQualityLevel(level, isAutoQuality) {
|
|
317
|
+
this._currentQualityLevel = level;
|
|
318
|
+
this._currentQualityLevelStore.set(level);
|
|
319
|
+
this._isAutoQuality = isAutoQuality;
|
|
320
|
+
this._isAutoQualityStore.set(isAutoQuality);
|
|
321
|
+
this.emitter.emit(PlayerEvents.QualityLevelSwitched, level, isAutoQuality);
|
|
322
|
+
}
|
|
323
|
+
_updateAudioTracks(audioTracks) {
|
|
324
|
+
this._audioTracks = audioTracks;
|
|
325
|
+
this._audioTracksStore.set(audioTracks);
|
|
326
|
+
this.emitter.emit(PlayerEvents.AudioTracksUpdated, audioTracks);
|
|
327
|
+
}
|
|
328
|
+
_updateCurrentAudioTrack(audioTrack) {
|
|
329
|
+
this._currentAudioTrack = audioTrack;
|
|
330
|
+
this._currentAudioTrackStore.set(audioTrack);
|
|
331
|
+
this.emitter.emit(PlayerEvents.AudioTrackSwitched, audioTrack);
|
|
332
|
+
}
|
|
333
|
+
attachEl(el) {
|
|
334
|
+
if (this.el === el) {
|
|
335
|
+
return;
|
|
336
|
+
}
|
|
337
|
+
if (this.el) {
|
|
338
|
+
this.detachEl();
|
|
339
|
+
}
|
|
340
|
+
this.el = el;
|
|
341
|
+
this._updatePaused(el.paused);
|
|
342
|
+
this._updateMuted(el.muted);
|
|
343
|
+
this._updateVolume(el.volume);
|
|
344
|
+
this._updateCurrentTime(el.currentTime);
|
|
345
|
+
this._updateDuration(el.duration);
|
|
346
|
+
this._updatePlaybackRate(el.playbackRate);
|
|
347
|
+
this._registerVideoEvents(el);
|
|
348
|
+
// Setup HLS.js loader
|
|
349
|
+
if (isHlsJsSupported()) {
|
|
350
|
+
// @ts-ignore
|
|
351
|
+
this.hlsLoader = new HLSLoader(this.emitter, this.el, {
|
|
352
|
+
progressive: true
|
|
353
|
+
});
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
detachEl() {
|
|
357
|
+
if (!this.el) {
|
|
358
|
+
return;
|
|
359
|
+
}
|
|
360
|
+
this._unregisterVideoElementEvents();
|
|
361
|
+
this.el = undefined;
|
|
362
|
+
this.hlsLoader?.stop();
|
|
363
|
+
this.hlsLoader = null;
|
|
364
|
+
}
|
|
230
365
|
async load(params) {
|
|
231
366
|
if (this.loadAbortController) {
|
|
232
367
|
this.loadAbortController.abort('next loadPlaylistItem call');
|
|
@@ -269,6 +404,9 @@ export class VideoPlayer {
|
|
|
269
404
|
});
|
|
270
405
|
}
|
|
271
406
|
async togglePlay() {
|
|
407
|
+
if (!this.el) {
|
|
408
|
+
throw Error('Player is not attached to media element');
|
|
409
|
+
}
|
|
272
410
|
if (this.el.paused) {
|
|
273
411
|
return this.play();
|
|
274
412
|
}
|
|
@@ -276,14 +414,41 @@ export class VideoPlayer {
|
|
|
276
414
|
return Promise.resolve();
|
|
277
415
|
}
|
|
278
416
|
async play() {
|
|
417
|
+
if (!this.el) {
|
|
418
|
+
throw Error('Player is not attached to media element');
|
|
419
|
+
}
|
|
279
420
|
return this.el.play();
|
|
280
421
|
}
|
|
281
422
|
pause() {
|
|
423
|
+
if (!this.el) {
|
|
424
|
+
throw Error('Player is not attached to media element');
|
|
425
|
+
}
|
|
282
426
|
this.el.pause();
|
|
283
427
|
}
|
|
284
428
|
seekTo(pos) {
|
|
429
|
+
if (!this.el) {
|
|
430
|
+
throw Error('Player is not attached to media element');
|
|
431
|
+
}
|
|
285
432
|
this.el.currentTime = pos;
|
|
286
433
|
}
|
|
434
|
+
setVolume(vol) {
|
|
435
|
+
if (!this.el) {
|
|
436
|
+
throw Error('Player is not attached to media element');
|
|
437
|
+
}
|
|
438
|
+
this.el.volume = vol;
|
|
439
|
+
}
|
|
440
|
+
setMuted(muted) {
|
|
441
|
+
if (!this.el) {
|
|
442
|
+
throw Error('Player is not attached to media element');
|
|
443
|
+
}
|
|
444
|
+
this.el.muted = muted;
|
|
445
|
+
}
|
|
446
|
+
toggleMute() {
|
|
447
|
+
if (!this.el) {
|
|
448
|
+
throw Error('Player is not attached to media element');
|
|
449
|
+
}
|
|
450
|
+
this.el.muted = !this.el.muted;
|
|
451
|
+
}
|
|
287
452
|
setQualityLevel(id, graceful) {
|
|
288
453
|
const found = this._qualityLevels.find((lvl) => lvl.id === id);
|
|
289
454
|
if (!found) {
|
|
@@ -318,6 +483,12 @@ export class VideoPlayer {
|
|
|
318
483
|
get qualityLevel() {
|
|
319
484
|
return this._currentQualityLevel;
|
|
320
485
|
}
|
|
486
|
+
get audioTracks() {
|
|
487
|
+
return this._audioTracks;
|
|
488
|
+
}
|
|
489
|
+
get audioTrack() {
|
|
490
|
+
return this._currentAudioTrack;
|
|
491
|
+
}
|
|
321
492
|
get duration() {
|
|
322
493
|
return this._duration;
|
|
323
494
|
}
|
|
@@ -339,4 +510,43 @@ export class VideoPlayer {
|
|
|
339
510
|
get muted() {
|
|
340
511
|
return this._muted;
|
|
341
512
|
}
|
|
513
|
+
get pausedStore() {
|
|
514
|
+
return readonly(this._pausedStore);
|
|
515
|
+
}
|
|
516
|
+
get isLoadingStore() {
|
|
517
|
+
return readonly(this._isLoadingStore);
|
|
518
|
+
}
|
|
519
|
+
get qualityLevelsStore() {
|
|
520
|
+
return readonly(this._qualityLevelsStore);
|
|
521
|
+
}
|
|
522
|
+
get isAutoQualityStore() {
|
|
523
|
+
return readonly(this._isAutoQualityStore);
|
|
524
|
+
}
|
|
525
|
+
get qualityLevelStore() {
|
|
526
|
+
return readonly(this._currentQualityLevelStore);
|
|
527
|
+
}
|
|
528
|
+
get audioTracksStore() {
|
|
529
|
+
return readonly(this._audioTracksStore);
|
|
530
|
+
}
|
|
531
|
+
get audioTrackStore() {
|
|
532
|
+
return readonly(this._currentAudioTrackStore);
|
|
533
|
+
}
|
|
534
|
+
get durationStore() {
|
|
535
|
+
return readonly(this._durationStore);
|
|
536
|
+
}
|
|
537
|
+
get currentTimeStore() {
|
|
538
|
+
return readonly(this._currentTimeStore);
|
|
539
|
+
}
|
|
540
|
+
get bufferedStore() {
|
|
541
|
+
return readonly(this._bufferedStore);
|
|
542
|
+
}
|
|
543
|
+
get playbackRateStore() {
|
|
544
|
+
return readonly(this._playbackRateStore);
|
|
545
|
+
}
|
|
546
|
+
get volumeStore() {
|
|
547
|
+
return readonly(this._volumeStore);
|
|
548
|
+
}
|
|
549
|
+
get mutedStore() {
|
|
550
|
+
return readonly(this._mutedStore);
|
|
551
|
+
}
|
|
342
552
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VideoPlayer.js","sourceRoot":"","sources":["VideoPlayer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"VideoPlayer.js","sourceRoot":"","sources":["VideoPlayer.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ export * from "./core/HLSLoader.js";
|
|
|
3
3
|
export * from "./core/Playlist.js";
|
|
4
4
|
export * from "./core/PlaylistPlayer.js";
|
|
5
5
|
export * from "./core/QualityLevel.js";
|
|
6
|
+
export * from "./core/AudioTrack.js";
|
|
6
7
|
export * from "./core/VideoPlayer.js";
|
|
7
8
|
export * from "./ui/utils/duration.js";
|
|
8
9
|
export * from "./ui/utils/slider.js";
|
package/dist/index.js
CHANGED