音频api是什么意思
音频api是什么意思?
音频api是一种特殊的应用编程接口。在计算机系统中,如果需要输出音频,就要用特定的方法驱动编解码器、DAC等音频芯片。在调用音频芯片的过程中,需要一些特殊的应用编程接口,即音频API。
使用audio API,player等音频软件可以直接为API设计输出程序,而不需要针对不同的芯片使用不同的指令。常见的音频API有MME、DS、WDM、KS、WASAPI、ASIO等。
以MME为例,MME是最常见的Windows audio API,称为multi media Extensions,即多媒体扩展技术。历史悠久,兼容性好,基本上市面上所有设备都能很好的支持。属于高级API,不与硬件直接通信。它需要逐层接口来访问音频硬件,这也给它带来了高延迟。虽然这种延迟不会造成播放音频时音质的恶化,但是会对音频处理和录音产生很大的负面影响。
使用MME waveIn/waveOut API系列完成音频处理。程序启动后,用waveIn系列函数打开声卡输入功能,同时将缓冲区设置为足够小的值,然后开始将音频数据录制到设置的缓冲区。当缓冲区已满时,直接将缓冲区(WAVHDR)添加到waveOu级数函数的输出队列中。这种方法实现起来比较容易,但是缺点是MME是一个高级API,所以整个过程需要经过很多系统处理阶段,导致延迟比较大。如果缓冲太小,声音就会断断续续。一般来说,最小延迟可以是120ms左右。