You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python Discord使用FFmpeg播放音频报错:'FFmpegPCMAudio'无'_process'属性

解决Discord.py中FFmpegPCMAudio的_process属性错误

问题描述

尝试在Discord语音频道播放MP3文件,已正确安装FFmpeg,但运行代码时触发以下错误:

AttributeError: 'FFmpegPCMAudio' object has no attribute '_process'

原代码

@bot.command()
async def joinandplay(ctx):
   song = os.path.isfile("musik.mp3")
   voice_channel = bot.get_channel(940326390857883648)
   vc = await voice_channel.connect()
   voice = discord.FFmpegPCMAudio(song)
   vc.play(voice)

错误原因

os.path.isfile("musik.mp3")返回的是布尔值(True/False),而discord.FFmpegPCMAudio要求传入的是音频文件的路径字符串。将布尔值传入会导致FFmpegPCMAudio初始化失败,无法生成必要的_process属性,从而触发错误。

修正后的代码

import os
import discord
from discord.ext import commands

@bot.command()
async def joinandplay(ctx):
    song_path = "musik.mp3"
    # 先验证文件是否存在
    if not os.path.isfile(song_path):
        await ctx.send("指定的音频文件不存在!")
        return
    
    voice_channel = bot.get_channel(940326390857883648)
    vc = await voice_channel.connect()
    # 传入正确的文件路径
    voice = discord.FFmpegPCMAudio(song_path)
    vc.play(voice)

额外注意事项

如果FFmpeg未添加到系统环境变量PATH中,需要在FFmpegPCMAudio中指定可执行文件路径:

  • Windows系统示例:
    voice = discord.FFmpegPCMAudio(song_path, executable="C:/path/to/ffmpeg.exe")
    
  • Linux/macOS系统示例:
    voice = discord.FFmpegPCMAudio(song_path, executable="/usr/bin/ffmpeg")
    

内容的提问来源于stack exchange,提问作者F L R U Z

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 21:30:53