mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-09 16:13:31 +01:00
Made opus truly optional
This commit is contained in:
@@ -3,14 +3,22 @@
|
||||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||||
|
||||
var cpoc = require("child_process");
|
||||
var opus = require("node-opus");
|
||||
|
||||
var opus;
|
||||
try {
|
||||
opus = require("node-opus");
|
||||
} catch (e) {
|
||||
// no opus!
|
||||
}
|
||||
var VoicePacket = require("./VoicePacket.js");
|
||||
|
||||
var AudioEncoder = (function () {
|
||||
function AudioEncoder() {
|
||||
_classCallCheck(this, AudioEncoder);
|
||||
|
||||
this.opus = new opus.OpusEncoder(48000, 1);
|
||||
if (opus) {
|
||||
this.opus = new opus.OpusEncoder(48000, 1);
|
||||
}
|
||||
}
|
||||
|
||||
AudioEncoder.prototype.opusBuffer = function opusBuffer(buffer) {
|
||||
|
||||
@@ -14,9 +14,7 @@ function _inherits(subClass, superClass) { if (typeof superClass !== "function"
|
||||
var WebSocket = require("ws");
|
||||
var dns = require("dns");
|
||||
var udp = require("dgram");
|
||||
var Opus = require('node-opus');
|
||||
var fs = require("fs");
|
||||
var ffmpeg = require('fluent-ffmpeg');
|
||||
var AudioEncoder = require("./AudioEncoder.js");
|
||||
var VoicePacket = require("./VoicePacket.js");
|
||||
var StreamIntent = require("./StreamIntent.js");
|
||||
@@ -29,9 +27,6 @@ var VoiceConnection = (function (_EventEmitter) {
|
||||
_classCallCheck(this, VoiceConnection);
|
||||
|
||||
_EventEmitter.call(this);
|
||||
if (!Opus) {
|
||||
console.log("HEY! WATCH OUT\n\n discord.js needs node-opus, you don't have it installed.");
|
||||
}
|
||||
this.id = channel.id;
|
||||
this.voiceChannel = channel;
|
||||
this.client = client;
|
||||
@@ -42,7 +37,6 @@ var VoiceConnection = (function (_EventEmitter) {
|
||||
this.vWS = null; // vWS means voice websocket
|
||||
this.ready = false;
|
||||
this.vWSData = {};
|
||||
this.opus = new Opus.OpusEncoder(48000, 1);
|
||||
this.encoder = new AudioEncoder();
|
||||
this.udp = null;
|
||||
this.playingIntent = null;
|
||||
@@ -165,7 +159,12 @@ var VoiceConnection = (function (_EventEmitter) {
|
||||
var self = this;
|
||||
self.playing = true;
|
||||
try {
|
||||
|
||||
if (!self.encoder.opus) {
|
||||
self.playing = false;
|
||||
self.emit("error", "No Opus!");
|
||||
self.emit("debug", "Tried to use node-opus, but opus not available - install it!");
|
||||
return;
|
||||
}
|
||||
var buffer = self.encoder.opusBuffer(rawbuffer);
|
||||
var packet = new VoicePacket(buffer, sequence, timestamp, self.vWSData.ssrc);
|
||||
return self.sendPacket(packet, callback);
|
||||
|
||||
@@ -1,12 +1,20 @@
|
||||
"use strict";
|
||||
|
||||
var cpoc = require("child_process");
|
||||
var opus = require("node-opus");
|
||||
|
||||
var opus;
|
||||
try{
|
||||
opus = require("node-opus");
|
||||
}catch(e){
|
||||
// no opus!
|
||||
}
|
||||
var VoicePacket = require("./VoicePacket.js");
|
||||
|
||||
class AudioEncoder{
|
||||
constructor(){
|
||||
this.opus = new opus.OpusEncoder(48000, 1);
|
||||
if(opus){
|
||||
this.opus = new opus.OpusEncoder(48000, 1);
|
||||
}
|
||||
}
|
||||
|
||||
opusBuffer(buffer){
|
||||
|
||||
@@ -10,9 +10,7 @@
|
||||
var WebSocket = require("ws");
|
||||
var dns = require("dns");
|
||||
var udp = require("dgram");
|
||||
var Opus = require('node-opus');
|
||||
var fs = require("fs");
|
||||
var ffmpeg = require('fluent-ffmpeg');
|
||||
var AudioEncoder = require("./AudioEncoder.js");
|
||||
var VoicePacket = require("./VoicePacket.js");
|
||||
var StreamIntent = require("./StreamIntent.js");
|
||||
@@ -21,9 +19,6 @@ var EventEmitter = require("events");
|
||||
class VoiceConnection extends EventEmitter {
|
||||
constructor(channel, client, session, token, server, endpoint) {
|
||||
super();
|
||||
if (!Opus) {
|
||||
console.log("HEY! WATCH OUT\n\n discord.js needs node-opus, you don't have it installed.");
|
||||
}
|
||||
this.id = channel.id;
|
||||
this.voiceChannel = channel;
|
||||
this.client = client;
|
||||
@@ -34,7 +29,6 @@ class VoiceConnection extends EventEmitter {
|
||||
this.vWS = null; // vWS means voice websocket
|
||||
this.ready = false;
|
||||
this.vWSData = {};
|
||||
this.opus = new Opus.OpusEncoder(48000, 1);
|
||||
this.encoder = new AudioEncoder();
|
||||
this.udp = null;
|
||||
this.playingIntent = null;
|
||||
@@ -162,7 +156,12 @@ class VoiceConnection extends EventEmitter {
|
||||
var self = this;
|
||||
self.playing = true;
|
||||
try {
|
||||
|
||||
if(!self.encoder.opus){
|
||||
self.playing=false;
|
||||
self.emit("error", "No Opus!");
|
||||
self.emit("debug", "Tried to use node-opus, but opus not available - install it!");
|
||||
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