首先介绍下背景,Linux 音频系统非常不完全简史:
1. OSS3 是 Linux 内核中比较老的声音系统,目前已逐渐废弃 2. OSS4 开发的时候是闭源软件,
所以 2002 年 ALSA 被用来替代 OSS3 作为 Linux 内核中的声音构架 3.
2007 年的时候 4Front ">Technologies 发布了
GPL 版本的 OSS4,此时 ALSA 已成气候
关于 ALSA,OSS4,PulseAudio 和 Jack 一知半解版介绍(Esd 等就此省略一万字):
1. ALSA 目前是 Linux 内核上标准的音频框架,
但是仅支持 Linux 系统,没有软件混响。对各种设备的支持非常全面。 2. OSS4 由于错过时机而没能成为官方内核的一部分,但是它的跨平台性远好于 ALSA,支持 Windows、BSD 和许多 UNIX,其 API 据说也更适合开发。OSS4 有实时、低延时的特性,支持软件混响,所有操作在内核层实现。但是对 USB 设备的支持明显薄弱许多。 3. PulseAudio 是为 POSIX 兼容环境设计的一个声音代理程序,内置软件混响。PulseAudio 可以将程序对声音系统的请求代理到 ALSA、OSS 等多种后端,甚至可以通过网络传输这些
讯息。 4. Jack 是一个专业级的声音服务系统,跨平台性强,其表现对内核的实时性要求较 PulseAudio 高一些,在一般的操作系统上 Jack 没有前者流行,今天我们不折腾这个。
Ubuntu 默认使用 ALSA 作为底层声音驱动,程序则与 PulseAudio 交互,这是一个很不错的方案。然而作者偶尔会遇到 ALSA 被独占其他软件无法发声的问题,才随着 #ubuntu-cn 上的 OSS4 热潮赶了把时髦。
换 OSS4 是要折腾的,折腾就是有风险的,以下为折腾的理由:
1. 默认的 ALSA 在你的电脑上不能正常工作
2. 纯粹喜欢 OSS4,不喜欢 ALSA
3. 想要
跟风折腾
换 OSS4 带来的具体好处:
1. 某些情况下音质更好
2. 低延迟,低 CPU 占用
3. 自带软件混响
4. 文档更全面
换 OSS4 带来的具体坏处:
1. 有些硬件不被支持
2. 对 midi 支持很差
3. USB 声音设备支持仍处于试验性阶段
4. 自己折腾可能会把系统声音系统搞跨