Список выходящих устройств Vlc

#python #vlc

Вопрос:

 import vlc

Instance = vlc.Instance(['--no-xlib'])
player = Instance.media_player_new()

output_devices = []
mods = player.audio_output_device_enum()
if mods:
    mod = mods
    while mod:
        mod = mod.contents
        output_devices.append(mod.device)
        mod = mod.next
        
print(output_devices)
 

Когда я запускаю код в ubuntu 20.04, я получаю:

 [b'surround21', b'surround40', b'surround41', b'surround50', b'surround51', b'surround71', b'null', b'samplerate', b'speexrate', b'jack', b'oss', b'pulse', b'upmix', b'vdownmix', b'default', b'hdmi:CARD=NVidia,DEV=0', b'hdmi:CARD=NVidia,DEV=1', b'dmix:CARD=NVidia,DEV=3', b'dmix:CARD=NVidia,DEV=7', b'dsnoop:CARD=NVidia,DEV=3', b'dsnoop:CARD=NVidia,DEV=7', b'hw:CARD=NVidia,DEV=3', b'hw:CARD=NVidia,DEV=7', b'plughw:CARD=NVidia,DEV=3', b'plughw:CARD=NVidia,DEV=7', b'usbstream:CARD=NVidia', b'sysdefault:CARD=PCH', b'front:CARD=PCH,DEV=0', b'surround21:CARD=PCH,DEV=0', b'surround40:CARD=PCH,DEV=0', b'surround41:CARD=PCH,DEV=0', b'surround50:CARD=PCH,DEV=0', b'surround51:CARD=PCH,DEV=0', b'surround71:CARD=PCH,DEV=0', b'dmix:CARD=PCH,DEV=0', b'dmix:CARD=PCH,DEV=2', b'dsnoop:CARD=PCH,DEV=0', b'dsnoop:CARD=PCH,DEV=2', b'hw:CARD=PCH,DEV=0', b'hw:CARD=PCH,DEV=2', b'plughw:CARD=PCH,DEV=0', b'plughw:CARD=PCH,DEV=2', b'usbstream:CARD=PCH']
 

Когда я запускаю код в Windows 10, выводится:

 [b'', b'{0.0.0.00000000}.{f5afeef6-6697-4507-882a-0b60be862f53}']
 

Странный вывод, я думаю?
Как я могу получить устройства вывода на python с помощью модуля vlc?

Также в cmd я увидел следующее: [000002734e26e560] ошибка аудиовыхода mmdevice: не удается инициализировать COM (ошибка 0x80010106), но только в определенное время.

Ответ №1:

Я просто меняю mod.device на mod.описание, и теперь я могу видеть названия устройств, читаемых человеком.