我创建了一个不和谐机器人,在某些消息上发回消息或播放声音(如音板)
关键代码是:
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加入并收到错误消息:
TypeError: disconnect() takes 1 positional argument but 2 were given
我知道您可以使用soundboard_player.is_done()
来检查僵尸程序的状态,但我无法找到一种方法来检查状态而不会在循环中捕获代码
通过在循环中捕获代码,我无法执行STOP命令以阻止它在中途播放歌曲(soundbite)。
对ffmpeg播放器的after=voice_client.disconnect()
命令有任何帮助
或者是一种创造性的方式来定期检查状态而不会被困在循环中?
答案 0 :(得分:0)
运行threadafe。
我建议:
forced_root_block : false,
force_br_newlines : true,
force_p_newlines : false,
loop = voice_client.loop
你应该在同步功能中写它。
祝你好运。