如何解决如何使Discord机器人重复播放歌曲?
我想制作一个不和谐的机器人来重复播放歌曲。假设变量计数包含我想要歌曲重复的次数,如何使该命令voice.play(discord.FFmpegPCMAudio(audio))
重复n次,确保每次重复仅在歌曲完全播放之后发生? / p>
解决方法
VoiceClient.play()
有一个after
参数,可用于再次播放音频:
from discord.ext import commands
from asyncio import run_coroutine_threadsafe as rct
bot = commands.Bot(prefix='your_prefix')
def play_next(ctx,audio,msg,n):
if n:
voice = get(bot.voice_clients,guild=ctx.guild)
rct(msg.edit(content='Finished playing the song,{n} more to go.'),bot.loop)
voice.play(FFmpegPCMAudio(audio),after=lambda e: play_next(ctx,n-1))
voice.is_playing()
else:
rct(msg.delete())
@bot.command()
repeat(ctx,n):
audio = 'your_audio_source'
voice = get(bot.voice_clients,guild=ctx.guild)
msg = await ctx.send(f'Started playing video {n} times')
voice.play(FFmpegPCMAudio(audio),n-1))
voice.is_playing()
bot.run('your_token')
PS:此代码中没有错误管理,您必须自己做。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。