gpt4 book ai didi

c# - Discord bot 加入后立即离开语音 channel

转载 作者:行者123 更新时间:2023-12-04 23:08:33 28 4
gpt4 key购买 nike

我正在为我的不和谐服务器构建一个机器人来播放音频 YouTube 视频,因为我还没有在网上找到可靠的机器人。

在我输入 !play {url} 命令后,机器人会连接到我的语音 channel ,但即使 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,但我得到了相同的结果,并且机器人一连接就离开了语音 channel 。

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

最佳答案

ffmpeg 并不是对语音的唯一要求。您需要 Discord 使用的语音编码和加密库。我建议加入 Discord API 服务器内的 Discord.Net channel ,这是我们一直在回答此类问题的地方,也是我们拥有大量资源的地方,例如指向这些库的预编译版本所在位置的链接.

https://discord.gg/discord-api
channel 是#dotnet_discord-net

关于c# - Discord bot 加入后立即离开语音 channel ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45255966/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com