> 文章列表 > Qt/QML编程学习之心得:ALSA音频开发(六)

Qt/QML编程学习之心得:ALSA音频开发(六)

Qt/QML编程学习之心得:ALSA音频开发(六)

Linux内核中对音频播放和捕获的最初支持是由开放声音系统(OSS)提供的。OSS API是为音频而设计的带有16位双通道回放和捕获的卡,以及随后的API通过open()、close()、read()和write()系统调用的标准POSIX。OSS的主要问题是,虽然基于文件的API实际上易于应用程序开发人员使用,不支持所需的一些功能用于高端音频应用,如非交错音频,或不同的示例格式支持和数字I/O,为此OSS提供了有限的支持虽然OSS在当前的内核中仍然受到支持,但自2.6.0版本以来,它已经被降级,取而代之的是ALSA子系统。

Sound System core音响系统核心:ALSA

如今,Linux内核中的声音设备驱动程序被高级Linux声音架构Advanced Linux Sound Architecture(ALSA)项目所涵盖,该项目提供音频和MIDI功能。它支持多种不同的声音,从消费卡到专业多声道卡,包括数字I/O或多声卡设置。上图描述了ALSA的基本结构、系统及其数据流。与以前的音响系统不同,如OSS、ALSA-native应用程序应该使用ALSA访问声音驱动程序,用户空间库(libasound),为应用程序提供通用API。库充当中硬件卡上方的统一层,使用和抽象最终在内核API中进行的更改以维护与现有ALSA本机应用程序的兼容性,因为它吸收