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

discord.py 0.16.12版本出现AttributeError:无PCMVolumeTransformer属性的解决方法

解决AttributeError: module 'discord' has no attribute 'PCMVolumeTransformer'问题

你的问题根源很明确:你使用的discord.py 0.16.12版本太老了,PCMVolumeTransformer这个类是在discord.py v1.0及之后的版本才新增的,所以旧版本里自然找不到这个属性。下面给你两种可行的解决思路:

一、升级discord.py到最新稳定版(推荐)

这是最彻底的解决方法,旧版本不仅缺少这个类,还可能存在很多bug和已废弃的API。步骤如下:

  1. 先卸载旧版本的相关包:
    pip uninstall discord.py discord.py[voice] -y
    
  2. 安装最新的稳定版(包含语音支持):
    pip install discord.py[voice]
    
    如果你想指定某个稳定版本(比如v2.3.2),可以用:
    pip install discord.py==2.3.2[voice]
    
  3. 升级后,你原来的class vol(discord.PCMVolumeTransformer):代码就可以正常使用了,但要注意:v1.0+的discord.py和0.16版本有一些API变化,比如命令注册、语音连接的写法可能需要微调,建议参考对应版本的官方文档调整你的其他代码。

二、不升级版本,用旧版本的音量调整方式

如果因为某些原因不能升级,0.16.12版本里可以通过音频源的volume参数来控制音量,以最常用的FFmpegPCMAudio为例:

from discord import FFmpegPCMAudio
from discord.ext.commands import Bot

bot = Bot(command_prefix='!')

@bot.command()
async def play(ctx):
    # 连接到用户所在的语音频道
    voice_channel = ctx.author.voice.channel
    voice_client = await voice_channel.connect()
    
    # 创建带音量的音频源(volume值0-1,1是最大音量)
    audio_source = FFmpegPCMAudio("music.mp3", volume=0.5)
    # 播放音频
    voice_client.play(audio_source)

bot.run("你的机器人Token")

如果需要动态调整音量,旧版本里没有类似PCMVolumeTransformer的动态调整机制,你可能需要暂停当前播放,重新创建一个调整过音量的音频源再继续播放。

内容的提问来源于stack exchange,提问作者M4R1N

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 07:38:18