pythonでDiscordのbot をつくっているとき以下のようなエラーに当たったので、その解決法を記す。
discord.errors.ClientException: Already playing audio.
まず、自分の環境について
16.04.4 LTS on wsl on window10
python 3.9.5 on anaconda
discord.py を使用
エラーは
discord.errors.ClientException: Already playing audio.
Already playing audio とあるように、「すでに音声ファイルが再生されていますよ」
という意味。
1つの音声ファイルが再生中だとほかのファイルは再生できないようだ(あたりまえか...)。
そのため is_playing() を使って再生中かどうかを判断するとよい。
以下のような解決方法が良いと思う。
async def Talk(id):
global client
Guild = client.get_guild(id)
while Guild.voice_client.is_playing():
await asyncio.sleep(1)
Guild.voice_client.play(discord.FFmpegPCMAudio("test.wav"))
return
while で is_playing がFalse になるまでawait asyncio.sleep()で待機する方法。
上のコードは流れを書いたもので、実際のコードとは違う。
いろいろ書き足しがないと動かないことに注意。client とか その他も。
0コメント