2024年6月6日发(作者:)

DirectSound 与Waveout的区别

Q Directsound 与 Waveout 有何不同?

A Waveout 是在32位的Windows上的一种老旧且过时,用来播放数字音讯的应用

程序接

口(Application

Programming Interface,简称API)。旧的Windows操作系统(如Win9x WinNT4)

在 Wav

eout 的完成度很高(因为 waveout 是针对这些操作系统设计的),如果你想获得最

的效能,你应该在这些操作系统上使用 Waveout 输出。然而 Waveout 的功能有所

局限

,它无法支持「混和多重音讯流」的功能。这显示在Win2kXP下的 Waveout,只是

为了

旧的软件的兼容性所提供的,也因此Win2kXP下 Waveout 的完成度很糟,它没有

使用任

何的硬件加速功能,所有的混音动作都是用软件来执行(因此当CPU的使用率很高时,

常会发生类似CD跳针的断音现象)。

Directsound 是种较新、较现代化的声音播放 API,都已经内建在最近的32位

Windows操

作系统中。

Directsound 支持混和多重音讯流、独立的音量控制、硬件加速层及硬件仿真层(如

某些功能硬件无法支持,可以用软件来仿真,因此程序设计师无须担心他们的新 l33t

码无法在旧的声霸卡16上运作)。一般来说,只要你的操作系统安装了适当的声卡驱

程序及最新的 DirectX,Direstsound 都应该可以运作的很好(除了WinNT4以外)。

Win2kXP下,Directsound 比 waveout 更好,因为在这些操作系统里,Directsound

完成度相对的比 waveout 来的更高(比 waveout 占用较少的CPU资源,自由度较

高,且