mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-09 16:13:31 +01:00
@@ -15,6 +15,22 @@ export default class AudioEncoder {
|
||||
this.opus = new opus.OpusEncoder(48000, 2);
|
||||
}
|
||||
this.choice = false;
|
||||
this.sanityCheckPassed = undefined;
|
||||
}
|
||||
|
||||
sanityCheck() {
|
||||
var _opus = this.opus;
|
||||
var encodeZeroes = function() {
|
||||
try {
|
||||
var zeroes = new Buffer(1920);
|
||||
zeroes.fill(0);
|
||||
return _opus.encode(zeroes, 1920).readUIntBE(0, 3);
|
||||
} catch(err) {
|
||||
return false;
|
||||
}
|
||||
};
|
||||
if(this.sanityCheckPassed === undefined) this.sanityCheckPassed = (encodeZeroes() === 16056318);
|
||||
return this.sanityCheckPassed;
|
||||
}
|
||||
|
||||
opusBuffer(buffer) {
|
||||
|
||||
@@ -189,6 +189,14 @@ export default class VoiceConnection extends EventEmitter {
|
||||
self.client.emit("debug", "Tried to use node-opus, but opus not available - install it!");
|
||||
return;
|
||||
}
|
||||
|
||||
if (!self.encoder.sanityCheck()) {
|
||||
self.playing = false;
|
||||
self.emit("error", "Opus sanity check failed!");
|
||||
self.client.emit("debug", "Opus sanity check failed - opus is installed but not correctly! Please reinstall opus and make sure it's installed correctly.");
|
||||
return;
|
||||
}
|
||||
|
||||
var buffer = self.encoder.opusBuffer(rawbuffer);
|
||||
var packet = new VoicePacket(buffer, sequence, timestamp, self.vWSData.ssrc);
|
||||
return self.sendPacket(packet, callback);
|
||||
|
||||
Reference in New Issue
Block a user