【发布时间】:2020-12-18 21:55:55
【问题描述】:
所以我在 discord.py 上制作了这个音乐不和谐机器人。 这个机器人只是从我电脑上的本地 mp3 文件中播放一个播放列表。 所以我有一个播放队列的函数,它是这样的:
def play_song(ctx, voice):
if len(queue) == 0:
print('All the songs have been played')
create_queue()
return
song_ = queue[0][len('songs/'):-16]
voice.play(discord.FFmpegPCMAudio(queue[0]), after=lambda e: play_song(ctx, voice))
print(f'Now playing {song_}')
del queue[0]
我想将此函数转换为异步函数,因为我希望能够在此函数内部的 discord.py 中发送消息并执行其他操作。 我面临的问题是这一行的结果:
voice.play(discord.FFmpegPCMAudio(queue[0]), after=lambda e: play_song(ctx, voice))
如果我让这个函数成为一个异步函数,那么我将不得不添加一个 await 语句,如果我这样做,它将是这样的:
voice.play(discord.FFmpegPCMAudio(queue[0]), after=lambda e: await play_song(ctx, voice))
问题在于它给了我错误:
"await outside of async function"
所以我也尝试使用asyncio.run(),然后在第一首歌之后它给了我一个巨大的错误滚动,接下来我该怎么办?
【问题讨论】:
标签: python discord.py