mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-16 03:23:29 +01:00
@@ -15,6 +15,22 @@ export default class AudioEncoder {
|
|||||||
this.opus = new opus.OpusEncoder(48000, 2);
|
this.opus = new opus.OpusEncoder(48000, 2);
|
||||||
}
|
}
|
||||||
this.choice = false;
|
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) {
|
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!");
|
self.client.emit("debug", "Tried to use node-opus, but opus not available - install it!");
|
||||||
return;
|
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 buffer = self.encoder.opusBuffer(rawbuffer);
|
||||||
var packet = new VoicePacket(buffer, sequence, timestamp, self.vWSData.ssrc);
|
var packet = new VoicePacket(buffer, sequence, timestamp, self.vWSData.ssrc);
|
||||||
return self.sendPacket(packet, callback);
|
return self.sendPacket(packet, callback);
|
||||||
|
|||||||
Reference in New Issue
Block a user