diff --git a/src/modules/audioStreams.ts b/src/modules/audioStreams.ts index 1533b1f..64b18c6 100644 --- a/src/modules/audioStreams.ts +++ b/src/modules/audioStreams.ts @@ -11,6 +11,8 @@ import { PassThrough, Readable } from 'stream'; import prism from 'prism-media'; +const DURATION_MARGIN_PCT = 0.25; + export class StreamQueue { private queue: Readable[] = []; private isPlaying = false; @@ -133,13 +135,13 @@ export class MixedStream { }); transcoder.on('end', () => { - const durationMs = (totalBytes / 192000) * 1000; + const durationMs = (totalBytes / 192000) * 1000 * (1 + DURATION_MARGIN_PCT); setTimeout(() => { source.unpipe(transcoder); transcoder.unpipe(mixerInput); - this.mixer.removeAudioinput(mixerInput); transcoder.destroy(); + this.mixer.removeAudioinput(mixerInput); resolve(); }, durationMs); }); @@ -151,6 +153,7 @@ export class MixedStream { }); source.pipe(transcoder).pipe(mixerInput); + }); }