diff --git a/src/client/voice/VoiceBroadcast.js b/src/client/voice/VoiceBroadcast.js index a21ace8c3..892e0330b 100644 --- a/src/client/voice/VoiceBroadcast.js +++ b/src/client/voice/VoiceBroadcast.js @@ -77,6 +77,20 @@ class VoiceBroadcast extends EventEmitter { return this; } + pause() { + for (const dispatcher of this.dispatchers) { + dispatcher.pause(); + } + clearInterval(this.tickInterval); + } + + resume() { + for (const dispatcher of this.dispatchers) { + dispatcher.resume(); + } + this._startPlaying(); + } + _startPlaying() { if (this.tickInterval) clearInterval(this.tickInterval); this.tickInterval = this.client.setInterval(this.tick.bind(this), 20); diff --git a/src/client/voice/dispatcher/StreamDispatcher.js b/src/client/voice/dispatcher/StreamDispatcher.js index ee2098044..7aed21ebc 100644 --- a/src/client/voice/dispatcher/StreamDispatcher.js +++ b/src/client/voice/dispatcher/StreamDispatcher.js @@ -183,6 +183,7 @@ class StreamDispatcher extends EventEmitter { } if (this.paused) { + this.setSpeaking(false); // data.timestamp = data.timestamp + 4294967295 ? data.timestamp + 960 : 0; data.pausedTime += data.length * 10; // if buffer is provided we are assuming a master process is controlling the dispatcher