2017-07-25 15 views
0

我正在C#discord.net 1.0.0当前不和谐的机器人,我试图添加一个命令,允许机器人播放youtube音频通过语音聊天,然而,当机器人加入语音聊天和尝试播放音频,我的控制台刚刚返回:C#不和机器人未知操作码8当试图播放通过语音通道的YouTube音频

16:57:42 Audio #1 Connecting 
16:57:42 Audio #1 Unknown OpCode (8) 
16:57:42 Audio #1 Connected 

,如果有人告诉我转到了不和谐的API,我已经去了那里,他们对我个人来说帮助不大,但我的代码是:

using System.Threading.Tasks; 
using Discord.Commands; 
using Discord; 
using Discordbot; 
using System.Diagnostics; 
using Discord.Audio; 
using System; 

public class AudioModule : ModuleBase<ICommandContext> 
{ 
private readonly AudioService _service; 
public static IAudioClient client; 
private Process CreateStream(string url) 
{ 
    Process currentsong = new Process(); 
    try 
    { 
     currentsong.StartInfo = new ProcessStartInfo 
     { 
      FileName = "youtube-dl.exe", 
      Arguments = $"-o - {url} | ffmpeg -i pipe:0 -ac 2 -f s16le -ar 
48000 pipe:1", 
      UseShellExecute = false, 
      RedirectStandardOutput = true, 
      CreateNoWindow = true 
     }; 
    } 
    catch 
    { 
    } 
    currentsong.Start(); 
    return currentsong; 
    } 
[Command("play", RunMode = RunMode.Async)] 
public async Task play(string url) 
{ 
    IVoiceChannel channel = (Context.User as IVoiceState).VoiceChannel; 
    IAudioClient client = await channel.ConnectAsync(); 

    var output = CreateStream(url).StandardOutput.BaseStream; 
    var stream = client.CreatePCMStream(AudioApplication.Music, 128 * 1024); 
    await output.CopyToAsync(stream); 
    await stream.FlushAsync().ConfigureAwait(false); 
    } 

    } 
+0

您在这里壳工作(你用管等。)... –

回答

0

OpCode 8是一个网关Request Guild Members请求。 Unkown OpCode 8发生的事实不应该妨碍您的机器人在播放音乐,并且可以安全地忽略。

你可能要检查你的过程是否正常工作,而不是

currentsong.StartInfo = new ProcessStartInfo 
    { 
     FileName = "youtube-dl.exe", 
     Arguments = $"-o - {url} | ffmpeg -i pipe:0 -ac 2 -f s16le -ar 48000 pipe:1", 
     UseShellExecute = false, 
     RedirectStandardOutput = true, 
     CreateNoWindow = true 
    };