Я хочу сделать музыкальный бот < /p>
Итак, я сделал < /p>
public async Task SlashCommandHandler(SocketSlashCommand command)
{
if (command.User.IsBot) return;
if (command.Data.Name.Equals("music"))
{
SocketGuildUser guildUser = command.User as SocketGuildUser;
IVoiceChannel voiceChannel = guildUser.VoiceChannel;
if (voiceChannel == null)
{
await command.Channel.SendMessageAsync("X");
// TODO: Send error embed
return;
}
string? url = null;
foreach (SocketSlashCommandDataOption option in command.Data.Options)
{
if (option.Name.Equals("url"))
{
url = (string)option.Value;
}
}
Console.WriteLine(url);
var audioClient = await voiceChannel.ConnectAsync();
//handler is blocking the gateway task
await SendAsync(audioClient, url);
}
}
private Process? CreateStream(string path)
{
return Process.Start(new ProcessStartInfo
{
FileName = "ffmpeg",
Arguments = $"-hide_banner -loglevel panic -i \"{path}\" -ac 2 -vol 512 -f s16le - ar 48000 pipe:1",
UseShellExecute = false,
RedirectStandardOutput = true,
});
}
private async Task SendAsync(IAudioClient client, string path)
{
// Create FFmpeg using the previous example
using (var ffmpeg = CreateStream(path))
using (var output = ffmpeg.StandardOutput.BaseStream)
using (var discord = client.CreatePCMStream(AudioApplication.Mixed))
{
try { await output.CopyToAsync(discord); }
finally { await discord.FlushAsync(); }
}
}
}
< /code>
this < /p>
и отлаживать это, я получаю < /p>
00:35:48 Gateway A SlashCommandExecuted handler is blocking the gateway task.
00:36:00 Gateway A SlashCommandExecuted handler has thrown an unhandled exception.:
System.TimeoutException: The operation has timed out.
at Discord.WebSocket.SocketGuild.ConnectAudioAsync(UInt64 channelId, Boolean selfDeaf, Boolean selfMute, Boolean external)
at Discord.WebSocket.SocketGuild.ConnectAudioAsync(UInt64 channelId, Boolean selfDeaf, Boolean selfMute, Boolean external)
at Discord.WebSocket.SocketVoiceChannel.ConnectAsync(Boolean selfDeaf, Boolean selfMute, Boolean external)
at {Bot name}.EventListener.SlashCommandListener.SlashCommandHandler(SocketSlashCommand command) in {Project Path}\SlashCommandListener.cs:line 50
at Discord.EventExtensions.InvokeAsync[T](AsyncEvent`1 eventHandler, T arg)
at Discord.WebSocket.DiscordSocketClient.TimeoutWrap(String name, Func`1 action)
< /code>
Эта ошибка в консоли < /p>
код в строке: 50 is < /p>
await voiceChannel.ConnectAsync();
< /code>
this < /p>
Я хочу < /p>
Получить команду Author < /li>
Получить вариант команды (имя url ') < /li>
Get Author's Voice и Canken < /li>
< /li> < /li> < /li>
/> Дайте мне знать, как исправить эту ошибку, и если вы научите меня, как писать код просто и аккуратно, я очень буду вам благодарить < /p>
Подробнее здесь: https://stackoverflow.com/questions/732 ... ed-handler
Ошибка голосового канала Discord.net ConnectAsync (). ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как заставить моего бота Discord отправлять встроенное сообщение в чат голосового канала?
Anonymous » » в форуме Python - 0 Ответы
- 20 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Discord.net/Discord.py записывает аудиопоток пользователя или всего канала
Anonymous » » в форуме C# - 0 Ответы
- 18 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Discord.net/Discord.py записывает аудиопоток пользователя или всего канала
Anonymous » » в форуме Python - 0 Ответы
- 23 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Discord.net/Discord.py записывает аудиопоток пользователя или всего канала
Anonymous » » в форуме C# - 0 Ответы
- 23 Просмотры
-
Последнее сообщение Anonymous
-