如果 /dev/dsp 存在,为什么大多数应用程序会尝试使用 OSS?

如果 /dev/dsp 存在,为什么大多数应用程序会尝试使用 OSS?

/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 支持!将来我可能会改变我的态度。]

相关内容