VLC 2.2.3,python-vlc 1.1.2。
我有一个虚拟音频输出,我试图让libVLC输出。到目前为止,我可以看到虚拟输出出现在libVLC中,但是选择它会在默认输出(即扬声器)上播放音频。
这是我所拥有的相关部分:
self.Instance = vlc.Instance()
self.player = self.Instance.media_player_new()
devices = []
mods = self.player.audio_output_device_enum()
if mods:
mod = mods
while mod:
mod = mod.contents
devices.append(mod.device)
mod = mod.next
vlc.libvlc_audio_output_device_list_release(mods)
# this is the part I change on each run of the code.
self.player.audio_output_device_set(None, devices[0])
我已经多次运行代码,根据代码注释更改设备ID。但是,输出设备实际上并没有改变。这有点令人头疼,原因有两个:
1)audio_output_device_set()不返回任何内容。当我运行这个功能时,我无法判断我是否真的完成了任何事情。 2)我甚至无法运行audio_output_device_get()来检查set函数是否正在执行任何操作,因为这仅适用于libvlc 3.我更希望我的程序能够使用2.2.3。
所以,我接下来要做的就是安装VLC 3.0并用它运行上面的代码。现在,audio_output_device_get()工作,我可以看到set函数实际上是将输出设备更改为虚拟输出。但声音STILL会在扬声器上播放。
发生了什么?我该如何解决这个问题?
我在VLC论坛上问了一个非常无益的回复,告诉我要检查日志和文档'。就是这样。我已经超越了相当缺乏的文档来实现这一目标。虽然我怀疑它可以提供帮助,但我决定尝试登录。我认为它就像调用libvlc_log_set_file
一样简单,但它需要一个libVLC文件指针,而且我不知道如何使用Python中的名称和模式创建一个。
TL; DR:
1)如何成功更改音频输出设备? 2)如何设置最大详细程度记录?
答案 0 :(得分:0)
1)出于某种原因,在VLC注册我的更改之前,我不得不暂停和取消暂停。
此代码修复了一些问题:
self.instance = vlc.Instance('--verbose 9')
2)按如下方式初始化VLC:
{{1}}