Rey*_*ato 6 sound multiple-monitors pulseaudio hdmi
我有一个双显示器设置,每个显示器都可以播放音频,连接到一个 RX5700XT GPU。
现在我可以从声音设置中选择其中一个作为输出设备。
我想要做的是将两者合并为一个输出设备,以便我可以同时使用两台显示器播放音频。实现这一目标的最简单方法是什么?
谢谢你。
首先,备份您的 PulseAudio 配置$sudo cp /etc/pulse/default.pa /etc/pulse/default.pa.bak
完成后,我们将检查硬件播放设备列表并记下我们正在寻找使用的设备$ aplay -l
。你的输出应该是这样的:
记下您想要合并在一起的输出的卡 ID和设备 ID。现在我们将尝试使用alsa-sink 模块为每个输出创建一个新的接收器(您应该真正遵循此链接)。打开任何文本编辑器并复制/粘贴:
load-module module-alsa-sink device="hw:[CARD_ID],[DEVICE_ID]" sink_name=vsink_[CARD_ID][DEVICE_ID] sink_properties="device.description='HDMI [DEVICE_ID] VSINK' device.icon_name='audio-card'"
Run Code Online (Sandbox Code Playgroud)
将[CARD_ID]
和更改[DEVICE_ID]
为您在上一步中记下的内容。您应该拥有与要组合的输出一样多的代码行,以及它们各自的CARD_ID
和DEVICE_ID
。
完成此步骤后,我们将使用组合接收器模块(您也应该遵循此模块),以便我们可以将输出“粘合”在一起。将其复制并粘贴到编辑器中:
load-module module-combine-sink sink_name=combined_vsink slaves=[first vskink name],[second vsink name],[n vsink name] sink_properties="device.description='[a name for your combined vsink' device.icon_name='audio-card-symbolic'"
Run Code Online (Sandbox Code Playgroud)
最后你应该有这样的东西:
完成配置后,我们必须将其加载到 PulseAudio 配置中(我们首先对其进行了备份)。打开它进行编辑gedit admin:///etc/pulse/default.pa
并搜索此部分:
### Load audio drivers statically
### (it's probably better to not load these drivers manually, but instead
### use module-udev-detect -- see below -- for doing this automatically)
#load-module module-alsa-sink
...
...
Run Code Online (Sandbox Code Playgroud)
如果您以前从未编辑过此文件,那么您会看到更多注释行。在该部分的最后一行之后粘贴您的行。在下面,您将找到我的模拟文件,您的文件在粘贴后应如下所示:
### Load audio drivers statically
### (it's probably better to not load these drivers manually, but instead
### use module-udev-detect -- see below -- for doing this automatically)
load-module module-alsa-sink device="hw:0,0" sink_name=vsink_00 sink_properties="device.description='HDMI0:0 VSINK' device.icon_name='audio-card'"
load-module module-alsa-sink device="hw:0,1" sink_name=vsink_01 sink_properties="device.description='HDMI0:1 VSINK' device.icon_name='audio-card'"
load-module module-combine-sink sink_name=combined_vsink0 slaves=vsink_00,vsink_01 sink_properties="device.description='HDMI0:0 + HDMI0:1' device.icon_name='audio-card-symbolic'"
Run Code Online (Sandbox Code Playgroud)
现在我们已经做到了这一点,为了让它持续工作,我们必须停用 PulseAudio udev-detect 模块(我保证这是最后一个),这样它就不会覆盖我们在尝试配置时手动所做的更改系统。您会发现这样的部分,请确保注释其所有行:
### Automatically load driver modules depending on the hardware available
#.ifexists module-udev-detect.so
#load-module module-udev-detect
#.else
### Use the static hardware detection module (for systems that lack udev support)
#load-module module-detect
#.endif
Run Code Online (Sandbox Code Playgroud)
现在,要完成我们的编辑,只需在文件的最后一行将新接收器设置为默认接收器:
set-default-sink combined_vsink0
保存文件,然后让我们重新启动 PulseAudio 并检查一切是否正常工作pulseaudio --kill && pulseaudio --start
,然后确保检查您的级别是否设置正确,alsamixer
因为它有时会默认加载静音的新输出。完成后,检查系统设置以选择新创建的输出。
如果您遇到任何问题,您可以随时使用备份文件恢复您的 PulseAudio 配置,我确信您在第一步中创建了该文件。
这可以通过使用脉冲音频 CLI 创建一个合并其他两个接收器(您的声卡)的新接收器来实现。
首先获取接收器的名称:
pacmd list-sinks
Run Code Online (Sandbox Code Playgroud)
然后创建一个新的接收器
pacmd load-module module-combine-sink sink_name=combined slaves=sink1-name,sink2-name
Run Code Online (Sandbox Code Playgroud)
其中sink1-name和sink2-name是第一个命令的输出中接收器的名称
您现在应该有一个新的接收器,您可以选择将声音输出到两个设备
归档时间: |
|
查看次数: |
1616 次 |
最近记录: |