声音处理:应该使用DirectSound还是直接使用Win32 API?

Dan*_*ola 4 audio winapi directsound audio-recording audio-player

我将在以下位置进行申请:

  • 从麦克风录音并在输入上进行一些实时处理
  • 播放MP3文件(常规歌曲),但实时处理输出
  • 我偶尔也会需要在这首歌上播放其他声音,但是我想我可以通过简单地添加缓冲区来做到这一点。

简而言之,我需要同时具有用于记录和播放的循环缓冲区,并且需要每20毫秒左右将即将播放的新数据“馈入”输出缓冲区。

我一直在看DirectSound,但似乎并没有太大帮助。读取和写入输出缓冲区似乎与Win32非常相似,唯一似乎可以帮助在主歌曲上播放“其他声音”的地方。

我应该使用DirectSound,还是应该直接使用原始Windows API?
DirectSound会为我做任何事情吗?

提前致谢!

Gre*_*ndt 5

Directsound API为您提供更好的实时控制。它们也是Windows中使用声音的受支持方式。我的印象是win32 api被弃用了,但是我对此可能是错的。

这个问题很接近你

/sf/ask/22016571/

DirectSound是Windows最好的音频抽象层吗?

最后但并非最不重要的一点,这就是微软必须说的 http://msdn.microsoft.com/zh-cn/library/dd370784(VS.85).aspx


jos*_*rry 5

都不行 :)

故事是DirectSound替代了WaveOut,但DirectSound在Vista中已作为DirectAPI加入了DirectInput,并已被WASAPI取代。DirectSound和waveOut在Vista中的用户空间WASAPI之上实现。在XP上,waveOut和DirectSound将馈入相同的内核级Mixer API。

为了整合所有这些接口,请看一下OpenAL之类的东西,它是受支持的音频标准,与OpenGL相同。