aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/services/player.ts15
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);
});
}
}