Ubuntu 20.04环境下OpenAL无法识别播放与采集设备问题求助
问题原因
报错中提到的/dev/dsp是老牌OSS音频体系的设备文件,Ubuntu 20.04 默认已经废弃OSS框架,改用ALSA+PulseAudio的音频栈,而系统预装的OpenAL默认后端优先级配置错误,优先尝试调用OSS接口导致找不到可用设备。你执行aplay正常说明底层ALSA服务无异常,仅需调整OpenAL的后端配置即可解决。
解决步骤
1. 调整OpenAL后端优先级(首选方案)
在当前用户目录下创建OpenAL软实现的配置文件.alsoftrc:
nano ~/.alsoftrc
写入以下配置,指定优先使用PulseAudio、其次ALSA,最后才尝试OSS后端:
[general] drivers = pulse,alsa,oss
保存退出后,重新执行openal-info验证,正常情况下已经可以识别到可用的播放/采集设备。
注意:如果你需要用
sudo执行你的OpenAL程序,需要同时给root用户也写入该配置,执行sudo nano /root/.alsoftrc粘贴相同内容即可。
2. 补全OpenAL后端依赖
如果修改配置后依然无法识别设备,执行以下命令安装完整的OpenAL后端支持包:
sudo apt install --reinstall libopenal1 libopenal-dev openal-soft pulseaudio-alsa
安装完成后再次执行openal-info验证。
3. 临时兼容方案(不推荐长期使用)
如果确实需要兼容OSS接口,可手动加载OSS兼容内核模块:
sudo modprobe snd-pcm-oss
该方案重启后会失效,如需永久生效可将snd-pcm-oss写入/etc/modules-load.d/oss.conf文件。
内容的提问来源于stack exchange,提问作者Phippsy
相关产品推荐
相关产品推荐

