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

Python使用pygame播放mp3报mpg123_seek无效RVA模式错误如何解决

报错原因

触发pygame.error: mpg123_seek: Invalid RVA mode. (code 12)错误的核心原因有两个:

  1. Pygame 2.x早期版本内置的mpg123解码器存在兼容bug,对携带自定义RVA(相对音量校准)元数据的MP3文件解析失败,就会抛出这个错误。
  2. 你提供的代码存在Python语法层面的缩进错误,Python对代码缩进有强制要求,原代码中函数内部逻辑、主程序入口的调用逻辑都没有正确缩进,即使音频文件正常也无法正常运行。
修复步骤
  • 优先升级Pygame到最新稳定版本,新版本已经修复了绝大多数mpg123解码器的RVA解析兼容问题,执行命令完成升级:
    pip install --upgrade pygame
    
  • 如果升级后仍然报相同错误,说明当前MP3文件的元数据特殊标签无法被解码器兼容,可以将音频文件转换为OGG格式(Pygame对OGG格式的兼容稳定性远高于MP3),或者用音频编辑工具清除MP3文件内的RVA、专辑增益类自定义元数据后再使用。
  • 修正代码的缩进问题,统一使用4空格作为函数、判断语句内部代码的缩进标准,同时确认音频文件路径填写正确,文件和脚本在同一目录下时直接写文件名即可,否则需要填写完整绝对路径。
修正后可运行代码
from pygame import mixer

def wateronloop(file, stopper):
    mixer.init()
    mixer.music.load(file)
    mixer.music.set_volume(0.5)
    mixer.music.play()

    while True:
        usin = input("To stop the music, type s: ")
        if usin == stopper:
            mixer.music.stop()
            break

if __name__ == '__main__':
    wateronloop("water.mp3", "s")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 06:39:24