自定义Linux系统中gst-play-1.0占用音频设备致speaker-test报错求助
解决gst-play-1.0占用ALSA音频设备导致speaker-test无法使用的问题
直接解决方法:终止占用进程
从你提供的lsof输出可知,PID为29的gst-play-1.0进程仍在占用/dev/snd/pcmC0D0p设备,终止该进程即可释放资源:
- 通过PID终止进程:
如果进程无响应,使用强制终止命令:kill 29kill -9 29 - 也可以按进程名批量终止所有
gst-play-1.0进程:pkill gst-play-1.0
验证资源是否释放
执行以下命令确认设备已被释放:
lsof /dev/snd/pcmC0D0p
如果没有任何输出,说明设备已释放,此时重新运行你的speaker-test命令即可:
speaker-test -p 1000 -t wav -c 6 -s 6
预防建议
- 后续使用
gst-play-1.0播放音频时,尽量通过正常方式退出(播放完成后按q键),避免进程僵死导致设备独占。 - 若此类问题频繁出现,可以考虑部署PulseAudio作为音频中间层,它会自动管理音频设备的共享,避免单个进程长期独占硬件设备。
内容的提问来源于stack exchange,提问作者Mobin
相关产品推荐
相关产品推荐

