如何才能通过 PulseAudio 轻松访问声卡上的附加频道?

如何才能通过 PulseAudio 轻松访问声卡上的附加频道?

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)

相关内容