我最近重新开始编码和 Python,想看看如何制作一个不和谐的机器人。我已经设法发送消息并执行基本操作,但现在我不知道如何让它在语音通道中播放音频。
我可以让它随意加入和离开,但当我尝试播放音乐时,它就安静了。音频文件已下载,并且与我的程序位于同一文件夹中。我没有收到任何错误,我只知道机器人有问题。我检查过,音频文件不仅仅是静音。我不知道出了什么问题。
应该发生的是,当我呼叫机器人并且它加入我的 VC 时,它应该开始播放歌曲。
我的代码:
@client.command(aliases=['jvc'])
async def joinvc(ctx):
voice_channel = ctx.message.author.voice.channel
voice_client = discord.utils.get(client.voice_clients, guild=ctx.guild)
if voice_client:
if not voice_client.is_connected():
await voice_channel.connect()
voice_client.play(discord.FFmpegPCMAudio(executable='C:\\FFmpeg\\bin\\ffmpeg.exe', source='file.mp3'))
else:
await voice_channel.connect()
voice_client = discord.utils.get(client.voice_clients, guild=ctx.guild)
voice_client.play(discord.FFmpegPCMAudio(executable='C:\\FFmpeg\\bin\\ffmpeg.exe', source='file.mp3'))
抱歉,如果代码不太好,但这是我能想到的不会出错的唯一方法。如果我忘记了任何重要的事情或做错了什么,我也深表歉意,这是我第一次使用 StackOverflow。
你的代码有点错误, 更正代码
vc=await voice_channel.connect()
vc.play(discord.FFmpegPCMAudio(executable="C:/ffmpeg/bin/ffmpeg.exe", source="file.mp3"))
voice_client
无法播放文件...需要像上面一样定义一个变量然后尝试播放
此外,如果您使用确切的文件源而不是相对路径会更好......
记得将ffmpeg添加到路径中
@client.command()
async def thisisnotacommand(ctx):
channel = ctx.author.voice.channel
vc = await channel.connect()
await ctx.send('Started playing: something')
vc.play(discord.FFmpegPCMAudio('file.mp3'), after=lambda e: print('done', e))
如果您不知道如何将 ffmpeg 添加到路径中,请随时给我留言
Special unit#5323