使用discord.py播放音频文件

问题描述 投票:0回答:2

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

python-3.x discord.py
2个回答
0
投票

你的代码有点错误, 更正代码

 vc=await voice_channel.connect()
 vc.play(discord.FFmpegPCMAudio(executable="C:/ffmpeg/bin/ffmpeg.exe", source="file.mp3"))

voice_client
无法播放文件...需要像上面一样定义一个变量然后尝试播放

此外,如果您使用确切的文件源而不是相对路径会更好......


-1
投票

记得将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

© www.soinside.com 2019 - 2024. All rights reserved.