WASAPI、DirectSound/DS、WaveOut、Kernel Streaming/KS

先放结论:程序员

  • ASIO:硬件支持+对应驱动程序
  • DS:兼容性最好,通常也是默认的。
  • WASAPI:是Vista以后的,较佳选择输出方式。

再来详细看:编程

ASIO、WDM都是指音频通道,就是音频数据走的路。
ASIO指的是ASIO音频通道;WDM是指WDM类型的音频通道,具体包括WaveOut、DirectSound(简称DS)、Kernel Streaming(简称KS),Windows Vista和7 还比XP多了WASAPI。
具体体如今各个音频播放、录音软件的设置里,好比Foobar2000等。架构

打形象的比喻,音频数据是车,操做系统的音频部分是一条路。
WaveOut、DirectSound(简称DS)就比如最通常的公用车道,你们能够并行走(程序能够一块儿发声),但要受到一些旁车的影响。
Kernel Streaming(简称KS),WASAPI比如在这条操做系统音频之路上划出一条专用道,只容许一个车走,虽然还走着一条路,但没有干扰了,程序独占。
ASIO就比如我压根不走操做系统那条路了,我本身专门再修一条新路,本身走本身的,不过操做系统公共音频部分了。
其实ASIO最有价值的地方在于录音,它的最大特色在于声音数据在通道里通行快,延时小(音频传输是须要若干毫秒的时间的,对于精确录音和声音混音合成,非常敏感)。编程语言

 

DS就是DirectSound的首字母缩写,DirectSound是DirectX的一部分,而DirectX则是被不少游戏玩家所熟知,DirectX是由微软建立的多媒体编程接口,由C++编程语言实现,遵循COM。DirectX是Windows平台下最通用最成熟的接口,多媒体软件大多采用了DirectX API。经过DS输出可为开发者和用户带来许多便利,FB2K下使用DS输出则是能够实现渐响、淡出等功能,还能支持声卡所带的音效,因此小编并非推荐各位网友使用DS输出来播放无损音乐。操作系统

 

ASIO全称Audio stream input output,是德国Steinberg公司所提出的,主要目的是为了解决PC音频方面的输入输出的延迟问题,因为系统自带的音频输出方式通常延迟都大于10ms,虽然10ms并不算长,但仍旧是没法知足专业领域的严苛需求的,因而ASIO便针对延迟问题进行了深度设计,使其输出输入延迟可以低于10ms,甚至还能低于1ms,彻底可以知足专业音乐制做的需求,聆听音乐选择该方法输出,主要目的确定不是下降延迟了,而是为了能避开系统重采样、音效以及规格化处理,因为ASIO低延迟设计,因此在输出过程中不会引入任何处理,但ASIO缺点也是很明显的,ASIO是须要驱动层面的支持,并非全部声卡都带有ASIO驱动,虽然有第三方驱动,但效果可能不尽如人意。设计


WASAPI全称Windows Audio Session API,是微软Vista以后所引入的,Vista当中微软重写了音频架构,提出了一套新的通用架构,Universal Audio Architechture(UAA),并增长了全新的WASAPI,WASAPI为程序开发者提供了两种模式,共享模式(Shared Mode)和独占模式(Exclusive Mode),使用独占模式时能够和ASIO输出达到类似的效果,此时声卡被某一程序独占,只有该程序能使用声卡,其余程序均不能占用声卡,并且独占模式时,系统不也会干涉音频流,直接将其交给声卡驱动进行输出,声卡自带的音效以及系统重采样均不会起到做用,可输出纯净的声音,接口

【在过去,声卡厂商例如Creative、Realtek等,为了让使用者透过自家编写的控制台来进行各方面关于音频设备的设定,因此编写驱动程序时,必须在Kernel Mode(内核模式)这个层级撰写至关多的代码来提供调用,使得使用者的操做设定可以直达硬件层。然而这对于系统的稳定度是一个很很差的影响,稍微有一点点意外情况,会由于这些功能跑在Kernel Mode而致使系统死机。在 Vista 时代有所改善了。Microsoft要求全部音频设备的厂商必须遵循UAA的架构来开发驱动程式,也为了配合UAA架构,Vista能够说是整个翻新了音讯处理流程,许多本来须要写在Kernel Mode的声卡功能,须要改写到User Mode(用户模式)去,进而增长了系统稳定度。】游戏


KS(Kernel Streaming)输出是一种比较老旧的输出方式,主要使用在没有WASAPI的XP以及以前版本的Windows系统当中,KS最先出如今Windows 98当中,它容许程序员可以为多媒体设备实时的处理音频流,效果和ASIO、WASAPI相似,均可以避开系统对音频的音效处理或是规格化,从Vista开始KS已经逐渐被WASAPI所取代了,目前支持的软件并很少。开发

相关文章
相关标签/搜索