From d73d6a7340a23020be53df6bd7e373c5a3f37bf3 Mon Sep 17 00:00:00 2001 From: Amish Shah Date: Mon, 24 Oct 2016 22:26:34 +0100 Subject: [PATCH] make some stuffs --- src/client/voice/VoiceConnection.js | 14 +++++++----- .../voice/dispatcher/StreamDispatcher.js | 4 +++- src/client/voice/player/AudioPlayer.js | 22 +++++++++---------- 3 files changed, 21 insertions(+), 19 deletions(-) diff --git a/src/client/voice/VoiceConnection.js b/src/client/voice/VoiceConnection.js index 1cf80126d..a367718d3 100644 --- a/src/client/voice/VoiceConnection.js +++ b/src/client/voice/VoiceConnection.js @@ -93,16 +93,18 @@ class VoiceConnection extends EventEmitter { }); } - playFile(file) { - return this.playStream(fs.createReadStream(file)); + playFile(file, options) { + return this.playStream(fs.createReadStream(file), options); } - playStream(stream) { - return this.player.playUnknownStream(stream); + playStream(stream, { seek = 0, volume = 1, passes = 1 } = {}) { + const options = { seek, volume, passes }; + return this.player.playUnknownStream(stream, options); } - playConvertedStream(stream) { - return this.player.playPCMStream(stream); + playConvertedStream(stream, { seek = 0, volume = 1, passes = 1 } = {}) { + const options = { seek, volume, passes }; + return this.player.playPCMStream(stream, options); } } diff --git a/src/client/voice/dispatcher/StreamDispatcher.js b/src/client/voice/dispatcher/StreamDispatcher.js index 47832e1ae..63d335e4a 100644 --- a/src/client/voice/dispatcher/StreamDispatcher.js +++ b/src/client/voice/dispatcher/StreamDispatcher.js @@ -38,13 +38,15 @@ class StreamDispatcher extends EventEmitter { * aren't recommended, as it means you are using 5x more bandwidth. You _can_ edit this at runtime. * @type {number} */ - this.passes = streamOptions.passes || 3; + this.passes = streamOptions.passes || 1; /** * Whether playing is paused * @type {boolean} */ this.paused = false; + + this.setVolume(streamOptions.volume || 1); } /** diff --git a/src/client/voice/player/AudioPlayer.js b/src/client/voice/player/AudioPlayer.js index c518f307f..686bb4ca7 100644 --- a/src/client/voice/player/AudioPlayer.js +++ b/src/client/voice/player/AudioPlayer.js @@ -22,15 +22,15 @@ class AudioPlayer extends EventEmitter { }; } - playUnknownStream(stream) { + playUnknownStream(stream, { seek = 0, volume = 1, passes = 1 } = {}) { + const options = { seek, volume, passes }; stream.on('end', () => { - - console.log(Date.now(), 'real input stream ended'); + console.log(Date.now(), 'real input stream ended'); }); stream.on('error', e => this.emit('error', e)); - const conversionProcess = this.audioToPCM.createConvertStream(0); + const conversionProcess = this.audioToPCM.createConvertStream(options.seek); conversionProcess.setInput(stream); - return this.playPCMStream(conversionProcess.process.stdout, conversionProcess); + return this.playPCMStream(conversionProcess.process.stdout, conversionProcess, options); } cleanup(checkStream, reason) { @@ -43,20 +43,18 @@ class AudioPlayer extends EventEmitter { } } - playPCMStream(stream, converter) { + playPCMStream(stream, converter, { seek = 0, volume = 1, passes = 1 } = {}) { + const options = { seek, volume, passes }; stream.on('end', () => { - - console.log(Date.now(), 'pcm input stream ended'); - }) + console.log(Date.now(), 'pcm input stream ended'); + }); this.cleanup(null, 'outstanding play stream'); this.currentConverter = converter; if (this.currentDispatcher) { this.streamingData = this.currentDispatcher.streamingData; } stream.on('error', e => this.emit('error', e)); - const dispatcher = new StreamDispatcher(this, stream, this.streamingData, { - volume: 1, - }); + const dispatcher = new StreamDispatcher(this, stream, this.streamingData, options); dispatcher.on('error', e => this.emit('error', e)); dispatcher.on('end', () => this.cleanup(dispatcher.stream, 'disp ended')); dispatcher.on('speaking', value => this.voiceConnection.setSpeaking(value));