fixing playlist track removal
This commit is contained in:
@@ -9,6 +9,8 @@ COPY tsconfig.json tsconfig.app.json tsconfig.node.json vite.config.ts /srv/
|
|||||||
COPY src /srv/src
|
COPY src /srv/src
|
||||||
COPY public /srv/public
|
COPY public /srv/public
|
||||||
COPY map /srv/map
|
COPY map /srv/map
|
||||||
|
COPY summon /srv/summon
|
||||||
|
COPY chromecast /srv/chromecast
|
||||||
COPY ./index.html /srv/
|
COPY ./index.html /srv/
|
||||||
|
|
||||||
RUN npm run build
|
RUN npm run build
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import { VirtualFile } from "../FileSystem/types";
|
import { VirtualFile } from "../FileSystem/types";
|
||||||
import { SoundGroupNode, SoundGroupNodeOptions } from "./SoundGroupNode";
|
import { SoundGroupNode, SoundGroupNodeOptions } from "./SoundGroupNode";
|
||||||
import { MediaElementSoundNode } from "./SoundNode";
|
import { MediaElementSoundNode, SoundNode } from "./SoundNode";
|
||||||
|
|
||||||
export interface PlaylistGroupNodeOptions extends SoundGroupNodeOptions {
|
export interface PlaylistGroupNodeOptions extends SoundGroupNodeOptions {
|
||||||
currentTrack: number;
|
currentTrack: number;
|
||||||
@@ -13,7 +13,7 @@ export class PlaylistGroupNode extends SoundGroupNode<PlaylistGroupNodeOptions>
|
|||||||
private intervalId?: number;
|
private intervalId?: number;
|
||||||
|
|
||||||
changeTrack(track: number) {
|
changeTrack(track: number) {
|
||||||
this.currentTrack.stop();
|
this.currentTrack?.stop();
|
||||||
(this.currentTrack as MediaElementSoundNode)?.seek(0);
|
(this.currentTrack as MediaElementSoundNode)?.seek(0);
|
||||||
this.soundNodes[this.options.currentTrack]?.stop();
|
this.soundNodes[this.options.currentTrack]?.stop();
|
||||||
this.options.currentTrack = track;
|
this.options.currentTrack = track;
|
||||||
@@ -46,6 +46,15 @@ export class PlaylistGroupNode extends SoundGroupNode<PlaylistGroupNodeOptions>
|
|||||||
}, 1000);
|
}, 1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
removeSoundNode(node: SoundNode) {
|
||||||
|
const index = this.soundNodes.indexOf(node);
|
||||||
|
if (index === this.options.currentTrack) {
|
||||||
|
this.options.currentTrack = 0;
|
||||||
|
this.options.currentTrackTime = 0;
|
||||||
|
}
|
||||||
|
super.removeSoundNode(node);
|
||||||
|
}
|
||||||
|
|
||||||
stop() {
|
stop() {
|
||||||
this.currentTrack?.stop();
|
this.currentTrack?.stop();
|
||||||
clearInterval(this.intervalId);
|
clearInterval(this.intervalId);
|
||||||
|
|||||||
@@ -66,6 +66,7 @@ export abstract class SoundGroupNode<T extends SoundGroupNodeOptions> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
removeSoundNode(node: SoundNode) {
|
removeSoundNode(node: SoundNode) {
|
||||||
|
node?.stop();
|
||||||
const index = this.soundNodes.indexOf(node);
|
const index = this.soundNodes.indexOf(node);
|
||||||
if (index > -1) {
|
if (index > -1) {
|
||||||
this.soundNodes.splice(index, 1);
|
this.soundNodes.splice(index, 1);
|
||||||
|
|||||||
Reference in New Issue
Block a user