首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Discord.py - VoiceClient。如何调用下一个音频文件?播放(source,*,after=None)

Discord.py - VoiceClient。如何调用下一个音频文件?播放(source,*,after=None)
EN

Stack Overflow用户
提问于 2020-03-25 10:19:12
回答 1查看 1.1K关注 0票数 0

我正在尝试用Discord.py 1.3.2做音乐不和谐机器人。

作为我的队列,我只使用普通列表。List保存.mp3文件的路径。Self.vc是语音客户端。一切正常,直到歌曲结束。我试着自己解决这个问题,但是我找不到答案。怎么叫下一首“歌”?

代码语言:javascript
复制
self.source = FFmpegPCMAudio(self.queue[0])
self.vc.play(self.source, after= what should be here?)

我正在阅读参考资料,我不明白"(Callable[Exception,Any])“是什么意思。

感谢您的帮助!

EN

回答 1

Stack Overflow用户

发布于 2020-03-30 20:25:24

由于我刚刚遇到了同样的问题,下面是我的解决方案。

Discord.Py接口提供了带有相同问题here的常见问题解答。

基本上,您定义了after函数,并使用asyncio.run_coroutine_threadsafe调用所有内容。

下面是我的代码:

代码语言:javascript
复制
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)

我的完整机器人是here

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60842161

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档