背景说明:
之前使用的是PulseAudioPulseAudio 是默认的音频服务器和音频框架,因此大多数应用程序通过 PulseAudio 来处理音频
补充:PluseAudio 和 ALSA的关系 : ALSA是最底层的,PluseAudio是一个开源库,基于ALSA。
有一些应用程序直接使用 ALSA(Advanced Linux Sound Architecture)来与音频硬件交互。在这些情况下,ALSA 直接与音频硬件通信,绕过了 PulseAudio。
解决思路一:PulseAudio不支持以root运行,我们如何让其以root用户执行呢?
解决方式零(有一定几率成功):
Ubuntu20.04中普通账户有声音root账户没声音终极解决办法,亲测有效。_sudo模式下运行程序没有声音-CSDN博客
思路二:跳过PulseAudio,使用aplay + 指定声卡
使用aplay,这个跳过了 PulseAudio,是ubunut原生的播放,同时我们还要指定声卡
#获取声卡
aplay -L | grep plughw
#指定声卡播放
aplay -D {audio_device_index} {audio_file}
直接把整一行的字符串都当作audio_device_index
用了这种方式之后,再也没有出现播放不出来的问题了