我正在尝试调试一个使用旧版 OSS/dev/audio
接口播放声音的程序。但是,Ubuntu 和其他操作系统不再包含接口/dev/audio
。有没有比较现代的 Linux 发行版可以下载到虚拟机中进行测试?
答案1
如果你的电脑使用 PulseAudio(Ubuntu 支持),请通过以下方式运行该程序padsp
:
padsp yourprogram
它将拦截打开/dev/audio
、/dev/dsp
和其他相关设备(使用 LD_PRELOAD 共享库)的尝试,并将声音直接发送到 PulseAudio。
对于使用普通 ALSA 的系统,等效于aoss
来自“alsa-oss”包。
aoss yourprogram
aoss
也应该可以在 Ubuntu 上运行,因为默认情况下 ALSA 本身是通过 PulseAudio 重新路由的,但padsp
在这种情况下使用效果更好。
大多数内核还具有snd-pcm-oss
模块,它提供使用 ALSA 的真实设备/dev/dsp
和/dev/audio
:
sudo modprobe snd-pcm-oss
yourprogram
我听说它的效果不如aoss
,但我不确定它是否有效根本当 PulseAudio 运行时。
答案2
Linux 内核版本 4.15 中已删除对 /dev/audio 的支持,因此您需要寻找 CentOS 7.x 之类的发行版或任何基于旧内核的发行版。请确保使用 modprobe 安装 snd-pcm-oss 和 snd-mixer-oss 内核模块。