Pulseaudio 常见问题解答演示了如何使用通道映射显式加载 ALSA 接收器模块。这可行,但也需要禁用设备自动检测模块,而我不想这样做。
在“声音”设置中,每个输出设备都有一个“模式”选项,用于配置 PulseAudio 为该设备使用的通道图。它有“模拟立体声输出”和“模拟环绕 5.1 输出”等选项。如果目标是不破坏默认配置,这似乎是可行的方法,在大多数情况下,默认配置确实运行良好。
问题是,我的扬声器实际上只是立体声,但我还有 6 个输出,我想以某种方式使用它们。我想它们可以作为额外的接收器公开。或者,如果我可以将这些额外的通道公开为“aux0、aux1、...”,我可以使用模块重映射接收器使它们看起来像额外的水槽。
我还有八个模拟输入和两个数字输入,但没有“模式”设置似乎可以全部显示它们。
那么问题来了:这些“模式”在哪里配置?或者,还有其他好的解决办法吗?
答案1
这里的例子对我有帮助:
https://wiki.archlinux.org/index.php/PulseAudio/Examples#Simultaneous_HDMI_and_Analog_Output
我最终得到以下内容~/.config/pulse/default.pa
:
# http://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/Modules/#index12h3
# https://wiki.archlinux.org/index.php/PulseAudio/Examples#Simultaneous_HDMI_and_Analog_Output
# remix=no is required, otherwise it will turn 2-channel sound into 4-channel sound and send it to all master channels
load-module module-remap-sink sink_name=headphones remix=no master=alsa_output.pci-0000_00_1b.0.analog-surround-40 channels=2 master_channel_map=front-left,front-right channel_map=front-left,front-right sink_properties=device.description=Headphones
load-module module-remap-sink sink_name=speakers remix=no master=alsa_output.pci-0000_00_1b.0.analog-surround-40 channels=2 master_channel_map=rear-left,rear-right channel_map=front-left,front-right sink_properties=device.description=Speakers
# sending output to this goes to both
# replacing "0" with "alsa_output.pci-0000_00_1b.0.analog-surround-40" might work, but this also does
update-sink-proplist 0 device.description="Both"
# this renames the virtual streams, which show up in KMix. It's handy, since KMix can't show more than one sink for master volume in the popup
update-sink-input-proplist 0 media.name="Headphones"
update-sink-input-proplist 1 media.name="Speakers"
master=...
根据需要替换您的设备名称( )。
笔记:您必须先复制/etc/pulse/default.pa
到系统文件~/.config/pulse/default.pa
,然后再编辑它,因为如果用户文件存在,pulseaudio 根本不会从系统文件读取。从此以后,您必须将系统文件中的任何更改合并到您的个人文件中。或者,您可以只编辑系统文件,但随后它可能会被更新覆盖,这会使您的所有工作付诸东流!(或者 dpkg 可能会提示您手动合并它们,但如果您没有注意到怎么办?(在etckeeper
此处插入建议。))
这里还有一个例子:
http://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/Modules/#index12h3
但它使用辅助通道,这更令人困惑。使用后就remix=no
没有必要了。
现在我不知道您对 kludge 的定义是什么,但您应该能够使用这些示例以及 PA Wiki 或进行一些谷歌搜索来获得其余信息。对于您的额外渠道,wiki 列出了以下内容:
频道图。以逗号分隔的频道名称列表。当前定义的频道名称为:左、右、单声道、中、前左、前右、前中、后中、后左、后右、lfe、低音炮、前中左、前中右、左侧、右侧、辅助 0、辅助 1 至辅助 15、顶部中心、顶部前左、顶部前右、顶部前中、顶部后左、顶部后右、顶部后中,(默认值取决于频道数量和驱动程序)
顺便说一句,该pacmd
工具使用与文件完全相同的命令default.pa
,因此您可以以交互方式进行更改,然后将工作命令粘贴到 中default.pa
,只是不必pacmd
在每个命令中都粘贴。请注意,与在 中执行相比,您可能必须先执行一些略有不同的操作,例如先卸载某些模块,default.pa
因为 pulseaudio 已在运行。我花了一些时间为此绞尽脑汁。 (:v)