@codercms/web-player 0.0.64 → 0.0.65
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.
|
@@ -16,6 +16,7 @@ export type PlaylistPlayerEventsMap<ItemImpl extends PlaylistItemInterface> = {
|
|
|
16
16
|
};
|
|
17
17
|
export interface PlaylistPlayerOpts {
|
|
18
18
|
preservePlayOnSet?: boolean;
|
|
19
|
+
autoPlayNextOnEnd?: boolean;
|
|
19
20
|
}
|
|
20
21
|
export declare class PlaylistPlayer<ItemImpl extends PlaylistItemInterface> {
|
|
21
22
|
protected emitter: EventEmitter<PlaylistPlayerEventsMap<ItemImpl>, any>;
|
|
@@ -26,11 +27,13 @@ export declare class PlaylistPlayer<ItemImpl extends PlaylistItemInterface> {
|
|
|
26
27
|
protected _onPlaylistSetCb: (item: ItemImpl) => Promise<void>;
|
|
27
28
|
protected _onPlaylistEmptiedCb: () => void;
|
|
28
29
|
protected _handleHTMLPlayEventCb: () => Promise<void>;
|
|
30
|
+
protected _handleHTMLEndedEventCb: () => Promise<void>;
|
|
29
31
|
constructor(opts?: PlaylistPlayerOpts);
|
|
30
32
|
destroy(): void;
|
|
31
33
|
private _loadItem;
|
|
32
34
|
loadCurrent(loadParams?: Partial<PlayerLoadParams>): Promise<void>;
|
|
33
35
|
private _handleHTMLPlayEvent;
|
|
36
|
+
private _handleHTMLEndedEvent;
|
|
34
37
|
private _onPlaylistSet;
|
|
35
38
|
private _onPlaylistEmptied;
|
|
36
39
|
attachPlaylist(playlist: Playlist<ItemImpl>): void;
|
|
@@ -17,9 +17,11 @@ export class PlaylistPlayer {
|
|
|
17
17
|
_onPlaylistSetCb = this._onPlaylistSet.bind(this);
|
|
18
18
|
_onPlaylistEmptiedCb = this._onPlaylistEmptied.bind(this);
|
|
19
19
|
_handleHTMLPlayEventCb = this._handleHTMLPlayEvent.bind(this);
|
|
20
|
+
_handleHTMLEndedEventCb = this._handleHTMLEndedEvent.bind(this);
|
|
20
21
|
constructor(opts) {
|
|
21
22
|
this.opts = {
|
|
22
23
|
preservePlayOnSet: true,
|
|
24
|
+
autoPlayNextOnEnd: true,
|
|
23
25
|
...opts
|
|
24
26
|
};
|
|
25
27
|
}
|
|
@@ -32,6 +34,7 @@ export class PlaylistPlayer {
|
|
|
32
34
|
}
|
|
33
35
|
if (this._player) {
|
|
34
36
|
this._player.unsubscribe(PlayerEvents.Play, this._handleHTMLPlayEventCb);
|
|
37
|
+
this._player.unsubscribe(PlayerEvents.Ended, this._handleHTMLEndedEvent);
|
|
35
38
|
this._player = null;
|
|
36
39
|
}
|
|
37
40
|
this.emitter.removeAllListeners();
|
|
@@ -86,6 +89,29 @@ export class PlaylistPlayer {
|
|
|
86
89
|
await this._loadItem(curr);
|
|
87
90
|
}
|
|
88
91
|
}
|
|
92
|
+
async _handleHTMLEndedEvent() {
|
|
93
|
+
if (!this.opts.autoPlayNextOnEnd) {
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
const playlist = this._playlist;
|
|
97
|
+
if (!playlist) {
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
100
|
+
// Unsubscribe from event before item will be loaded
|
|
101
|
+
playlist.unsubscribe(PlaylistEvents.Set, this._onPlaylistSetCb);
|
|
102
|
+
try {
|
|
103
|
+
const next = this._playlist?.setNext();
|
|
104
|
+
if (next) {
|
|
105
|
+
await this._loadItem(next, { playAfterLoad: true });
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
finally {
|
|
109
|
+
// Subscribe to event only if playlist object wasn't changed
|
|
110
|
+
if (this._playlist === playlist) {
|
|
111
|
+
playlist.subscribe(PlaylistEvents.Set, this._onPlaylistSetCb);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
89
115
|
async _onPlaylistSet(item) {
|
|
90
116
|
this._loadedItem = null;
|
|
91
117
|
if (!this._player) {
|
|
@@ -115,10 +141,12 @@ export class PlaylistPlayer {
|
|
|
115
141
|
attachPlayer(player) {
|
|
116
142
|
if (this._player) {
|
|
117
143
|
this._player.unsubscribe(PlayerEvents.Play, this._handleHTMLPlayEventCb);
|
|
144
|
+
this._player.unsubscribe(PlayerEvents.Play, this._handleHTMLEndedEventCb);
|
|
118
145
|
}
|
|
119
146
|
this._player = player;
|
|
120
147
|
// Handle native play event
|
|
121
148
|
player.subscribe(PlayerEvents.Play, this._handleHTMLPlayEventCb);
|
|
149
|
+
player.subscribe(PlayerEvents.Ended, this._handleHTMLEndedEventCb);
|
|
122
150
|
}
|
|
123
151
|
get player() {
|
|
124
152
|
if (!this._player) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlaylistPlayer.js","sourceRoot":"","sources":["PlaylistPlayer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,OAAO,EAAE,QAAQ,EAAE,cAAc,EAA8B,MAAM,uBAAuB,CAAC;AAE7F,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAG9D,MAAM,CAAN,IAAY,oBAKX;AALD,WAAY,oBAAoB;IAC/B,sFAA8D,CAAA;IAC9D,0EAAkD,CAAA;IAClD,wEAAgD,CAAA;IAChD,sFAA8D,CAAA;AAC/D,CAAC,EALW,oBAAoB,KAApB,oBAAoB,QAK/B;
|
|
1
|
+
{"version":3,"file":"PlaylistPlayer.js","sourceRoot":"","sources":["PlaylistPlayer.ts"],"names":[],"mappings":"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"}
|