Xubuntu 13.10 上的默认播放音频输出

Xubuntu 13.10 上的默认播放音频输出

我最近从 Xubuntu 13.04 升级到了 13:10,从那时起,当我启动 PC 时就没有声音了,因为它被发送到 HDMI 输出(我的电视)。我希望它像以前在 13.04 上一样转到模拟输出(我的 PC)。我可以使用脉冲音频音量控制程序进行更改,但重启后我的设置会丢失。

脉冲音频音量控制在“输出设备”选项卡中没有我的“模拟输出”作为有效选项;它仅在我在“配置”选项卡中选择“模拟立体声”后才出现。然后我选择它作为我的“后备”设备(我认为这意味着默认设备?),但我的更改在重新启动之间没有保存。

使用“配置”选项卡将输出设备更改为“模拟立体声”后,我必须使用“播放”选项卡更改单个程序的输出,因为它使用当前默认值(HDMI)。

我尝试使用 pacmd 设置我的默认音频设备,但是没有帮助:当我运行时,我的模拟设备确实显示为活动接收器pacmd list-sinks,但它不是音量控制(在配置选项卡中)中选择的设备,所以除非我手动更改它,否则我听不到任何声音。

有人知道如何在重启之间保留我的声音设置吗?

===== 编辑 =====

这是我启动电脑后一些 pactl 命令的输出;缺少模拟立体声源:

$ pactl list sources short
0   alsa_input.usb-046d_08b2-01-U0x46d0x8b2.analog-mono module-alsa-card.c  s16le 1ch 44100Hz   SUSPENDED
1   alsa_output.pci-0000_00_1b.0.hdmi-stereo.monitor    module-alsa-card.c  s16le 2ch 44100Hz   SUSPENDED

$ pactl list sinks short
0   alsa_output.pci-0000_00_1b.0.hdmi-stereo    module-alsa-card.c  s16le 2ch 44100Hz   SUSPENDED

然后我打开脉冲音频音量控制并从配置选项卡中选择“模拟立体声”项。再次运行相同的命令会得到:

$ pactl list sources short
0   alsa_input.usb-046d_08b2-01-U0x46d0x8b2.analog-mono module-alsa-card.c    s16le 1ch 44100Hz IDLE
1   alsa_output.pci-0000_00_1b.0.hdmi-stereo.monitor    module-alsa-card.c  s16le 2ch 44100Hz   IDLE
2   alsa_output.pci-0000_00_1b.0.analog-stereo.monitor  module-alsa-card.c  s16le 2ch 44100Hz   IDLE

$ pactl list sinks short
0   alsa_output.pci-0000_00_1b.0.hdmi-stereo    module-alsa-card.c  s16le 2ch 44100Hz   IDLE
1   alsa_output.pci-0000_00_1b.0.analog-stereo  module-alsa-card.c  s16le 2ch 44100Hz   IDLE

模拟立体声源存在,我可以通过电脑扬声器听到声音。但是当我重新启动电脑时,设置丢失了,我找不到从命令行恢复它们的方法。

谢谢。

答案1

我也遇到了同样的问题。我不是专家,但这对我有用。

据我了解,问题在于 pulse 默认加载声卡的 hdmi 配置文件。这意味着即使你将默认接收器设置为 alsa_output.pci-0000_00_1b.0.analog-stereo,当 pulse 尝试使用该接收器时,它也无法找到它。

我发现的解决方案是手动配置脉冲,使其在启动时加载所需的配置文件。为此,您必须编辑/etc/pulse/默认.pa并在文件末尾添加以下三行

set-card-profile alsa_card.pci-0000_00_1b.0 output:analog-stereo
set-default-sink alsa_output.pci-0000_00_1b.0.analog-stereo
set-default-source alsa_output.pci-0000_00_1b.0.analog-stereo.monitor

第一行设置所需的卡配置文件。在我的例子中是输出:analog-stereo,您可以获得运行配置文件的完整列表:

pactl list cards

第二行和第三行分别设置默认输出和输入。

您还可以添加配置,以便 alsa 使用 pulse。在您的主目录中查找.asoundrc文件,如果文件不存在,则创建它并在其中写入:

pcm.pulse {
     type pulse
}
ctl.pulse {
     type pulse
}
pcm.!default {
     type pulse
}
ctl.!default {
     type pulse
}

然后重新启动。

现在您应该默认可以从电脑扬声器听到音频。

希望这有帮助。

答案2

我遇到了完全相同的问题。我在 Arch Linux 论坛上找到了类似的问题并使用了此方法。

跑步:

pacmd list-cards

您应该会得到您拥有的卡片列表,每张卡片都会有一个配置文件列表。获取您想要的卡片的索引号。我的卡片索引是 0,我想要的配置文件名为output:analog-stereo"

跑步:

pacmd set-card-profile 0 output:analog-stereo

一切正常!为了使它永久生效,我编辑了/etc/pulse/default.pa并在底部添加了:

set-card-profile 0      output:analog-stereo
set-default-sink 1

重新启动 pulseaudio 后,似乎一切都设置好了。

相关内容