【发布时间】:2016-05-24 20:06:53
【问题描述】:
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 函数实际上是将输出设备更改为虚拟输出。但声音仍然在扬声器上播放。
发生了什么事?我该如何解决这个问题?
我在 VLC 论坛上询问并得到一个非常无益的回复,告诉我“检查日志和文档”。而已。我一直非常依赖相当缺乏的文档才能做到这一点。即使我怀疑它是否有帮助,我还是决定尝试记录。我认为它会像调用 libvlc_log_set_file 一样简单,但它需要一个 libVLC 文件指针,而且我不知道如何像在 Python 中那样创建一个具有名称和模式的文件。
tl;博士:
1) 如何成功更换音频输出设备? 2) 如何设置最大详细日志记录?
【问题讨论】: