有时机器人停止播放来自YouTube的音乐,为什么以及如何解决此问题? 我知道这个问题只适用于C#中的机器人。
代码:
public async Task LeaveAudio(IGuild guild)
{
if (ConnectedChannels.TryRemove(guild.Id, out client))
{
await client.StopAsync();//line 56
}
}
private Process CreateLinkStream(string url)
{
Process currentsong = new Process();
currentsong.StartInfo = new ProcessStartInfo
{
FileName = "cmd.exe",
Arguments = $"/C youtube-dl.exe -o - {url} | ffmpeg -i pipe:0 -ac 2 -f s16le -ar 48100 pipe:1",
UseShellExecute = false,
RedirectStandardOutput = true,
CreateNoWindow = true
};
currentsong.Start();
return currentsong;
}
public async Task SendLinkAsync(IGuild guild, IMessageChannel channel, string path)
{
if (ConnectedChannels.TryGetValue(guild.Id, out client))
{
cancel = new CancellationTokenSource();
var output = CreateLinkStream(path).StandardOutput.BaseStream;
var stream = client.CreatePCMStream(AudioApplication.Music, 128 * 1024);
await output.CopyToAsync(stream, 81920, cancel.Token);
await stream.FlushAsync().ConfigureAwait(false);
}
}