You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何用Python VLC创建独立播放器并设置不同音量?Windows下异常

解决Windows下VLC Python绑定多播放器音量共享问题

嘿,很高兴你第一次提问就来这里啦!这个问题其实是Windows平台上VLC Python绑定的一个常见小坑,我来帮你搞定~

问题原因

在Windows上,VLC默认会让所有MediaPlayer实例共享同一个全局音频输出会话,这就导致你最后设置的音量会覆盖之前所有实例的音量。而Mac的音频架构本身支持独立控制不同进程/实例的音频输出,所以那边能正常工作。

解决方案:为每个播放器创建独立的VLC实例

核心思路是不让两个播放器共用默认的全局VLC实例,而是为每个播放器单独创建vlc.Instance对象,每个实例拥有独立的音频配置,这样音量设置就不会互相干扰了。

修改后的代码如下:

import vlc
import time

# 为第一个播放器创建独立的VLC实例
instance1 = vlc.Instance()
song = 'C:/Users/Admin/Desktop/Projects/Music Shit/Martin Garrix - Animals (Original Mix).mp3'
player = instance1.media_player_new()
media = instance1.media_new(song)
player.set_media(media)
player.audio_set_volume(100)
player.play()

# 为第二个播放器创建另一个独立的VLC实例
instance2 = vlc.Instance()
song2 = 'C:/Users/Admin/Desktop/Projects/Music Shit/Tremor (Sensation 2014 Anthem).mp3'
player2 = instance2.media_player_new()
media2 = instance2.media_new(song2)
player2.set_media(media2)
player2.audio_set_volume(20)
player2.play()

# 保持程序运行,否则播放会立即终止
time.sleep(30)

额外提示

  • 确保你安装的python-vlc绑定和本地VLC播放器版本匹配,版本不兼容也可能导致这类奇怪的问题;
  • 如果之后需要实时调整音量(比如模拟DJ推子),直接调用对应playeraudio_set_volume()方法就行,两个播放器的音量依然是独立可控的;
  • 要是遇到其他播放相关的问题,优先检查VLC实例的独立性,很多Windows下的VLC多实例问题都能通过这个方法解决。

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

火山引擎 最新活动