Fix ECONNRESET (again)

This commit is contained in:
Amish Shah
2017-10-31 18:12:49 +00:00
parent 2e1a28a6ee
commit fa7f391b3a
2 changed files with 9 additions and 6 deletions

View File

@@ -59,9 +59,7 @@ class StreamDispatcher extends Writable {
this._pausedTime = 0;
this.count = 0;
this.on('error', err => this.destroy(err));
this.on('finish', () => {
this.end.bind(this);
// Still emitting end for backwards compatibility, probably remove it in the future!
this.emit('end');
});
@@ -73,9 +71,11 @@ class StreamDispatcher extends Writable {
const streamError = err => {
this.emit('warn', err);
this.destroy(err);
this.destroy();
};
this.on('error', streamError);
if (this.streams.input) this.streams.input.on('error', streamError);
if (this.streams.ffmpeg) this.streams.ffmpeg.on('error', streamError);
if (this.streams.opus) this.streams.opus.on('error', streamError);
if (this.streams.volume) this.streams.volume.on('error', streamError);

View File

@@ -46,9 +46,12 @@ class BasePlayer extends EventEmitter {
const isStream = input instanceof ReadableStream;
const args = isStream ? FFMPEG_ARGUMENTS : ['-i', input, ...FFMPEG_ARGUMENTS];
const ffmpeg = new prism.FFmpeg({ args });
if (isStream) input.pipe(ffmpeg);
return this.playPCMStream(ffmpeg, options, { ffmpeg });
const streams = { ffmpeg };
if (isStream) {
streams.input = input;
input.pipe(ffmpeg);
}
return this.playPCMStream(ffmpeg, options, streams);
}
playPCMStream(stream, options, streams = {}) {