在解决了无法解决的 pulseaudio 问题后,我决定使用简单的 sudo apt-get purge pulseaudio 恢复到 alsa。
这对我来说很有用,但是将默认设备更改为我的 USB 耳机很困难,因为我想要切换它们而不是为整个会话设置默认值。
答案1
我目前正在使用的解决方案是通过在我的主文件夹中创建 .asoundrc 文件并添加代码来更改默认设备:pcm.!default {type hw card 2}
我知道运行时要从输出中指定卡 2:aplay -l
对于我来说,输出是这样的:
**** List of PLAYBACK Hardware Devices ****
card 0: SB [HDA ATI SB], device 0: ALC892 Analog [ALC892 Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: SB [HDA ATI SB], device 1: ALC892 Digital [ALC892 Digital]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: NVidia [HDA NVidia], device 3: HDMI 0 [HDMI 0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: NVidia [HDA NVidia], device 7: HDMI 1 [HDMI 1]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: NVidia [HDA NVidia], device 8: HDMI 2 [HDMI 2]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: NVidia [HDA NVidia], device 9: HDMI 3 [HDMI 3]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 2: Headset [Cyborg F.R.E.Q.5 Gaming Headset], device 0: USB Audio [USB Audio]
Subdevices: 1/1
Subdevice #0: subdevice #0
此后我使用以下命令重新加载 alsa:sudo alsa reload
不过,正在运行的程序仍然需要重新启动,但这是一个开始。
我使用这个奇怪的脚本在我的两张卡之间切换:
#!/bin/bash
currentSound=`cat currentSound`
if [ "$currentSound" == "0" ]; then
echo "pcm.!default { type hw card 2}" > ~/.asoundrc
echo "2" > currentSound
echo "2"
else
echo "pcm.!default { type hw card 0}" > ~/.asoundrc
echo "0" > currentSound
echo "0"
fi
sudo alsa reload
它创建一个文件,用于了解下一步需要交换什么。
它并不像 pulseaudio 那样无缝,但这是我目前所能想到的全部。