mirror of
https://github.com/danbulant/discord.js
synced 2026-06-07 16:52:16 +00:00
commit
45c936e1ad
2 changed files with 24 additions and 0 deletions
|
|
@ -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);
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue