加入后立即离开语音通道的不一致的bot

问题描述:

我正在为我的不和服务器构建一个bot来播放音频YouTube视频,因为我还没有找到可靠的bot在线。加入后立即离开语音通道的不一致的bot

我输入!play {url}命令后,bot连接到我的语音通道,但即使该URL有效也会立即离开。

我的代码如下:

[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); 
    output.CopyToAsync(stream); 
    stream.FlushAsync().ConfigureAwait(false); 
} 

private Process CreateStream(string url) { 
    Process currentsong = new Process(); 

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

    currentsong.Start(); 
    return currentsong; 
} 

我曾尝试使用刚刚与我的PC上的文件,它是很难在编码的ffmpeg试过,但我有同样的结果和机器人只要留下的语音通道它连接。

我确实通过在cmd窗口中运行命令来验证ffmpeg和youtube-dl是否工作正常,并且它们都运行正常。

ffmpeg不是语音的唯一要求。您需要Discord使用的语音编码和加密库。我建议在Discord API服务器内加入Discord.Net频道,我们通常会回答这些问题以及我们拥有大量资源的位置,例如指向这些库的预编译版本的链接。

https://discord.gg/discord-api 频道是#dotnet_discord网

+0

对不起,我忘了提,我有库! – Forb