一、环境介绍
操作系统: 虚拟机运行的Ubuntu18.04 64位
二、解决的问题
情况说明: 当前ubuntu18.04上有多个声卡设备,两个麦克风(1个USB声卡带的麦克风、1个内置麦克风)、2个扬声器设备(内置外放扬声器、USB接口扬声器)。
目的: 想要设置系统默认使用USB接口扬声器放音。
三、安装pavucontrol命令
一般情况下,系统都自带该命令,无需再下载,如果没有就下载。
代码语言:javascript复制sudo apt-get install pavucontrol
四、pavucontrol命令使用
pavucontrol命令功能比较强大,可以禁用指定声卡、可以选择指定声卡只能录音或者只能放音,用来切换声卡非常方便。
pavucontrol命令的使用帮助请看这里:https://wiki.archlinux.org/index.php/PulseAudio#default.pa
需要注意的问题: pavucontrol 命令打开界面设置的信息只能本次有效,如果系统重启,配置也会还原,也就是说设置之后不会永久保存。
五、永久保存默认声卡的设置
如果不想每次开机都设置一次,可以将配置写入到配置文件:/etc/pulse/default.pa
5.1 查看当前系统可用的音频端口
使用排除法,先把USB声卡拔掉,然后再插上,确定那个端口是USB那个端口是电脑内置的。
具体代码看下面:
代码语言:javascript复制wbyq@wbyq:~$ pacmd list | grep "active port"
active port: <analog-output>
active port: <analog-input-mic>
wbyq@wbyq:~$ pacmd list | grep "active port"
active port: <analog-output>
active port: <analog-output-speaker>
active port: <analog-input-mic>
active port: <analog-input-mic>
根据打印的结果,可以知道USB声卡的输出端口是:active port: <analog-output-speaker>
5.2 查看音频端口的节点编号
将打印的数据输出到text.txt文本文件中。
代码语言:javascript复制wbyq@wbyq:~$ pacmd list >text.txt
然后使用gedit打开文本文件,搜索active port 字段。
代码语言:javascript复制wbyq@wbyq:~$ gedit text.txt
搜索到之后,再向前翻,找到 index 字段,找到这个声卡对应的编号。
确定节点编号是12之后,就设置配置文件。
5.3 修改配置文件
代码语言:javascript复制sudo gedit /etc/pulse/default.pa
在文件末尾增加一行代码: 其中的12就是找到编号,analog-output-speaker 是使用的声卡端口名称,前面查找到的。
代码语言:javascript复制set-sink-port 12 analog-output-speaker
重启即可生效。