no_SNITCH
@no_SNITCH
начинающий программист

Как сделать так, чтобы бот отключался от голосового канала?

Я пишу дискорд бота на питоне. Написал ивент для подключения бота к голосовому каналу(далее - гк), при подключении юзера к гк, для того, чтобы он проигрывал приветственный отрывок из песни. Но проблема в том, что когда бот подключается к каналу и воспроизводит аудио, в последующем, при других подключениях юзеров, он не сможет проигрывать отрывок, так как он уже подключен.Мне необходимо написать код, при котором, после воспроизведения мелодии он отключался от гк.

Вот код:
@bot.event
async def on_voice_state_update(member, before, after):
	if after.channel and after.channel!=before.channel:
		VoiceClient = await after.channel.connect()
		VoiceClient.play(discord.FFmpegPCMAudio(executable = "C:/ffmpeg/bin/ffmpeg.exe" , source = "zvuk-jenskogo-opernogo-peniya-2.mp3"))

Вот ошибка:
discord.errors.ClientException: Already connected to a voice channel.
  • Вопрос задан
  • 52 просмотра
Пригласить эксперта
Ответы на вопрос 1
@shadowzxc
я
@bot.event
async def on_voice_state_update(member, before, after):
    if after.channel and after.channel!=before.channel:
        VoiceClient = await after.channel.connect()
        VoiceClient.play(discord.FFmpegPCMAudio(executable = "C:/ffmpeg/bin/ffmpeg.exe" , source = "zvuk-jenskogo-opernogo-peniya-2.mp3"))
while VoiceClient.is_playing():
    await asyncio.sleep(1)
else:
    await asyncio.sleep(15)
    while VoiceClient.is_playing():
        break
    else:
        await VoiceClient.disconnect()
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы