Python使用VLC均衡器报错:MediaPlayer无audio_set_equalizer属性
Python VLC网络收音机均衡器设置问题修复
错误原因
你碰到的AttributeError: 'MediaPlayer' object has no attribute 'audio_set_equalizer',是因为用错了API方法——Python VLC绑定里的MediaPlayer对象根本没有audio_set_equalizer这个属性,正确的均衡器设置方法是另一个名字。
修正后的完整代码
把原来的设置均衡器代码替换成正确的方法,同时可以加个兼容性检查避免无效操作:
Instance = vlc.Instance() player = Instance.media_player_new() radiourl = radios[0][1] # 设置电台流地址 Media = Instance.media_new(radiourl) player.set_media(Media) player.audio_set_volume(playvol) # 创建均衡器并设置各频段增益 equalizer = vlc.AudioEqualizer() equalizer.set_amp_at_index(0, 0) # 60 Hz equalizer.set_amp_at_index(1, 0) # 170 Hz equalizer.set_amp_at_index(2, 0) # 310 Hz equalizer.set_amp_at_index(3, 0) # 600 Hz equalizer.set_amp_at_index(4, 0) # 1 kHz equalizer.set_amp_at_index(5, 0) # 3 kHz equalizer.set_amp_at_index(6, 0) # 6 kHz equalizer.set_amp_at_index(7, 0) # 12 kHz # 先检查是否支持均衡器再设置 if player.can_set_equalizer(): player.set_equalizer(equalizer) else: print("当前播放器不支持均衡器功能")
关键要点
- 核心修正:将
player.audio_set_equalizer(equalizer)替换为player.set_equalizer(equalizer),这是Python VLC绑定里的标准方法。 - 兼容性检查:
can_set_equalizer()可以提前判断播放器是否支持均衡器,避免无意义的报错。 - 你创建均衡器和设置各频段增益的代码是完全正确的,不需要修改。
内容的提问来源于stack exchange,提问作者qeimair
相关产品推荐
相关产品推荐

