使用 discord.py 播放音频文件

时间:2021-03-07 20:25:29

标签: python-3.x discord.py

我最近重新回到编码和 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。

1 个答案:

答案 0 :(得分:0)

记得在路径中添加ffmpeg

/(?<=\{).+?(?=\})/g

如果您不知道如何将 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))