/dev/dsp
那么,如果 OSS存在于也可以使用更高级的音频服务器(ALSA 或 PulseAudio)的系统上,为什么大多数应用程序显然会尝试使用 OSS ?
我oss-compat
在 Debian Wheezy 上安装后遇到了这个问题。显然,例如以下应用程序似乎开始使用 OSS,无论其他可用:
- 播放器
- SDL(任何使用 SDL 库的内容,例如韦诺之战)
- mpg321
- 奥格123
- (第三方)Firefox 的(第三方)Flash 插件
尝试这样做的原因与问题不太相关,但是请检查这里如果有兴趣。
对我来说,如果应用程序(能够使用这些解决方案)首先探测更高级的音频解决方案,并且仅/dev/dsp
在找不到任何解决方案时才尝试访问 OSS ( ),这似乎更合乎逻辑。
答案1
如果应用程序首先探索更先进的音频解决方案似乎更合乎逻辑
我猜想这实际上有一个很大的优势,使用 ALSA API 做了一些工作。 这是你开始的地方,以便只播放准备好的 PCM 流。
现在我将引用维基百科开源软件API:
API 旨在通过特殊设备使用传统的 Unix 框架 open()、read()、write() 和 ioctl()。例如,声音输入和输出的默认设备是/dev/dsp。使用 shell 的示例:
cat /dev/urandom > /dev/dsp # plays white noise through the speaker cat /dev/dsp > a.a # reads data from the microphone and copies it to file a.a
您想从哪一个开始——更高级、更复杂的,还是简单、万无一失的?我想这取决于你想要做什么,但假设大多数应用程序只是想输出一些 pcm,写入/dev/dsp
应该没问题。
[我还假设纯 PCM能直接馈送到/dev/dsp
(如果不是那么什么?),但我无法测试它,因为我是个聪明人,我这里的所有机器都有自定义内核,没有 OSS 支持!将来我可能会改变我的态度。]