internal DiscordVoiceClient(DiscordClient pclient, DiscordVoiceChannel pchannel, DiscordVoiceCallback callback) { parent = pclient; channel = pchannel; startcallback = callback; users = new Dictionary <DiscordUser, uint>(); try { if (channel.ID != null) { if (channel.bitrate > 0) { encoder = new OpusEncoder(48000, 1, 20, (channel.bitrate / 1000), OpusApplication.MusicOrMixed); } else { encoder = new OpusEncoder(48000, 1, 20, null, OpusApplication.MusicOrMixed); } encoder.SetForwardErrorCorrection(true); decoder = new OpusDecoder(48000, 1, 20); } } catch (Exception e) { Debug.LogError(e.Message); Debug.LogError(e.StackTrace); Debug.LogError(e.Source); } }
/// <summary> Stops this voiceclient. </summary> public void Stop(DiscordVoiceCallback callback) { PayloadArgs <VoiceDisconnectArgs> args = new PayloadArgs <VoiceDisconnectArgs>() { op = 4, d = new VoiceDisconnectArgs() { guild_id = channel.serverID, channel_id = null, self_mute = false, self_deaf = false } }; parent.socket.Send(JsonUtility.ToJson(args)); parent.unityInvoker.Enqueue(() => callback(parent, this, new DiscordError())); socket.CloseAsync(); parent.voiceClients.Remove(channel.serverID); }