更改默认声音设备

升级到Ubuntu 13.10后,我的声音停止了工作。 我最终发现Ubuntu选择了HDMI声音设备而不是我的模拟扬声器。 我切换到正确的设备,一切正常,直到我重新启动。 我现在必须在每次启动Ubuntu时选择正确的设备。 如何将扬声器设置为默认设备?

编辑:由于我升级到Ubuntu 14.04 Ubuntu现在默认选择板载声音设备,所以我不再有这个问题。

跑:

$ pacmd list-cards 

显示卡片的索引。 例如,我的pci声卡位于索引2.模拟输出的声音配置文件(再次作为示例)称为“输出:模拟立体声”。

然后:

 $ pacmd set-card-profile 2 output:analog-stereo 

将此设置为输出(试一试)。 要使其永久化,请编辑/etc/pulse/default.pa并添加:

 set-card-profile 2 output:analog-stereo set-default-sink 2 

重新启动pulseaudio或重新启动以检查持久性。

如果您还想设置麦克风(输入)默认值

 set-card-profile 2 output:analog-stereo+input:analog-stereo set-default-sink 2 

在Dash上,搜索多媒体系统选择器

打开它,在“ Audio选项卡中,您可以选择默认的音频输入和输出设备。

在此处输入图像描述

默认情况下,此应用程序安装在Ubuntu安装中。 但是,如果你不能以某种方式安装

 sudo apt-get install gnome-media 

如果未在Dash中显示,请运行:

 gksudo gedit /usr/share/applications/gstreamer-properties.desktop 

在生成的文本文件中,转到以NoDisplay=开头的行。 将NoDisplay=true更改为NoDisplay=false

对于Ubuntu 16.04来说,最简单的解决方案是创建一个脚本,该脚本在屏幕解锁时监听,而不是在系统唤醒时监听的脚本,因为在系统唤醒的瞬间似乎并非所有服务都可用。 我无法通过唤醒脚本让pulseaudio切换到HDMI声音但是使用解锁监听脚本成功修复了它:

 dbus-monitor --session "type='signal',interface='com.ubuntu.Upstart0_6'" | \ ( while true; do read X if echo $X | grep "desktop-lock" &> /dev/null; then echo "screen locked" elif echo $X | grep "desktop-unlock" &> /dev/null; then /usr/bin/pacmd set-card-profile 0 output:hdmi-surround+input:analog-stereo fi done ) 

您可以通过使用slots=在ALSA中订购声卡来设置默认值。

通过使用以下命令检查lsmod的输出,找到要使用的声卡的驱动程序模块名称: lsmod | grep -P '^snd[_]?[Az]*' lsmod | grep -P '^snd[_]?[Az]*'或只是lsmod 。 例如我的Creative X-FI Xtreme Gamer是snd_ctxfi ,我的板载是snd_hda_intel ,我的USB网络摄像头是snd_usb_audio

现在在文本编辑器或nano中打开相应的ALSA配置文件,例如sudo nano /etc/modprobe.d/alsa-base.conf并在底部按优先顺序添加以下内容(第一个声明变为默认值):

options snd slots=snd_ctxfi,snd_hda_audio,snd_usb_audio然后只保存CTRL+o+enterCTRL+x 。 重启,你可能会被排序。

如果您使用的是更新的3.x gnome,请显示您的启动器(默认Windows键)类型设置 – >声音。 选择其他默认值,关闭窗口。

选择声音窗口的图片

首先,感谢user224082提供的解决方案,帮助我发现了我需要的设备。

要找到您需要的ALSA设备:

  1. 使用多媒体系统选择器,选择ALSA –用于插件的 高级Linux声音架构
  2. 测试设备下的不同选项,直到选择所需的扬声器
  3. 记下“管道”框中的device=值。 我的是"hw:0,4"

一旦知道了所需的设备,请将其设置为默认设备:

通过输入sudo nano /etc/pulse/default.pa来编辑default.pa

在文件的最底部,添加:

 load-module module-alsa-sink sink_name=spkr device=hw:0,4 set-default-sink spkr 

用您的设备替换device= value。