@codercms/web-player 0.0.12 → 0.0.14

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.
@@ -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"}
@@ -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: Partial<HlsConfig>;
9
- constructor(emitter: EventEmitter<LoaderEventsMap>, el: HTMLVideoElement, hlsConfig?: Partial<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;
@@ -142,6 +142,13 @@ export class HLSLoader {
142
142
  this.hls.nextLevel = id;
143
143
  return;
144
144
  }
145
+ // Bypass HLS.js behavior that doesn't trigger event if level is selected by Auto switched to Manual
146
+ if (this.hls.currentLevel === id) {
147
+ this.hls.currentLevel = id;
148
+ this.emitter.emit(LoaderEvents.QualityLevelSwitching, id, this.hls.autoLevelEnabled);
149
+ this.emitter.emit(LoaderEvents.QualityLevelSwitched, id, this.hls.autoLevelEnabled);
150
+ return;
151
+ }
145
152
  this.hls.currentLevel = id;
146
153
  }
147
154
  getAutoQualityLevelId() {
@@ -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;AAE9B,MAAM,OAAO,SAAS;IAKZ;IACA;IALC,GAAG,GAAe,IAAI,CAAC;IACvB,SAAS,CAAqB;IAExC,YACS,OAAsC,EACtC,EAAoB,EAC5B,SAA8B;QAFtB,YAAO,GAAP,OAAO,CAA+B;QACtC,OAAE,GAAF,EAAE,CAAkB;QAG5B,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE;YACxB,MAAM,KAAK,CAAC,yBAAyB,CAAC,CAAC;SACvC;QAED,IAAI,SAAS,EAAE;YACd,IAAI,CAAC,SAAS,GAAG,EAAE,GAAG,SAAS,EAAE,CAAC;SAClC;aAAM;YACN,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;SACpB;IACF,CAAC;IAED,IAAI,CAAC,MAAkB;QACtB,IAAI,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE;YAC/B,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,YAAY,CAAC,mBAAmB,EAAE,YAAY,CAAC,CAAC,CAAC;SAC3E;QAED,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAEhD,6BAA6B;QAC7B,IAAI,IAAI,CAAC,GAAG,EAAE;YACb,IAAI,CAAC,IAAI,EAAE,CAAC;SACZ;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC;QAE3B,IAAI,CAAC,MAAM,CAAC,aAAa,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE;YACpC,GAAG,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;SACzC;QAED,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QACzB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QAEf,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEzB,OAAO,IAAI,OAAO,CAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;YAClD,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,CAAC;YAErC,sBAAsB;YACtB,MAAM,CAAC,WAAW,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;gBACjD,IAAI,CAAC,IAAI,EAAE,CAAC;gBAEZ,MAAM,CAAC,IAAI,YAAY,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAC,CAAC;YAC3D,CAAC,CAAC,CAAC;YAEH,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YAEpB,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;gBACpD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBAC/C,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACnC,OAAO,EAAE,CAAC;YACX,CAAC,CAAC,CAAC;YAEH,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;gBAClD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,qBAAqB,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,gBAAgB,CAAC,CAAC;YACzF,CAAC,CAAC,CAAC;YAEH,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;gBACjD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,oBAAoB,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,gBAAgB,CAAC,CAAC;YACxF,CAAC,CAAC,CAAC;YAEH,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;gBACjD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACpC,CAAC,CAAC,CAAC;YAEH,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;gBACxD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;YAC9D,CAAC,CAAC,CAAC;YAEH,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,oBAAoB,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;gBACvD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;YAC9D,CAAC,CAAC,CAAC;YAEH,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,oBAAoB,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;gBACvD,MAAM,MAAM,GAAiB,EAAE,CAAC;gBAEhC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,WAAW,EAAE;oBACrC,MAAM,CAAC,IAAI,CAAC;wBACX,EAAE,EAAE,KAAK,CAAC,EAAE;wBACZ,IAAI,EAAE,KAAK,CAAC,IAAI;wBAChB,OAAO,EAAE,KAAK,CAAC,OAAO;wBACtB,UAAU,EAAE,KAAK;qBACjB,CAAC,CAAC;iBACH;gBAED,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC;YAC5D,CAAC,CAAC,CAAC;YAEH,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;gBACxC,IAAI,IAAI,CAAC,KAAK,EAAE;oBACf,QAAQ,IAAI,CAAC,IAAI,EAAE;wBAClB,KAAK,GAAG,CAAC,UAAU,CAAC,WAAW;4BAC9B,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;4BAC7D,GAAG,CAAC,iBAAiB,EAAE,CAAC;4BACxB,MAAM;wBAEP,KAAK,GAAG,CAAC,UAAU,CAAC,aAAa;4BAChC,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,IAAI,CAAC,CAAC;4BAEvD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE;gCACrC,OAAO,EAAE,wBAAwB,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;gCACrD,IAAI;6BACJ,CAAC,CAAC;4BACH,qDAAqD;4BACrD,kEAAkE;4BAClE,yEAAyE;4BACzE,uEAAuE;4BACvE,MAAM;wBACP;4BACC,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,IAAI,CAAC,CAAC;4BAEvD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE;gCACrC,OAAO,EAAE,wBAAwB,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;gCACrD,IAAI;6BACJ,CAAC,CAAC;4BAEH,iBAAiB;4BACjB,GAAG,CAAC,OAAO,EAAE,CAAC;4BACd,MAAM;qBACP;iBACD;YACF,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACJ,CAAC;IAEO,gBAAgB,CAAC,MAAe;QACvC,MAAM,SAAS,GAAmB,EAAE,CAAC;QAErC,IAAI,GAAG,GAAG,CAAC,CAAC;QAEZ,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;YAC3B,MAAM,MAAM,GAAiB;gBAC5B,EAAE,EAAE,GAAG;gBACP,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,UAAU,EAAE,KAAK;aACjB,CAAC;YAEF,GAAG,EAAE,CAAC;YAEN,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SACvB;QAED,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,oBAAoB,EAAE,SAAS,CAAC,CAAC;IACjE,CAAC;IAED,gBAAgB,CAAC,EAAU,EAAE,QAAiB;QAC7C,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;YACd,OAAO;SACP;QAED,iCAAiC;QACjC,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,EAAE,CAAC;QAEzB,IAAI,CAAC,QAAQ,EAAE;YACd,IAAI,CAAC,EAAE,CAAC,WAAW,IAAI,CAAC,CAAC;YACzB,IAAI,CAAC,EAAE,CAAC,WAAW,IAAI,CAAC,CAAC;SACzB;IACF,CAAC;IAED,kBAAkB,CAAC,EAAU,EAAE,QAAiB;QAC/C,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;YACd,OAAO;SACP;QAED,IAAI,QAAQ,EAAE;YACb,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,EAAE,CAAC;YACxB,OAAO;SACP;QAED,IAAI,CAAC,GAAG,CAAC,YAAY,GAAG,EAAE,CAAC;IAC5B,CAAC;IAED,qBAAqB;QACpB,OAAO,kBAAkB,CAAC;IAC3B,CAAC;IAED,IAAI;QACH,IAAI,IAAI,CAAC,GAAG,EAAE;YACb,IAAI;gBACH,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;aACpB;YAAC,OAAO,CAAC,EAAE,GAAE;YAEd,IAAI;gBACH,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;aACnB;YAAC,OAAO,CAAC,EAAE,GAAE;YAEd,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;SAChB;IACF,CAAC;IAED,WAAW;QACV,OAAO,gBAAgB,EAAE,CAAC;IAC3B,CAAC;CACD;AAED,MAAM,UAAU,gBAAgB;IAC/B,OAAO,GAAG,CAAC,WAAW,EAAE,CAAC;AAC1B,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
- private emitter;
18
+ protected emitter: EventEmitter<PlaylistPlayerEventsMap<ItemImpl>, any>;
18
19
  readonly playlist: Playlist<ItemImpl>;
19
- readonly player: VideoPlayer;
20
20
  protected readonly opts: PlaylistPlayerOpts;
21
- constructor(el?: HTMLVideoElement, opts?: PlaylistPlayerOpts);
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
- constructor(el, opts) {
17
- // @ts-ignore
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;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,EAAqB,EAAE,IAAyB;QAC3D,aAAa;QACb,IAAI,CAAC,MAAM,GAAG,IAAI,WAAW,CAAC,EAAE,EAAE,IAAI,CAAC,OAA6C,CAAC,CAAC;QACtF,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAEvB,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,cAAc,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;YACxD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;YAElC,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAgB,EAAE,IAAI,CAAC,CAAC;YAErD,+DAA+D;YAC/D,IAAI,CAAC,MAAM,EAAE;gBACZ,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;gBACzB,OAAO;aACP;YAED,mCAAmC;YACnC,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;gBAC7C,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;aACzB;QACF,CAAC,CAAC,CAAC;QAEH,2BAA2B;QAC3B,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,oBAAoB,EAAE,IAAI,CAAC,CAAC;IACrE,CAAC;IAEO,KAAK,CAAC,oBAAoB;QACjC,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE;YAC/B,OAAO;SACP;QAED,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;IACnB,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAAC,IAAc,EAAE,IAAc;QAC7D,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC;QAElE,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAE5C,IAAI;YACH,IAAI,UAAU,EAAE;gBACf,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aACnC;iBAAM;gBACN,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;oBACtB,GAAG,EAAE,EAAE;oBACP,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;iBAChC,CAAC,CAAC;aACH;SACD;QAAC,OAAO,CAAC,EAAE;YACX,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YAEvD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,yBAAyB,EAAE,IAAI,EAAE,CAAU,CAAC,CAAC;YAEpF,OAAO;SACP;QAED,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC;IAClE,CAAC;IAEM,KAAK,CAAC,UAAU,CAAC,IAAe;QACtC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE;YAChC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACvB;QAED,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;IAChC,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,IAAe;QAChC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE;YAChC,IAAI,IAAI,EAAE;gBACT,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;aACrB;iBAAM;gBACN,IAAI,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;aAC1B;YAED,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACzC,IAAI,CAAC,IAAI,EAAE;gBACV,MAAM,KAAK,CAAC,gBAAgB,CAAC,CAAC;aAC9B;YAED,yCAAyC;YACzC,OAAO;SACP;QAED,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IAC1B,CAAC;IAEM,KAAK;QACX,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;IAEM,SAAS,CACf,EAAK,EACL,EAAwC;QAExC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,EAAgB,CAAC,CAAC;IACvC,CAAC;IAEM,WAAW,CACjB,EAAK,EACL,EAAwC;QAExC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAgB,CAAC,CAAC;IACxC,CAAC;CACD"}
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 el?: HTMLMediaElement;
83
- protected containerEl?: HTMLMediaElement;
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, emitter?: EventEmitter<VideoPlayerEventsMap, any>);
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 {};
@@ -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
- el;
46
- containerEl;
47
- emitter;
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, emitter = new EventEmitter()) {
80
- this.emitter = emitter;
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
- this._updateIsLoading(true);
97
- this._updateAudioTracks([]);
98
- this._updateQualityLevels([]);
99
- this._updateDuration(0);
100
- this._updateCurrentTime(0);
101
- this._updateBufferedParts([]);
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
- const _onPlay = () => {
104
+ this.elEventsRegistry?.unsubscribeAll();
105
+ this.elEventsRegistry = new DOMEventRegistry(el);
106
+ this.elEventsRegistry.subscribe('play', () => {
163
107
  this._updatePaused(el.paused);
164
- };
165
- const _onPause = () => {
108
+ });
109
+ this.elEventsRegistry.subscribe('pause', () => {
166
110
  this._updatePaused(el.paused);
167
- };
168
- const _onPlaying = () => {
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
- const _onWaiting = () => {
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
- const _onEnded = () => {
123
+ });
124
+ this.elEventsRegistry.subscribe('ended', () => {
181
125
  this.emitter.emit(PlayerEvents.Ended);
182
- };
183
- const _onReadyToPlay = () => {
126
+ });
127
+ this.elEventsRegistry.subscribe('progress', () => {
128
+ this._onProgress(el);
129
+ });
130
+ this.elEventsRegistry.subscribe('canplaythrough', () => {
184
131
  this._onLoaded();
185
- };
186
- const _onDurationChange = () => {
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
- const _onTimeUpdate = () => {
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
- const _onVolumeChange = () => {
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
- const _onRateChange = () => {
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
- // TODO
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.el === el) {
365
+ if (this._el === el) {
362
366
  return;
363
367
  }
364
- if (this.el) {
368
+ if (this._el) {
365
369
  this.detachEl();
366
370
  }
367
- this.el = el;
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.el, {
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.containerEl === el) {
389
+ if (this._containerEl === el) {
385
390
  return;
386
391
  }
387
- this.containerEl = el;
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.el) {
399
+ if (!this._el) {
391
400
  return;
392
401
  }
393
402
  this._unregisterVideoElementEvents();
394
- this.el = undefined;
395
- this.hlsLoader?.stop();
396
- this.hlsLoader = null;
403
+ const el = this._el;
404
+ this._el = undefined;
405
+ this.emitter.emit(PlayerEvents.MediaElementDetached, el);
397
406
  }
398
407
  detachContainerEl() {
399
- this.containerEl = undefined;
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,72 @@ export class VideoPlayer {
440
471
  });
441
472
  }
442
473
  async togglePlay() {
443
- if (!this.el) {
474
+ if (!this._el) {
444
475
  throw Error('Player is not attached to media element');
445
476
  }
446
- if (this.el.paused) {
477
+ if (this._el.paused) {
447
478
  return this.play();
448
479
  }
449
- this.el.pause();
480
+ this._el.pause();
450
481
  return Promise.resolve();
451
482
  }
452
483
  async play() {
453
- if (!this.el) {
484
+ if (!this._el) {
454
485
  throw Error('Player is not attached to media element');
455
486
  }
456
- return this.el.play();
487
+ return this._el.play();
457
488
  }
458
489
  pause() {
459
- if (!this.el) {
490
+ if (!this._el) {
460
491
  throw Error('Player is not attached to media element');
461
492
  }
462
- this.el.pause();
493
+ this._el.pause();
463
494
  }
464
495
  seekTo(pos) {
465
- if (!this.el) {
496
+ if (!this._el) {
466
497
  throw Error('Player is not attached to media element');
467
498
  }
468
- this.el.currentTime = pos;
499
+ this._el.currentTime = pos;
469
500
  }
470
501
  setVolume(vol) {
471
- if (!this.el) {
502
+ if (!this._el) {
472
503
  throw Error('Player is not attached to media element');
473
504
  }
474
- this.el.volume = vol;
505
+ this._el.volume = vol;
475
506
  }
476
507
  setMuted(muted) {
477
- if (!this.el) {
508
+ if (!this._el) {
478
509
  throw Error('Player is not attached to media element');
479
510
  }
480
- this.el.muted = muted;
511
+ this._el.muted = muted;
481
512
  }
482
513
  setPlaybackRate(rate) {
483
- if (!this.el) {
514
+ if (!this._el) {
484
515
  throw Error('Player is not attached to media element');
485
516
  }
486
- this.el.playbackRate = rate;
517
+ this._el.playbackRate = rate;
487
518
  }
488
519
  toggleMute() {
489
- if (!this.el) {
520
+ if (!this._el) {
490
521
  throw Error('Player is not attached to media element');
491
522
  }
492
- this.el.muted = !this.el.muted;
523
+ this._el.muted = !this._el.muted;
493
524
  }
494
525
  async toggleFullScreen() {
495
526
  // On iOS only native full screen supported
496
527
  if (IS_IOS && !IS_IPAD_NEW) {
497
- if (!this.el) {
528
+ if (!this._el) {
498
529
  throw Error('Player is not attached to media element');
499
530
  }
500
- return await screenfull.toggle(this.el);
531
+ return await screenfull.toggle(this._el);
501
532
  }
502
- if (this.containerEl) {
503
- return await screenfull.toggle(this.containerEl);
533
+ if (this._containerEl) {
534
+ return await screenfull.toggle(this._containerEl);
504
535
  }
505
- if (!this.el) {
536
+ if (!this._el) {
506
537
  throw Error('Player is not attached to media element');
507
538
  }
508
- return await screenfull.toggle(this.el);
539
+ return await screenfull.toggle(this._el);
509
540
  }
510
541
  setQualityLevel(id, graceful) {
511
542
  const found = this._qualityLevels.find((lvl) => lvl.id === id);
@@ -526,9 +557,27 @@ export class VideoPlayer {
526
557
  subscribe(ev, cb) {
527
558
  this.emitter.on(ev, cb);
528
559
  }
560
+ subscribeOnce(ev, cb) {
561
+ this.emitter.once(ev, cb);
562
+ }
529
563
  unsubscribe(ev, cb) {
530
564
  this.emitter.off(ev, cb);
531
565
  }
566
+ get el() {
567
+ if (!this._el) {
568
+ throw Error('Player is not attached to media element');
569
+ }
570
+ return this._el;
571
+ }
572
+ get containerEl() {
573
+ if (!this._containerEl) {
574
+ throw Error('Player is not attached to container element');
575
+ }
576
+ return this._containerEl;
577
+ }
578
+ get loader() {
579
+ return this.currentLoader;
580
+ }
532
581
  get isFullScreen() {
533
582
  return this._isFullScreen;
534
583
  }
@@ -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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@codercms/web-player",
3
- "version": "0.0.12",
3
+ "version": "0.0.14",
4
4
  "scripts": {
5
5
  "dev": "vite dev --port=5174",
6
6
  "build": "vite build && npm run package",