diff --git a/src/audio/player.ts b/src/audio/player.ts index b641875..c3dbf5c 100644 --- a/src/audio/player.ts +++ b/src/audio/player.ts @@ -79,7 +79,7 @@ export class AudioPlayer extends EventEmitter { }); this.ffmpeg.on("close", () => { - // Let frame loop drain remaining buffer + this.ffmpeg = null; // Signal frame loop that no more data is coming }); this.ffmpeg.on("error", (err) => { diff --git a/src/bot/instance.ts b/src/bot/instance.ts index 5529d30..1b902d4 100644 --- a/src/bot/instance.ts +++ b/src/bot/instance.ts @@ -80,12 +80,16 @@ export class BotInstance extends EventEmitter { this.player.on("trackEnd", () => { this.logger.debug("Track ended, advancing queue"); - this.playNext(); + this.playNext().catch((err) => { + this.logger.error({ err }, "playNext failed after trackEnd"); + }); }); this.player.on("error", (err: Error) => { this.logger.error({ err }, "Player error"); - this.playNext(); + this.playNext().catch((err2) => { + this.logger.error({ err: err2 }, "playNext failed after player error"); + }); }); }