@codercms/web-player 0.0.13 → 0.0.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/core/DOMEventRegistry.d.ts +63 -0
- package/dist/core/DOMEventRegistry.js +22 -0
- package/dist/core/DOMEventRegistry.js.map +1 -0
- package/dist/core/HLSLoader.d.ts +3 -2
- package/dist/core/HLSLoader.js.map +1 -1
- package/dist/core/PlaylistPlayer.d.ts +6 -3
- package/dist/core/PlaylistPlayer.js +21 -6
- package/dist/core/PlaylistPlayer.js.map +1 -1
- package/dist/core/VideoPlayer.d.ts +36 -10
- package/dist/core/VideoPlayer.js +208 -156
- package/dist/core/VideoPlayer.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
type DOMEventMapDefinitions = [
|
|
2
|
+
[
|
|
3
|
+
HTMLElement,
|
|
4
|
+
HTMLElementEventMap
|
|
5
|
+
],
|
|
6
|
+
[
|
|
7
|
+
Document,
|
|
8
|
+
DocumentEventMap
|
|
9
|
+
],
|
|
10
|
+
[
|
|
11
|
+
Window,
|
|
12
|
+
WindowEventMap
|
|
13
|
+
],
|
|
14
|
+
[
|
|
15
|
+
FileReader,
|
|
16
|
+
FileReaderEventMap
|
|
17
|
+
],
|
|
18
|
+
[
|
|
19
|
+
Element,
|
|
20
|
+
ElementEventMap
|
|
21
|
+
],
|
|
22
|
+
[
|
|
23
|
+
Animation,
|
|
24
|
+
AnimationEventMap
|
|
25
|
+
],
|
|
26
|
+
[
|
|
27
|
+
EventSource,
|
|
28
|
+
EventSourceEventMap
|
|
29
|
+
],
|
|
30
|
+
[
|
|
31
|
+
AbortSignal,
|
|
32
|
+
AbortSignalEventMap
|
|
33
|
+
],
|
|
34
|
+
[
|
|
35
|
+
AbstractWorker,
|
|
36
|
+
AbstractWorkerEventMap
|
|
37
|
+
]
|
|
38
|
+
];
|
|
39
|
+
type DOMEventSubscriber = DOMEventMapDefinitions[number][0];
|
|
40
|
+
type MapDefinitionToEventMap<D extends {
|
|
41
|
+
[K: number]: any[];
|
|
42
|
+
}, T> = {
|
|
43
|
+
[K in keyof D]: D[K] extends any[] ? (T extends D[K][0] ? D[K][1] : never) : never;
|
|
44
|
+
};
|
|
45
|
+
type GetDOMEventMaps<T extends DOMEventSubscriber> = MapDefinitionToEventMap<DOMEventMapDefinitions, T>;
|
|
46
|
+
type MapEventMapsToKeys<D extends {
|
|
47
|
+
[K: number]: any;
|
|
48
|
+
}> = {
|
|
49
|
+
[K in keyof D]: D[K] extends never ? never : keyof D[K];
|
|
50
|
+
};
|
|
51
|
+
type MapEventMapsToEvent<D extends {
|
|
52
|
+
[K: number]: any;
|
|
53
|
+
}, T extends PropertyKey> = {
|
|
54
|
+
[K in keyof D]: D[K] extends never ? never : T extends keyof D[K] ? D[K][T] : never;
|
|
55
|
+
};
|
|
56
|
+
export declare class DOMEventRegistry<T extends DOMEventSubscriber> {
|
|
57
|
+
private readonly el;
|
|
58
|
+
private eventListeners;
|
|
59
|
+
constructor(el: T);
|
|
60
|
+
subscribe<K extends MapEventMapsToKeys<GetDOMEventMaps<T>>[number] & string>(type: K, handler: (this: T, ev: MapEventMapsToEvent<GetDOMEventMaps<T>, K>[number]) => any): void;
|
|
61
|
+
unsubscribeAll(): void;
|
|
62
|
+
}
|
|
63
|
+
export {};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export class DOMEventRegistry {
|
|
2
|
+
el;
|
|
3
|
+
eventListeners = {};
|
|
4
|
+
constructor(el) {
|
|
5
|
+
this.el = el;
|
|
6
|
+
}
|
|
7
|
+
subscribe(type, handler) {
|
|
8
|
+
if (!this.eventListeners[type]) {
|
|
9
|
+
this.eventListeners[type] = [];
|
|
10
|
+
}
|
|
11
|
+
this.eventListeners[type].push(handler);
|
|
12
|
+
this.el.addEventListener(type, handler);
|
|
13
|
+
}
|
|
14
|
+
unsubscribeAll() {
|
|
15
|
+
for (const [event, handlers] of Object.entries(this.eventListeners)) {
|
|
16
|
+
for (const handler of handlers ?? []) {
|
|
17
|
+
this.el.removeEventListener(event, handler);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
this.eventListeners = {};
|
|
21
|
+
}
|
|
22
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DOMEventRegistry.js","sourceRoot":"","sources":["DOMEventRegistry.ts"],"names":[],"mappings":"AA8BA,MAAM,OAAO,gBAAgB;IAGC;IAFrB,cAAc,GAA8C,EAAE,CAAC;IAEvE,YAA6B,EAAK;QAAL,OAAE,GAAF,EAAE,CAAG;IAAG,CAAC;IAEtC,SAAS,CACR,IAAO,EACP,OAAiF;QAEjF,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;YAC/B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;SAC/B;QAED,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAgC,CAAC,CAAC;QAEjE,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,IAAI,EAAE,OAA6C,CAAC,CAAC;IAC/E,CAAC;IAED,cAAc;QACb,KAAK,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE;YACpE,KAAK,MAAM,OAAO,IAAI,QAAQ,IAAI,EAAE,EAAE;gBACrC,IAAI,CAAC,EAAE,CAAC,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;aAC5C;SACD;QAED,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;IAC1B,CAAC;CACD"}
|
package/dist/core/HLSLoader.d.ts
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import type { LoaderEventsMap, LoaderInterface, LoadParams } from './LoaderInterface.js';
|
|
2
2
|
import Hls, { type HlsConfig } from 'hls.js';
|
|
3
3
|
import type { EventEmitter } from 'eventemitter3';
|
|
4
|
+
export type HLSLoaderConfig = Partial<HlsConfig>;
|
|
4
5
|
export declare class HLSLoader implements LoaderInterface {
|
|
5
6
|
private emitter;
|
|
6
7
|
private el;
|
|
7
8
|
protected hls: Hls | null;
|
|
8
|
-
protected hlsConfig:
|
|
9
|
-
constructor(emitter: EventEmitter<LoaderEventsMap>, el: HTMLVideoElement, hlsConfig?:
|
|
9
|
+
protected hlsConfig: HLSLoaderConfig;
|
|
10
|
+
constructor(emitter: EventEmitter<LoaderEventsMap>, el: HTMLVideoElement, hlsConfig?: HLSLoaderConfig);
|
|
10
11
|
load(params: LoadParams): Promise<void>;
|
|
11
12
|
private _onLevelsUpdated;
|
|
12
13
|
switchAudioTrack(id: number, graceful: boolean): void;
|
|
@@ -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;AAIzD,MAAM,kBAAkB,GAAG,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"HLSLoader.js","sourceRoot":"","sources":["HLSLoader.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { VideoPlayer, type VideoPlayerEventsMap } from './VideoPlayer';
|
|
2
2
|
import { type LoadOpts, Playlist, type PlaylistEventsMap, type PlaylistItemInterface } from './Playlist';
|
|
3
|
+
import { EventEmitter } from 'eventemitter3';
|
|
3
4
|
export declare enum PlaylistPlayerEvents {
|
|
4
5
|
PlaylistItemLoading = "playlistPlayer.itemLoading",
|
|
5
6
|
PlaylistItemLoaded = "playlistPlayer.itemLoaded",
|
|
@@ -14,13 +15,15 @@ export interface PlaylistPlayerOpts {
|
|
|
14
15
|
autoPlayOnSet?: boolean;
|
|
15
16
|
}
|
|
16
17
|
export declare class PlaylistPlayer<ItemImpl extends PlaylistItemInterface> {
|
|
17
|
-
|
|
18
|
+
protected emitter: EventEmitter<PlaylistPlayerEventsMap<ItemImpl>, any>;
|
|
18
19
|
readonly playlist: Playlist<ItemImpl>;
|
|
19
|
-
readonly player: VideoPlayer;
|
|
20
20
|
protected readonly opts: PlaylistPlayerOpts;
|
|
21
|
-
|
|
21
|
+
protected _player?: VideoPlayer;
|
|
22
|
+
constructor(opts?: PlaylistPlayerOpts);
|
|
22
23
|
private _handleHTMLPlayEvent;
|
|
23
24
|
private _loadPlaylistItem;
|
|
25
|
+
attachPlayer(player: VideoPlayer): void;
|
|
26
|
+
get player(): VideoPlayer;
|
|
24
27
|
togglePlay(opts?: LoadOpts): Promise<void>;
|
|
25
28
|
play(opts?: LoadOpts): Promise<void>;
|
|
26
29
|
pause(): void;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { PlayerEvents, VideoPlayer } from './VideoPlayer';
|
|
2
2
|
import { Playlist, PlaylistEvents } from './Playlist';
|
|
3
3
|
import { EventEmitter } from 'eventemitter3';
|
|
4
|
+
import { BROWSER } from 'esm-env';
|
|
4
5
|
export var PlaylistPlayerEvents;
|
|
5
6
|
(function (PlaylistPlayerEvents) {
|
|
6
7
|
PlaylistPlayerEvents["PlaylistItemLoading"] = "playlistPlayer.itemLoading";
|
|
@@ -11,12 +12,14 @@ export class PlaylistPlayer {
|
|
|
11
12
|
emitter = new EventEmitter();
|
|
12
13
|
// @ts-ignore
|
|
13
14
|
playlist = new Playlist(this.emitter);
|
|
14
|
-
player;
|
|
15
15
|
opts;
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
this.player = new VideoPlayer(el, this.emitter);
|
|
16
|
+
_player;
|
|
17
|
+
constructor(opts) {
|
|
19
18
|
this.opts = opts ?? {};
|
|
19
|
+
// Do nothing in SSR environment
|
|
20
|
+
if (!BROWSER) {
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
20
23
|
this.emitter.on(PlaylistEvents.Set, async (item, opts) => {
|
|
21
24
|
const paused = this.player.paused;
|
|
22
25
|
await this._loadPlaylistItem(item, opts);
|
|
@@ -30,8 +33,6 @@ export class PlaylistPlayer {
|
|
|
30
33
|
await this.player.play();
|
|
31
34
|
}
|
|
32
35
|
});
|
|
33
|
-
// Handle native play event
|
|
34
|
-
this.emitter.on(PlayerEvents.Play, this._handleHTMLPlayEvent, this);
|
|
35
36
|
}
|
|
36
37
|
async _handleHTMLPlayEvent() {
|
|
37
38
|
if (this.playlist.getCurrent()) {
|
|
@@ -60,6 +61,20 @@ export class PlaylistPlayer {
|
|
|
60
61
|
}
|
|
61
62
|
this.emitter.emit(PlaylistPlayerEvents.PlaylistItemLoaded, item);
|
|
62
63
|
}
|
|
64
|
+
attachPlayer(player) {
|
|
65
|
+
if (this._player) {
|
|
66
|
+
this._player.unsubscribe(PlayerEvents.Play, this._handleHTMLPlayEvent.bind(this));
|
|
67
|
+
}
|
|
68
|
+
this._player = player;
|
|
69
|
+
// Handle native play event
|
|
70
|
+
player.subscribe(PlayerEvents.Play, this._handleHTMLPlayEvent.bind(this));
|
|
71
|
+
}
|
|
72
|
+
get player() {
|
|
73
|
+
if (!this._player) {
|
|
74
|
+
throw Error('Player is not attached');
|
|
75
|
+
}
|
|
76
|
+
return this._player;
|
|
77
|
+
}
|
|
63
78
|
async togglePlay(opts) {
|
|
64
79
|
if (!this.playlist.getCurrent()) {
|
|
65
80
|
return this.play(opts);
|
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"PlaylistPlayer.js","sourceRoot":"","sources":["PlaylistPlayer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +1,22 @@
|
|
|
1
1
|
import { EventEmitter } from 'eventemitter3';
|
|
2
2
|
import { type Readable, type Writable } from 'svelte/store';
|
|
3
|
-
import { HLSLoader } from './HLSLoader.js';
|
|
3
|
+
import { HLSLoader, type HLSLoaderConfig } from './HLSLoader.js';
|
|
4
4
|
import type { GetUrlCb, LoaderEventsMap, LoaderInterface } from './LoaderInterface.js';
|
|
5
5
|
import type { QualityLevel } from './QualityLevel';
|
|
6
6
|
import type { AudioTrack } from './AudioTrack';
|
|
7
|
+
import { DOMEventRegistry } from './DOMEventRegistry';
|
|
7
8
|
export declare enum PlayerEvents {
|
|
8
9
|
Play = "player.play",
|
|
9
10
|
Pause = "player.pause",
|
|
10
11
|
Ended = "player.ended",
|
|
11
12
|
Error = "player.error",
|
|
12
13
|
Playing = "player.playing",
|
|
14
|
+
Seeking = "player.seeking",
|
|
15
|
+
Seeked = "player.seeked",
|
|
16
|
+
MediaElementAttached = "player.mediaElementAttached",
|
|
17
|
+
MediaElementDetached = "player.mediaElementDetached",
|
|
18
|
+
ContainerElementAttached = "player.containerElementAttached",
|
|
19
|
+
ContainerElementDetached = "player.containerElementDetached",
|
|
13
20
|
FullScreenEnter = "player.fullscreenEnter",
|
|
14
21
|
FullScreenExit = "player.fullscreenExit",
|
|
15
22
|
FullScreenToggle = "player.fullscreenToggle",
|
|
@@ -35,6 +42,12 @@ export type VideoPlayerEventsMap = {
|
|
|
35
42
|
[PlayerEvents.Ended]: () => void;
|
|
36
43
|
[PlayerEvents.Error]: (error: string) => void;
|
|
37
44
|
[PlayerEvents.Playing]: () => void;
|
|
45
|
+
[PlayerEvents.Seeking]: () => void;
|
|
46
|
+
[PlayerEvents.Seeked]: () => void;
|
|
47
|
+
[PlayerEvents.MediaElementAttached]: (el: HTMLMediaElement) => void;
|
|
48
|
+
[PlayerEvents.MediaElementDetached]: (el: HTMLMediaElement) => void;
|
|
49
|
+
[PlayerEvents.ContainerElementAttached]: (el: HTMLElement) => void;
|
|
50
|
+
[PlayerEvents.ContainerElementDetached]: (el: HTMLElement) => void;
|
|
38
51
|
[PlayerEvents.FullScreenEnter]: () => void;
|
|
39
52
|
[PlayerEvents.FullScreenExit]: () => void;
|
|
40
53
|
[PlayerEvents.FullScreenToggle]: (isFullScreen: boolean) => void;
|
|
@@ -50,16 +63,10 @@ export type VideoPlayerEventsMap = {
|
|
|
50
63
|
[PlayerEvents.QualityLevelsUpdated]: (levels: QualityLevel[]) => void;
|
|
51
64
|
[PlayerEvents.QualityLevelSwitching]: (level: QualityLevel, isAutoLevel: boolean) => void;
|
|
52
65
|
[PlayerEvents.QualityLevelSwitched]: (level: QualityLevel, isAutoLevel: boolean) => void;
|
|
53
|
-
[PlayerEvents.QualityLevelsUpdated]: (levels: QualityLevel[]) => void;
|
|
54
|
-
[PlayerEvents.QualityLevelSwitching]: (level: QualityLevel, isAutoLevel: boolean) => void;
|
|
55
|
-
[PlayerEvents.QualityLevelSwitched]: (level: QualityLevel, isAutoLevel: boolean) => void;
|
|
56
66
|
[PlayerEvents.AudioTracksUpdated]: (tracks: AudioTrack[]) => void;
|
|
57
67
|
[PlayerEvents.AudioTrackSwitching]: (track: AudioTrack) => void;
|
|
58
68
|
[PlayerEvents.AudioTrackSwitched]: (track: AudioTrack) => void;
|
|
59
69
|
} & LoaderEventsMap;
|
|
60
|
-
export declare enum PlayerActions {
|
|
61
|
-
PlayItem = "player.playItem"
|
|
62
|
-
}
|
|
63
70
|
export declare enum Loader {
|
|
64
71
|
Native = 0,
|
|
65
72
|
HLS = 1,
|
|
@@ -78,9 +85,14 @@ export type BufferedPart = {
|
|
|
78
85
|
start: number;
|
|
79
86
|
end: number;
|
|
80
87
|
};
|
|
88
|
+
type PlayerConfig = {
|
|
89
|
+
hlsConfig?: HLSLoaderConfig;
|
|
90
|
+
};
|
|
81
91
|
export declare class VideoPlayer {
|
|
82
|
-
protected
|
|
83
|
-
protected
|
|
92
|
+
protected _el?: HTMLMediaElement;
|
|
93
|
+
protected _containerEl?: HTMLElement;
|
|
94
|
+
protected elEventsRegistry?: DOMEventRegistry<HTMLMediaElement>;
|
|
95
|
+
protected _cfg: PlayerConfig;
|
|
84
96
|
protected emitter: EventEmitter<VideoPlayerEventsMap>;
|
|
85
97
|
protected loadAbortController: AbortController | null;
|
|
86
98
|
protected currentLoader: LoaderInterface | null;
|
|
@@ -113,11 +125,19 @@ export declare class VideoPlayer {
|
|
|
113
125
|
protected _qualityLevelsStore: Writable<QualityLevel[]>;
|
|
114
126
|
protected _currentAudioTrackStore: Writable<AudioTrack | null>;
|
|
115
127
|
protected _audioTracksStore: Writable<AudioTrack[]>;
|
|
116
|
-
constructor(el?: HTMLMediaElement,
|
|
128
|
+
constructor(el?: HTMLMediaElement, cfg?: PlayerConfig);
|
|
117
129
|
private _registerVideoEvents;
|
|
118
130
|
private _unregisterVideoElementEvents;
|
|
119
131
|
private _onProgress;
|
|
120
132
|
private _onLoaded;
|
|
133
|
+
private _onLoaderLoading;
|
|
134
|
+
private _onLoaderQualityLevelsUpdated;
|
|
135
|
+
private _onLoaderQualityLevelSwitching;
|
|
136
|
+
private _onLoaderQualityLevelSwitched;
|
|
137
|
+
private _onLoaderAudioTracksUpdated;
|
|
138
|
+
private _onLoaderAudioTrackSwitching;
|
|
139
|
+
private _onLoaderAudioTrackSwitched;
|
|
140
|
+
private _onFullScreenChange;
|
|
121
141
|
private _updateIsFullScreen;
|
|
122
142
|
private _updateIsLoading;
|
|
123
143
|
private _updateBufferedParts;
|
|
@@ -135,6 +155,7 @@ export declare class VideoPlayer {
|
|
|
135
155
|
attachContainerEl(el: HTMLElement): void;
|
|
136
156
|
detachEl(): void;
|
|
137
157
|
detachContainerEl(): void;
|
|
158
|
+
destroy(): void;
|
|
138
159
|
load(params: PlayerLoadParams): Promise<void>;
|
|
139
160
|
togglePlay(): Promise<void>;
|
|
140
161
|
play(): Promise<void>;
|
|
@@ -148,7 +169,11 @@ export declare class VideoPlayer {
|
|
|
148
169
|
setQualityLevel(id: number, graceful: boolean): void;
|
|
149
170
|
setAutoQualityLevel(graceful: boolean): void;
|
|
150
171
|
subscribe<K extends keyof VideoPlayerEventsMap>(ev: K, cb: VideoPlayerEventsMap[K]): void;
|
|
172
|
+
subscribeOnce<K extends keyof VideoPlayerEventsMap>(ev: K, cb: VideoPlayerEventsMap[K]): void;
|
|
151
173
|
unsubscribe<K extends keyof VideoPlayerEventsMap>(ev: K, cb: VideoPlayerEventsMap[K]): void;
|
|
174
|
+
get el(): HTMLMediaElement;
|
|
175
|
+
get containerEl(): HTMLElement;
|
|
176
|
+
get loader(): LoaderInterface | null;
|
|
152
177
|
get isFullScreen(): boolean;
|
|
153
178
|
get isLoading(): boolean;
|
|
154
179
|
get qualityLevels(): QualityLevel[];
|
|
@@ -178,3 +203,4 @@ export declare class VideoPlayer {
|
|
|
178
203
|
get volumeStore(): Readable<number>;
|
|
179
204
|
get mutedStore(): Readable<boolean>;
|
|
180
205
|
}
|
|
206
|
+
export {};
|
package/dist/core/VideoPlayer.js
CHANGED
|
@@ -2,6 +2,7 @@ import { EventEmitter } from 'eventemitter3';
|
|
|
2
2
|
import { readonly, writable } from 'svelte/store';
|
|
3
3
|
import { HLSLoader, isHlsJsSupported } from './HLSLoader.js';
|
|
4
4
|
import { LoaderEvents } from './LoaderInterface.js';
|
|
5
|
+
import { DOMEventRegistry } from './DOMEventRegistry';
|
|
5
6
|
import screenfull from 'screenfull';
|
|
6
7
|
import { BROWSER } from 'esm-env';
|
|
7
8
|
import { IS_IOS, IS_IPAD_NEW } from '../ui/utils/ios';
|
|
@@ -12,6 +13,12 @@ export var PlayerEvents;
|
|
|
12
13
|
PlayerEvents["Ended"] = "player.ended";
|
|
13
14
|
PlayerEvents["Error"] = "player.error";
|
|
14
15
|
PlayerEvents["Playing"] = "player.playing";
|
|
16
|
+
PlayerEvents["Seeking"] = "player.seeking";
|
|
17
|
+
PlayerEvents["Seeked"] = "player.seeked";
|
|
18
|
+
PlayerEvents["MediaElementAttached"] = "player.mediaElementAttached";
|
|
19
|
+
PlayerEvents["MediaElementDetached"] = "player.mediaElementDetached";
|
|
20
|
+
PlayerEvents["ContainerElementAttached"] = "player.containerElementAttached";
|
|
21
|
+
PlayerEvents["ContainerElementDetached"] = "player.containerElementDetached";
|
|
15
22
|
PlayerEvents["FullScreenEnter"] = "player.fullscreenEnter";
|
|
16
23
|
PlayerEvents["FullScreenExit"] = "player.fullscreenExit";
|
|
17
24
|
PlayerEvents["FullScreenToggle"] = "player.fullscreenToggle";
|
|
@@ -31,10 +38,6 @@ export var PlayerEvents;
|
|
|
31
38
|
PlayerEvents["AudioTrackSwitching"] = "player.audioTrackSwitching";
|
|
32
39
|
PlayerEvents["AudioTrackSwitched"] = "player.audioTrackSwitched";
|
|
33
40
|
})(PlayerEvents || (PlayerEvents = {}));
|
|
34
|
-
export var PlayerActions;
|
|
35
|
-
(function (PlayerActions) {
|
|
36
|
-
PlayerActions["PlayItem"] = "player.playItem";
|
|
37
|
-
})(PlayerActions || (PlayerActions = {}));
|
|
38
41
|
export var Loader;
|
|
39
42
|
(function (Loader) {
|
|
40
43
|
Loader[Loader["Native"] = 0] = "Native";
|
|
@@ -42,9 +45,11 @@ export var Loader;
|
|
|
42
45
|
Loader[Loader["DASH"] = 2] = "DASH";
|
|
43
46
|
})(Loader || (Loader = {}));
|
|
44
47
|
export class VideoPlayer {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
+
_el;
|
|
49
|
+
_containerEl;
|
|
50
|
+
elEventsRegistry;
|
|
51
|
+
_cfg;
|
|
52
|
+
emitter = new EventEmitter();
|
|
48
53
|
loadAbortController = null;
|
|
49
54
|
currentLoader = null;
|
|
50
55
|
hlsLoader = null;
|
|
@@ -76,8 +81,8 @@ export class VideoPlayer {
|
|
|
76
81
|
_qualityLevelsStore = writable(this._qualityLevels);
|
|
77
82
|
_currentAudioTrackStore = writable(this._currentAudioTrack);
|
|
78
83
|
_audioTracksStore = writable(this._audioTracks);
|
|
79
|
-
constructor(el,
|
|
80
|
-
this.
|
|
84
|
+
constructor(el, cfg) {
|
|
85
|
+
this._cfg = cfg ?? {};
|
|
81
86
|
// Do nothing in SSR environment
|
|
82
87
|
if (!BROWSER) {
|
|
83
88
|
return;
|
|
@@ -85,105 +90,47 @@ export class VideoPlayer {
|
|
|
85
90
|
if (el) {
|
|
86
91
|
this.attachEl(el);
|
|
87
92
|
}
|
|
88
|
-
screenfull.on('change', ()
|
|
89
|
-
const newFullScreen = screenfull.isFullscreen;
|
|
90
|
-
if (newFullScreen !== this._isFullScreen) {
|
|
91
|
-
this._updateIsFullScreen(newFullScreen);
|
|
92
|
-
}
|
|
93
|
-
});
|
|
93
|
+
screenfull.on('change', this._onFullScreenChange.bind(this));
|
|
94
94
|
// Reset state
|
|
95
|
-
this.emitter.on(LoaderEvents.Loading, ()
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
this._currentQualityLevel = null;
|
|
103
|
-
this._currentQualityLevelStore.set(null);
|
|
104
|
-
this._currentAudioTrack = null;
|
|
105
|
-
this._currentAudioTrackStore.set(null);
|
|
106
|
-
});
|
|
107
|
-
this.emitter.on(LoaderEvents.QualityLevelsUpdated, (newLevels) => {
|
|
108
|
-
console.log('Quality levels updated', newLevels);
|
|
109
|
-
this._updateQualityLevels(newLevels);
|
|
110
|
-
});
|
|
111
|
-
this.emitter.on(LoaderEvents.QualityLevelSwitching, (newLevelId, isAutoLevel) => {
|
|
112
|
-
const newLevel = this._qualityLevels.find((lvl) => lvl.id === newLevelId);
|
|
113
|
-
if (!newLevel) {
|
|
114
|
-
console.error(`Quality level switch to unknown level`, {
|
|
115
|
-
newLevelId,
|
|
116
|
-
levels: this._qualityLevels
|
|
117
|
-
});
|
|
118
|
-
return;
|
|
119
|
-
}
|
|
120
|
-
this._isAutoQuality = isAutoLevel;
|
|
121
|
-
this.emitter.emit(PlayerEvents.QualityLevelSwitching, newLevel, isAutoLevel);
|
|
122
|
-
});
|
|
123
|
-
this.emitter.on(LoaderEvents.QualityLevelSwitched, (newLevelId, isAutoLevel) => {
|
|
124
|
-
const newLevel = this._qualityLevels.find((lvl) => lvl.id === newLevelId);
|
|
125
|
-
if (!newLevel) {
|
|
126
|
-
console.error(`Quality level switch to unknown level`, {
|
|
127
|
-
newLevelId,
|
|
128
|
-
levels: this._qualityLevels
|
|
129
|
-
});
|
|
130
|
-
return;
|
|
131
|
-
}
|
|
132
|
-
this._updateQualityLevel(newLevel, isAutoLevel);
|
|
133
|
-
});
|
|
134
|
-
this.emitter.on(LoaderEvents.AudioTracksUpdated, (newTracks) => {
|
|
135
|
-
console.log('Audio tracks updated', newTracks);
|
|
136
|
-
this._updateAudioTracks(newTracks);
|
|
137
|
-
});
|
|
138
|
-
this.emitter.on(LoaderEvents.AudioTrackSwitching, (newTrackId) => {
|
|
139
|
-
const newTrack = this._audioTracks.find((lvl) => lvl.id === newTrackId);
|
|
140
|
-
if (!newTrack) {
|
|
141
|
-
console.error(`Audio track switch to unknown track`, {
|
|
142
|
-
newTrackId,
|
|
143
|
-
levels: this._qualityLevels
|
|
144
|
-
});
|
|
145
|
-
return;
|
|
146
|
-
}
|
|
147
|
-
this.emitter.emit(PlayerEvents.AudioTrackSwitching, newTrack);
|
|
148
|
-
});
|
|
149
|
-
this.emitter.on(LoaderEvents.AudioTrackSwitched, (newTrackId) => {
|
|
150
|
-
const newTrack = this._audioTracks.find((lvl) => lvl.id === newTrackId);
|
|
151
|
-
if (!newTrack) {
|
|
152
|
-
console.error(`Audio track switch to unknown track`, {
|
|
153
|
-
newTrackId,
|
|
154
|
-
levels: this._qualityLevels
|
|
155
|
-
});
|
|
156
|
-
return;
|
|
157
|
-
}
|
|
158
|
-
this._updateCurrentAudioTrack(newTrack);
|
|
159
|
-
});
|
|
95
|
+
this.emitter.on(LoaderEvents.Loading, this._onLoaderLoading.bind(this));
|
|
96
|
+
this.emitter.on(LoaderEvents.QualityLevelsUpdated, this._onLoaderQualityLevelsUpdated.bind(this));
|
|
97
|
+
this.emitter.on(LoaderEvents.QualityLevelSwitching, this._onLoaderQualityLevelSwitching.bind(this));
|
|
98
|
+
this.emitter.on(LoaderEvents.QualityLevelSwitched, this._onLoaderQualityLevelSwitched.bind(this));
|
|
99
|
+
this.emitter.on(LoaderEvents.AudioTracksUpdated, this._onLoaderAudioTracksUpdated.bind(this));
|
|
100
|
+
this.emitter.on(LoaderEvents.AudioTrackSwitching, this._onLoaderAudioTrackSwitching.bind(this));
|
|
101
|
+
this.emitter.on(LoaderEvents.AudioTrackSwitched, this._onLoaderAudioTrackSwitched.bind(this));
|
|
160
102
|
}
|
|
161
103
|
_registerVideoEvents(el) {
|
|
162
|
-
|
|
104
|
+
this.elEventsRegistry?.unsubscribeAll();
|
|
105
|
+
this.elEventsRegistry = new DOMEventRegistry(el);
|
|
106
|
+
this.elEventsRegistry.subscribe('play', () => {
|
|
163
107
|
this._updatePaused(el.paused);
|
|
164
|
-
};
|
|
165
|
-
|
|
108
|
+
});
|
|
109
|
+
this.elEventsRegistry.subscribe('pause', () => {
|
|
166
110
|
this._updatePaused(el.paused);
|
|
167
|
-
};
|
|
168
|
-
|
|
111
|
+
});
|
|
112
|
+
this.elEventsRegistry.subscribe('playing', () => {
|
|
169
113
|
// Playing event can occur before canplaythrough event, so send loaded event there too
|
|
170
114
|
this._onLoaded();
|
|
171
115
|
this.emitter.emit(PlayerEvents.Playing);
|
|
172
|
-
};
|
|
173
|
-
|
|
116
|
+
});
|
|
117
|
+
this.elEventsRegistry.subscribe('waiting', () => {
|
|
174
118
|
// Loading event is already sent
|
|
175
119
|
if (this._isLoading) {
|
|
176
120
|
return;
|
|
177
121
|
}
|
|
178
122
|
this._updateIsLoading(true);
|
|
179
|
-
};
|
|
180
|
-
|
|
123
|
+
});
|
|
124
|
+
this.elEventsRegistry.subscribe('ended', () => {
|
|
181
125
|
this.emitter.emit(PlayerEvents.Ended);
|
|
182
|
-
};
|
|
183
|
-
|
|
126
|
+
});
|
|
127
|
+
this.elEventsRegistry.subscribe('progress', () => {
|
|
128
|
+
this._onProgress(el);
|
|
129
|
+
});
|
|
130
|
+
this.elEventsRegistry.subscribe('canplaythrough', () => {
|
|
184
131
|
this._onLoaded();
|
|
185
|
-
};
|
|
186
|
-
|
|
132
|
+
});
|
|
133
|
+
this.elEventsRegistry.subscribe('durationchange', () => {
|
|
187
134
|
let newDur = el.duration;
|
|
188
135
|
if (!isFinite(newDur) || isNaN(newDur)) {
|
|
189
136
|
newDur = 0;
|
|
@@ -191,8 +138,8 @@ export class VideoPlayer {
|
|
|
191
138
|
if (this._duration !== newDur) {
|
|
192
139
|
this._updateDuration(newDur);
|
|
193
140
|
}
|
|
194
|
-
};
|
|
195
|
-
|
|
141
|
+
});
|
|
142
|
+
this.elEventsRegistry.subscribe('timeupdate', () => {
|
|
196
143
|
let newTime = el.currentTime;
|
|
197
144
|
if (!isFinite(newTime) || isNaN(newTime)) {
|
|
198
145
|
newTime = 0;
|
|
@@ -203,8 +150,14 @@ export class VideoPlayer {
|
|
|
203
150
|
// Buffered parts may not be dispatched in on progress event
|
|
204
151
|
// so take care that there is always fresh buffered parts
|
|
205
152
|
this._onProgress(el);
|
|
206
|
-
};
|
|
207
|
-
|
|
153
|
+
});
|
|
154
|
+
this.elEventsRegistry.subscribe('ratechange', () => {
|
|
155
|
+
const newRate = el.playbackRate;
|
|
156
|
+
if (this._playbackRate !== newRate) {
|
|
157
|
+
this._updatePlaybackRate(newRate);
|
|
158
|
+
}
|
|
159
|
+
});
|
|
160
|
+
this.elEventsRegistry.subscribe('volumechange', () => {
|
|
208
161
|
const newVol = el.volume;
|
|
209
162
|
const newMuted = el.muted;
|
|
210
163
|
const isVolChanged = this._volume !== newVol;
|
|
@@ -218,34 +171,13 @@ export class VideoPlayer {
|
|
|
218
171
|
if (isVolChanged || isMuteChanged) {
|
|
219
172
|
this.emitter.emit(PlayerEvents.VolumeStateChange, newVol, newMuted);
|
|
220
173
|
}
|
|
221
|
-
};
|
|
222
|
-
|
|
223
|
-
const newRate = el.playbackRate;
|
|
224
|
-
if (this._playbackRate !== newRate) {
|
|
225
|
-
this._updatePlaybackRate(newRate);
|
|
226
|
-
}
|
|
227
|
-
};
|
|
228
|
-
const _onProgress = () => {
|
|
229
|
-
this._onProgress(el);
|
|
230
|
-
};
|
|
231
|
-
const _onError = (ev) => {
|
|
174
|
+
});
|
|
175
|
+
this.elEventsRegistry.subscribe('error', (ev) => {
|
|
232
176
|
this.emitter.emit(PlayerEvents.Error, ev.error ?? 'unknown playback error');
|
|
233
|
-
};
|
|
234
|
-
el.addEventListener('play', _onPlay);
|
|
235
|
-
el.addEventListener('pause', _onPause);
|
|
236
|
-
el.addEventListener('playing', _onPlaying);
|
|
237
|
-
el.addEventListener('waiting', _onWaiting);
|
|
238
|
-
el.addEventListener('ended', _onEnded);
|
|
239
|
-
el.addEventListener('progress', _onProgress);
|
|
240
|
-
el.addEventListener('canplaythrough', _onReadyToPlay);
|
|
241
|
-
el.addEventListener('durationchange', _onDurationChange);
|
|
242
|
-
el.addEventListener('timeupdate', _onTimeUpdate);
|
|
243
|
-
el.addEventListener('ratechange', _onRateChange);
|
|
244
|
-
el.addEventListener('volumechange', _onVolumeChange);
|
|
245
|
-
el.addEventListener('error', _onError);
|
|
177
|
+
});
|
|
246
178
|
}
|
|
247
179
|
_unregisterVideoElementEvents() {
|
|
248
|
-
|
|
180
|
+
this.elEventsRegistry?.unsubscribeAll();
|
|
249
181
|
}
|
|
250
182
|
_onProgress(el) {
|
|
251
183
|
const newBuf = el.buffered;
|
|
@@ -274,6 +206,78 @@ export class VideoPlayer {
|
|
|
274
206
|
this._updateIsLoading(false);
|
|
275
207
|
}
|
|
276
208
|
}
|
|
209
|
+
_onLoaderLoading() {
|
|
210
|
+
this._updateIsLoading(true);
|
|
211
|
+
this._updateAudioTracks([]);
|
|
212
|
+
this._updateQualityLevels([]);
|
|
213
|
+
this._updateDuration(0);
|
|
214
|
+
this._updateCurrentTime(0);
|
|
215
|
+
this._updateBufferedParts([]);
|
|
216
|
+
this._currentQualityLevel = null;
|
|
217
|
+
this._currentQualityLevelStore.set(null);
|
|
218
|
+
this._currentAudioTrack = null;
|
|
219
|
+
this._currentAudioTrackStore.set(null);
|
|
220
|
+
}
|
|
221
|
+
_onLoaderQualityLevelsUpdated(newLevels) {
|
|
222
|
+
// console.log('Quality levels updated', newLevels);
|
|
223
|
+
this._updateQualityLevels(newLevels);
|
|
224
|
+
}
|
|
225
|
+
_onLoaderQualityLevelSwitching(newLevelId, isAutoLevel) {
|
|
226
|
+
const newLevel = this._qualityLevels.find((lvl) => lvl.id === newLevelId);
|
|
227
|
+
if (!newLevel) {
|
|
228
|
+
console.error(`Quality level switch to unknown level`, {
|
|
229
|
+
newLevelId,
|
|
230
|
+
levels: this._qualityLevels
|
|
231
|
+
});
|
|
232
|
+
return;
|
|
233
|
+
}
|
|
234
|
+
this._isAutoQuality = isAutoLevel;
|
|
235
|
+
this.emitter.emit(PlayerEvents.QualityLevelSwitching, newLevel, isAutoLevel);
|
|
236
|
+
}
|
|
237
|
+
_onLoaderQualityLevelSwitched(newLevelId, isAutoLevel) {
|
|
238
|
+
const newLevel = this._qualityLevels.find((lvl) => lvl.id === newLevelId);
|
|
239
|
+
if (!newLevel) {
|
|
240
|
+
console.error(`Quality level switch to unknown level`, {
|
|
241
|
+
newLevelId,
|
|
242
|
+
levels: this._qualityLevels
|
|
243
|
+
});
|
|
244
|
+
return;
|
|
245
|
+
}
|
|
246
|
+
this._updateQualityLevel(newLevel, isAutoLevel);
|
|
247
|
+
}
|
|
248
|
+
_onLoaderAudioTracksUpdated(newTracks) {
|
|
249
|
+
// console.log('Audio tracks updated', newTracks);
|
|
250
|
+
this._updateAudioTracks(newTracks);
|
|
251
|
+
}
|
|
252
|
+
_onLoaderAudioTrackSwitching(newTrackId) {
|
|
253
|
+
const newTrack = this._audioTracks.find((lvl) => lvl.id === newTrackId);
|
|
254
|
+
if (!newTrack) {
|
|
255
|
+
console.error(`Audio track switch to unknown track`, {
|
|
256
|
+
newTrackId,
|
|
257
|
+
tracks: this._audioTracks
|
|
258
|
+
});
|
|
259
|
+
return;
|
|
260
|
+
}
|
|
261
|
+
this.emitter.emit(PlayerEvents.AudioTrackSwitching, newTrack);
|
|
262
|
+
}
|
|
263
|
+
_onLoaderAudioTrackSwitched(newTrackId) {
|
|
264
|
+
const newTrack = this._audioTracks.find((lvl) => lvl.id === newTrackId);
|
|
265
|
+
if (!newTrack) {
|
|
266
|
+
console.error(`Audio track switch to unknown track`, {
|
|
267
|
+
newTrackId,
|
|
268
|
+
tracks: this._audioTracks
|
|
269
|
+
});
|
|
270
|
+
return;
|
|
271
|
+
}
|
|
272
|
+
this._updateCurrentAudioTrack(newTrack);
|
|
273
|
+
this.emitter.emit(PlayerEvents.AudioTrackSwitching, newTrack);
|
|
274
|
+
}
|
|
275
|
+
_onFullScreenChange = () => {
|
|
276
|
+
const newFullScreen = screenfull.isFullscreen;
|
|
277
|
+
if (newFullScreen !== this._isFullScreen) {
|
|
278
|
+
this._updateIsFullScreen(newFullScreen);
|
|
279
|
+
}
|
|
280
|
+
};
|
|
277
281
|
_updateIsFullScreen(isFullScreen) {
|
|
278
282
|
this._isFullScreen = isFullScreen;
|
|
279
283
|
this._isFullScreenStore.set(isFullScreen);
|
|
@@ -358,13 +362,13 @@ export class VideoPlayer {
|
|
|
358
362
|
this.emitter.emit(PlayerEvents.AudioTrackSwitched, audioTrack);
|
|
359
363
|
}
|
|
360
364
|
attachEl(el) {
|
|
361
|
-
if (this.
|
|
365
|
+
if (this._el === el) {
|
|
362
366
|
return;
|
|
363
367
|
}
|
|
364
|
-
if (this.
|
|
368
|
+
if (this._el) {
|
|
365
369
|
this.detachEl();
|
|
366
370
|
}
|
|
367
|
-
this.
|
|
371
|
+
this._el = el;
|
|
368
372
|
this._updatePaused(el.paused);
|
|
369
373
|
this._updateMuted(el.muted);
|
|
370
374
|
this._updateVolume(el.volume);
|
|
@@ -375,28 +379,55 @@ export class VideoPlayer {
|
|
|
375
379
|
// Setup HLS.js loader
|
|
376
380
|
if (isHlsJsSupported()) {
|
|
377
381
|
// @ts-ignore
|
|
378
|
-
this.hlsLoader = new HLSLoader(this.emitter, this.
|
|
382
|
+
this.hlsLoader = new HLSLoader(this.emitter, this._el, this._cfg.hlsConfig ?? {
|
|
379
383
|
progressive: true
|
|
380
384
|
});
|
|
381
385
|
}
|
|
386
|
+
this.emitter.emit(PlayerEvents.MediaElementAttached, el);
|
|
382
387
|
}
|
|
383
388
|
attachContainerEl(el) {
|
|
384
|
-
if (this.
|
|
389
|
+
if (this._containerEl === el) {
|
|
385
390
|
return;
|
|
386
391
|
}
|
|
387
|
-
this.
|
|
392
|
+
if (this._containerEl) {
|
|
393
|
+
this.detachContainerEl();
|
|
394
|
+
}
|
|
395
|
+
this._containerEl = el;
|
|
396
|
+
this.emitter.emit(PlayerEvents.ContainerElementAttached, el);
|
|
388
397
|
}
|
|
389
398
|
detachEl() {
|
|
390
|
-
if (!this.
|
|
399
|
+
if (!this._el) {
|
|
391
400
|
return;
|
|
392
401
|
}
|
|
393
402
|
this._unregisterVideoElementEvents();
|
|
394
|
-
|
|
395
|
-
this.
|
|
396
|
-
this.
|
|
403
|
+
const el = this._el;
|
|
404
|
+
this._el = undefined;
|
|
405
|
+
this.emitter.emit(PlayerEvents.MediaElementDetached, el);
|
|
397
406
|
}
|
|
398
407
|
detachContainerEl() {
|
|
399
|
-
this.
|
|
408
|
+
if (!this._containerEl) {
|
|
409
|
+
return;
|
|
410
|
+
}
|
|
411
|
+
const el = this._containerEl;
|
|
412
|
+
this._containerEl = undefined;
|
|
413
|
+
this.emitter.emit(PlayerEvents.ContainerElementDetached, el);
|
|
414
|
+
}
|
|
415
|
+
destroy() {
|
|
416
|
+
this.detachEl();
|
|
417
|
+
this.detachContainerEl();
|
|
418
|
+
this.emitter.off(LoaderEvents.Loading, this._onLoaderLoading.bind(this));
|
|
419
|
+
this.emitter.off(LoaderEvents.QualityLevelsUpdated, this._onLoaderQualityLevelsUpdated.bind(this));
|
|
420
|
+
this.emitter.off(LoaderEvents.QualityLevelSwitching, this._onLoaderQualityLevelSwitching.bind(this));
|
|
421
|
+
this.emitter.off(LoaderEvents.QualityLevelSwitched, this._onLoaderQualityLevelSwitched.bind(this));
|
|
422
|
+
this.emitter.off(LoaderEvents.AudioTracksUpdated, this._onLoaderAudioTracksUpdated.bind(this));
|
|
423
|
+
this.emitter.off(LoaderEvents.AudioTrackSwitching, this._onLoaderAudioTrackSwitching.bind(this));
|
|
424
|
+
this.emitter.off(LoaderEvents.AudioTrackSwitched, this._onLoaderAudioTrackSwitched.bind(this));
|
|
425
|
+
if (this.currentLoader) {
|
|
426
|
+
this.currentLoader.stop();
|
|
427
|
+
this.currentLoader = null;
|
|
428
|
+
this.hlsLoader = null;
|
|
429
|
+
}
|
|
430
|
+
screenfull.off('change', this._onFullScreenChange.bind(this));
|
|
400
431
|
}
|
|
401
432
|
async load(params) {
|
|
402
433
|
if (this.loadAbortController) {
|
|
@@ -440,72 +471,75 @@ export class VideoPlayer {
|
|
|
440
471
|
});
|
|
441
472
|
}
|
|
442
473
|
async togglePlay() {
|
|
443
|
-
if (!this.
|
|
474
|
+
if (!this._el) {
|
|
444
475
|
throw Error('Player is not attached to media element');
|
|
445
476
|
}
|
|
446
|
-
if (this.
|
|
477
|
+
if (this._el.paused) {
|
|
447
478
|
return this.play();
|
|
448
479
|
}
|
|
449
|
-
this.
|
|
480
|
+
this._el.pause();
|
|
450
481
|
return Promise.resolve();
|
|
451
482
|
}
|
|
452
483
|
async play() {
|
|
453
|
-
if (!this.
|
|
484
|
+
if (!this._el) {
|
|
454
485
|
throw Error('Player is not attached to media element');
|
|
455
486
|
}
|
|
456
|
-
return this.
|
|
487
|
+
return this._el.play();
|
|
457
488
|
}
|
|
458
489
|
pause() {
|
|
459
|
-
if (!this.
|
|
490
|
+
if (!this._el) {
|
|
460
491
|
throw Error('Player is not attached to media element');
|
|
461
492
|
}
|
|
462
|
-
this.
|
|
493
|
+
this._el.pause();
|
|
463
494
|
}
|
|
464
495
|
seekTo(pos) {
|
|
465
|
-
if (!this.
|
|
496
|
+
if (!this._el) {
|
|
466
497
|
throw Error('Player is not attached to media element');
|
|
467
498
|
}
|
|
468
|
-
this.
|
|
499
|
+
this._el.currentTime = pos;
|
|
469
500
|
}
|
|
470
501
|
setVolume(vol) {
|
|
471
|
-
if (!this.
|
|
502
|
+
if (!this._el) {
|
|
472
503
|
throw Error('Player is not attached to media element');
|
|
473
504
|
}
|
|
474
|
-
|
|
505
|
+
if (vol < 0 || vol > 1) {
|
|
506
|
+
return;
|
|
507
|
+
}
|
|
508
|
+
this._el.volume = vol;
|
|
475
509
|
}
|
|
476
510
|
setMuted(muted) {
|
|
477
|
-
if (!this.
|
|
511
|
+
if (!this._el) {
|
|
478
512
|
throw Error('Player is not attached to media element');
|
|
479
513
|
}
|
|
480
|
-
this.
|
|
514
|
+
this._el.muted = muted;
|
|
481
515
|
}
|
|
482
516
|
setPlaybackRate(rate) {
|
|
483
|
-
if (!this.
|
|
517
|
+
if (!this._el) {
|
|
484
518
|
throw Error('Player is not attached to media element');
|
|
485
519
|
}
|
|
486
|
-
this.
|
|
520
|
+
this._el.playbackRate = rate;
|
|
487
521
|
}
|
|
488
522
|
toggleMute() {
|
|
489
|
-
if (!this.
|
|
523
|
+
if (!this._el) {
|
|
490
524
|
throw Error('Player is not attached to media element');
|
|
491
525
|
}
|
|
492
|
-
this.
|
|
526
|
+
this._el.muted = !this._el.muted;
|
|
493
527
|
}
|
|
494
528
|
async toggleFullScreen() {
|
|
495
529
|
// On iOS only native full screen supported
|
|
496
530
|
if (IS_IOS && !IS_IPAD_NEW) {
|
|
497
|
-
if (!this.
|
|
531
|
+
if (!this._el) {
|
|
498
532
|
throw Error('Player is not attached to media element');
|
|
499
533
|
}
|
|
500
|
-
return await screenfull.toggle(this.
|
|
534
|
+
return await screenfull.toggle(this._el);
|
|
501
535
|
}
|
|
502
|
-
if (this.
|
|
503
|
-
return await screenfull.toggle(this.
|
|
536
|
+
if (this._containerEl) {
|
|
537
|
+
return await screenfull.toggle(this._containerEl);
|
|
504
538
|
}
|
|
505
|
-
if (!this.
|
|
539
|
+
if (!this._el) {
|
|
506
540
|
throw Error('Player is not attached to media element');
|
|
507
541
|
}
|
|
508
|
-
return await screenfull.toggle(this.
|
|
542
|
+
return await screenfull.toggle(this._el);
|
|
509
543
|
}
|
|
510
544
|
setQualityLevel(id, graceful) {
|
|
511
545
|
const found = this._qualityLevels.find((lvl) => lvl.id === id);
|
|
@@ -526,9 +560,27 @@ export class VideoPlayer {
|
|
|
526
560
|
subscribe(ev, cb) {
|
|
527
561
|
this.emitter.on(ev, cb);
|
|
528
562
|
}
|
|
563
|
+
subscribeOnce(ev, cb) {
|
|
564
|
+
this.emitter.once(ev, cb);
|
|
565
|
+
}
|
|
529
566
|
unsubscribe(ev, cb) {
|
|
530
567
|
this.emitter.off(ev, cb);
|
|
531
568
|
}
|
|
569
|
+
get el() {
|
|
570
|
+
if (!this._el) {
|
|
571
|
+
throw Error('Player is not attached to media element');
|
|
572
|
+
}
|
|
573
|
+
return this._el;
|
|
574
|
+
}
|
|
575
|
+
get containerEl() {
|
|
576
|
+
if (!this._containerEl) {
|
|
577
|
+
throw Error('Player is not attached to container element');
|
|
578
|
+
}
|
|
579
|
+
return this._containerEl;
|
|
580
|
+
}
|
|
581
|
+
get loader() {
|
|
582
|
+
return this.currentLoader;
|
|
583
|
+
}
|
|
532
584
|
get isFullScreen() {
|
|
533
585
|
return this._isFullScreen;
|
|
534
586
|
}
|
|
@@ -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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"}
|