我最近从 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 后,似乎一切都设置好了。