VLC 2.2.3, python-vlc 1.1.2.Связи Python для libVLC - невозможно изменить устройство вывода звука
У меня есть виртуальный аудиовыход и я пытаюсь получить 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])
Я запустить код несколько раз, меняя идентификатор устройства в соответствии с кодом комментария. Однако устройство вывода фактически не изменяется. Это головная боль по двум причинам:
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.
ТЛ; др:
1) Как успешно изменить устройство вывода звука? 2) Как настроить максимальную регистрацию подробностей?