我snd_aloop
在我的设置中添加了一个设备,PulseAudio 自动拾取它并将其列为“音频内部”(参见例如“pavucontrol
配置”选项卡),与我的常规声卡相同,这使得理解事情变得困难。
这个问题标题类似,但实际上它们正在处理源和接收器的名称,我可以更改这些名称以满足我的需要。但我也想更改卡本身的名称,因为某些应用程序直接引用它而不是接收器/源。
然而,虽然我可以使用 获得device.description
该卡的pacmd list-cards
,但我找不到等效的方法pacmd update-card-proplist
来更改它。
也许这是在 alsa 而不是pulseaudio 中设置的?该设备Loopback
在 中列出/proc/asound/
,这个名称适合我的需要。
卡名称已本地化为法语,因此我认为它不是内置默认值。我在 /usr/ 和 /etc/ 中文本搜索该字符串,但无济于事。我不知道系统从何而来这个名字。
答案1
我检查了pulseaudio源代码,发现pavucontrol配置选项卡上显示的卡名称来自名为“ID_MODEL_FROM_DATABASE”的属性,您可以通过udev规则设置该属性。例如,要为连接到给定 USB 端口的任何 USB 声卡设置特定名称:
/etc/udev/rules.d/85-identify-usb-sound-cards.rules
:
SUBSYSTEM!="sound", GOTO="pa_naming_end"
ACTION!="change", GOTO="pa_naming_end"
KERNEL!="card*", GOTO="pa_naming_end"
DEVPATH=="/devices/pci0000:00/0000:00:14.0/usb3/3-1/3-1.2/3-1.2:1.0/sound/card?", ENV{ID_MODEL_FROM_DATABASE}="FT-2900 Audio"
LABEL="pa_naming_end"
答案2
答案3
某种解决方案:删除现有的接收器/卡,然后使用所选名称重新创建一个新的接收器/卡...
- 删除接收器/卡:通过卸载模块(获取接收器/设备名称使用的模块):
$ pactl list sinks
姓名: ...
描述: ...
所有者模块:19 <-- 这里
- 然后,通过卸载该模块来“删除”(禁用)此类接收器:
$ pactl unload-module 19
- 获取卡片名称:
$ pacmd list-cards
- 创建新接收器:
$ pacmd load-module module-remap-sink master=[card-NAME] channels=2 channel_map=front-left,front-right sink_name=[SOME-sink-NAME] sink_properties=device.description=[SOME-NAME-pavucontrol]