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

Fis*_*ish 6 upgrade sound xubuntu pulseaudio 13.10

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

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

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

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

有谁知道如何在重新启动之间保留我的声音设置?

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

这是我启动 PC 后一些 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
Run Code Online (Sandbox Code Playgroud)

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

$ 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
Run Code Online (Sandbox Code Playgroud)

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

谢谢。

小智 4

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

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

我找到的解决方案是手动配置脉冲,使其在启动时加载所需的配置文件。要实现此目的,您必须编辑/etc/pulse/default.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
Run Code Online (Sandbox Code Playgroud)

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

pactl list cards

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

您可以做的另一件事是添加 alsa 使用脉冲的配置。在您的主目录中查找.asoundrc文件,如果该文件不存在,则创建它并在其中写入:

pcm.pulse {
     type pulse
}
ctl.pulse {
     type pulse
}
pcm.!default {
     type pulse
}
ctl.!default {
     type pulse
}
Run Code Online (Sandbox Code Playgroud)

然后重新启动。

现在,默认情况下,您的电脑扬声器应该发出音频。

希望这有帮助。


小智 2

我遇到了这个完全相同的问题。我在Arch Linux论坛中发现了类似的问题并使用了这个方法。

跑步:

pacmd list-cards
Run Code Online (Sandbox Code Playgroud)

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

跑步:

pacmd set-card-profile 0 output:analog-stereo
Run Code Online (Sandbox Code Playgroud)

一切正常!为了使其永久化,我编辑/etc/pulse/default.pa并放在底部:

set-card-profile 0      output:analog-stereo
set-default-sink 1
Run Code Online (Sandbox Code Playgroud)

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