Discord.py - VoiceClient. Как я могу вызвать следующий аудиофайл? play (источник, *, после = нет) - PullRequest
0 голосов
/ 25 марта 2020

Я пытаюсь создать мусор c бот-дискорд с использованием Discord.py 1.3.2.

В качестве очереди я просто использую обычный список. В списке хранятся пути к файлам .mp3. Self.v c - это голосовой клиент. Все отлично работает, пока не закончатся песни. Я пытался понять это сам, но не могу найти ответ. Как назвать следующую «песню»?

self.source = FFmpegPCMAudio(self.queue[0])
self.vc.play(self.source, after= what should be here?)

Я читал ссылки, и я не понимаю, что означает "(Callable [[Exception], Any])".

Спасибо за помощь!

1 Ответ

0 голосов
/ 30 марта 2020

Поскольку у меня возникла та же проблема, вот мое решение.

Discord.Py API предоставляет ответы на часто задаваемые вопросы с той же проблемой здесь .

В основном вы определите свою функцию after и используйте asyncio.run_coroutine_threadsafe для вызова всего.

Вот мой код:

def playit():
    try:
        source = discord.PCMVolumeTransformer(discord.FFmpegPCMAudio(gPlaylist[0]), gVol)
        bot.voice_clients[0].play(source, after = myafter)
        gPlaylist.pop(0)
    except Exception as e:
        print(e)

def myafter(error):
    try:
        fut = asyncio.run_coroutine_threadsafe(playit(), bot.loop)
        fut.result()
    except Exception as e:
        print(e)

source = discord.PCMVolumeTransformer(discord.FFmpegPCMAudio(gPlaylist[0]), gVol)
ctx.voice_client.play(source, after = myafter)

Мой полный бот здесь .

...