首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >discord.py (python)中的ffmpeg播放器会自动离开

discord.py (python)中的ffmpeg播放器会自动离开
EN

Stack Overflow用户
提问于 2018-01-12 21:58:17
回答 1查看 2.6K关注 0票数 0

我已经创建了一个不和谐机器人,它可以在某些消息上发回消息或播放声音(就像soundboard)。

关键的代码行是:

代码语言:javascript
复制
         soundboard_player = voice_client.create_ffmpeg_player("doh.mp3")
         soundboard_player.start()
         await client.send_message(message.channel, "Playing DOH...")

这绝对行得通,但我一直在尝试添加行after=voice_client.disconnect(),我把它放在("doh.mp3", * I PUT IT HERE *)括号中。我想让机器人在完成后离开。

当我运行包含'after‘语句的代码时,机器人加入并得到错误消息:

代码语言:javascript
复制
TypeError: disconnect() takes 1 positional argument but 2 were given

我知道您可以使用soundboard_player.is_done()来检查机器人的状态,但我想不出一种方法来检查状态,而不将代码陷入循环中

通过在循环中捕获代码,我不能执行一个停止命令来在中途停止播放这首歌(声音片段)。

有没有关于ffmpeg播放器的after=voice_client.disconnect()命令的帮助,或者有什么创造性的方法可以定期检查状态,而不会陷入循环?

EN

回答 1

Stack Overflow用户

发布于 2018-03-09 09:14:05

运行threadsafe。

我建议:

loop = voice_client.loop

你应该把它写在一个after=lambda: asyncio.run_coroutine_threadsafe(voice_client.disconnect(), loop)函数里面。祝好运。

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

https://stackoverflow.com/questions/48227772

复制
相关文章

相似问题

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