如何在VLC中获取音频输出设备的原始友好名称而非设备ID
解决方法
你调用audio_output_device_enum返回的AudioOutputDevice结构体包含两个核心字段:
device:存储设备的唯一识别ID,也就是你当前拿到的字节串值name:存储设备的用户友好显示名称,就是你需要的原始设备名
你只需要把原来代码中提取mod.device的逻辑替换为提取mod.name,再做字节解码即可,修正后代码如下:
import vlc p = vlc.MediaPlayer("music.mp3") mods = p.audio_output_device_enum() devices = [] if mods: mod = mods while mod: mod = mod.contents # 解码字节为utf-8字符串,得到显示名称 display_name = mod.name.decode('utf-8') device_id = mod.device.decode('utf-8') devices.append((display_name, device_id)) mod = mod.next # 输出所有设备的显示名 for display_name, _ in devices: print(display_name)
运行后就能直接得到Speakers (High Definition Audio)这类格式的设备显示名称。
补充说明
如果遇到部分设备name字段为空的情况,优先更新你本地的python-vlc依赖到最新版本即可解决。
内容的提问来源于stack exchange,提问作者a-m-h-t
相关产品推荐
相关产品推荐

