ffmpeg播放器输入不和.py(python)自动

2024-06-16 11:44:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我创建了一个不和谐的机器人,在某些消息上要么发送回消息要么播放声音(比如声音板)

关键的代码行是:

         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”语句的代码时,bot将加入并收到错误消息:

^{pr2}$

我知道您可以使用soundboard_player.is_done()来检查bot的状态,但我无法找到一种方法来检查状态,而不将代码捕获到循环中

通过捕获循环中的代码,我不能执行停止命令来停止它播放歌曲(soundbite)中途。在

对ffmpeg播放器的after=voice_client.disconnect()命令有什么帮助吗 或者一种创造性的方法来定期检查状态而不被困在循环中?在


Tags: 代码client声音消息message状态机器人mp3
1条回答
网友
1楼 · 发布于 2024-06-16 11:44:42

运行它线程安全。在

我建议:

loop = voice_client.loop

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

相关问题 更多 >