如何使用 PulseAudio 同时启用内置音频输出和 HDMI 音频输出?

tho*_*hon 20 debian audio pulseaudio hdmi

我几天来一直在寻找这个问题,并尝试了各种建议的解决方案,但没有任何成功。

基本上,我有一台带有内置音频(输出到耳机插孔或内置扬声器)和 HDMI 的笔记本电脑。我正在使用 KDE 运行 Debian 7.5。

以前,我只运行 ALSA,我能够将 Skype 配置为在 HDMI 上振铃,但使用耳机本身进行通话。我想使用 Pulse 实现类似的功能。

我不确定 Skype 在将铃声和通话音频发送到 PulseAudio 时是否仍然将它们分开,但是由于 Skype 的 Linux 版本可以在事件上运行任意脚本,如果我可以使用例如aplay在 HDMI 端口上播放某些内容,我会很高兴. 但是,无论我做什么,我总是只能看到(并且可以使用)一个输出设备。

aplay -l

**** 播放硬件设备列表 ****
卡 0:PCH [HDA Intel PCH],设备 0:ALC269VB 模拟 [ALC269VB 模拟]
  子设备:1/1
  子设备#0:子设备#0
卡 0:PCH [HDA Intel PCH],设备 3:HDMI 0 [HDMI 0]
  子设备:1/1
  子设备#0:子设备#0

aplay -L

默认
    通过 PulseAudio 声音服务器播放/录音
系统默认:卡=PCH
    HDA Intel PCH, ALC269VB 模拟
    默认音频设备
正面:CARD=PCH,DEV=0
    HDA Intel PCH, ALC269VB 模拟
    前置扬声器
环绕40:卡=PCH,DEV=0
    HDA Intel PCH, ALC269VB 模拟
    4.0 环绕声输出到前后扬声器
环绕41:卡=PCH,DEV=0
    HDA Intel PCH, ALC269VB 模拟
    4.1 环绕声输出到前置、后置和低音炮扬声器
环绕50:卡=PCH,DEV=0
    HDA Intel PCH, ALC269VB 模拟
    5.0 环绕声输出到前置、中置和后置扬声器
环绕51:卡=PCH,DEV=0
    HDA Intel PCH, ALC269VB 模拟
    5.1 环绕声输出到前置、中置、后置和低音炮扬声器
环绕71:卡=PCH,DEV=0
    HDA Intel PCH, ALC269VB 模拟
    7.1 环绕声输出到前置、中置、侧置、后置和低音扬声器
hdmi:卡=PCH,DEV=0
    HDA 英特尔 PCH,HDMI 0
    HDMI 音频输出

当我尝试直接使用hdmi设备时,出现以下错误:

$ aplay -D hdmi alert.wav
播放 WAVE 'alert.wav' : Signed 16 bit Little Endian, Rate 22050 Hz, Mono
aplay: set_params:1087: 通道数不可用

在 中pavucontrol,在“配置”选项卡下,我看到一个Profile包含以下选项的下拉列表:

模拟立体声双工
模拟立体声输出
模拟立体声 (HDMI) 输出 + 模拟立体声输入
模拟立体声 (HDMI) 输出
模拟立体声输入
离开

据我所知,所有这些都按(可能)预期的方式工作:那些说 HDMI 将音频输出定向到 HDMI 端口的;其他到内置声卡。无论我选择哪一个,我总是只能在“输出设备”选项卡下看到一个输出设备。

我已经尝试将内置或 HDMI 设备添加到/etc/pulse/default.pa使用load-module module-alsa-sink device=hw:0,0load-module module-alsa-sink device=hw:0,3- 这些似乎没有效果,或者使pulseaudio根本不显示任何配置文件。

cat*_*nor 12

多亏了 ArchLinux wiki 中说明,我才设法准确地进行了配置:

设置一个接收器 - HDMI - 在 pavucontrol/Configuration 中,另一个 - 模拟输出 - 您在default.pa

load-module module-alsa-sink device=hw:0,0
load-module module-combine-sink sink_name=combined
set-default-sink combined
Run Code Online (Sandbox Code Playgroud)

也许你错过了最后两行?

附录:将模拟输出添加到 HDMI 是可以的,但是如果您想要相反的方式怎么办?(我想保持模拟输入,脉冲电话说,“双工” ......)不幸的是,load-module module-alsa-sink device=hw:0,3没有工作HDMI输出增加脉冲的“模拟立体声双面”的配置。脉冲会启动,但没有 HDMI 输出。

我比较了pacmd list-sinks两种情况下的输出。当我添加时device=hw:0,3,那个会显示没有端口。在pavucontrol中选择HDMI输出时,会有端口。查看输出详细信息,我想出了device=hdmi:0

选择“模拟立体声双工”作为您的 pavucontrol 配置,并添加到default.pa

load-module module-alsa-sink device=hdmi:0
load-module module-combine-sink sink_name=combined
set-default-sink combined
Run Code Online (Sandbox Code Playgroud)

奇迹般有效。我保留我的麦克风输入,在 pavucontrol/Output Devices 上我有模拟输出HDMI 的所有选项。