diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/services/player.ts | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/src/services/player.ts b/src/services/player.ts index b3ed34d..020c501 100644 --- a/src/services/player.ts +++ b/src/services/player.ts @@ -527,14 +527,18 @@ export default class { capacitor.createReadStream().pipe(cacheStream); } + const returnedStream = capacitor.createReadStream(); + let hasReturnedStreamClosed = false; + const stream = ffmpeg(url) .inputOptions(options?.ffmpegInputOptions ?? ['-re']) .noVideo() .audioCodec('libopus') .outputFormat('webm') .on('error', error => { - console.error(error); - reject(error); + if (!hasReturnedStreamClosed) { + reject(error); + } }) .on('start', command => { debug(`Spawned ffmpeg with ${command as string}`); @@ -542,7 +546,12 @@ export default class { stream.pipe(capacitor); - resolve(capacitor.createReadStream()); + returnedStream.on('close', () => { + stream.kill('SIGKILL'); + hasReturnedStreamClosed = true; + }); + + resolve(returnedStream); }); } } |
