我将在以下位置进行申请:
从麦克风录音并在输入上进行一些实时处理
播放MP3文件(常规歌曲),但实时处理输出
我偶尔也会需要在这首歌上播放其他声音,但是我想我可以通过简单地添加缓冲区来做到这一点。
简而言之,我需要同时具有用于记录和播放的循环缓冲区,并且需要每20毫秒左右将即将播放的新数据“馈入”输出缓冲区。
我一直在看DirectSound,但似乎并没有太大帮助。读取和写入输出缓冲区似乎与Win32非常相似,唯一似乎可以帮助在主歌曲上播放“其他声音”的地方。
我应该使用DirectSound,还是应该直接使用原始Windows API?
DirectSound会为我做任何事情吗?
提前致谢!
Directsound API为您提供更好的实时控制。它们也是Windows中使用声音的受支持方式。我的印象是win32 api被弃用了,但是我对此可能是错的。
这个问题很接近你
/sf/ask/17360801/
也
DirectSound是Windows最好的音频抽象层吗?
最后但并非最不重要的一点,这就是微软必须说的 http://msdn.microsoft.com/zh-cn/library/dd370784(VS.85).aspx
都不行 :)
故事是DirectSound替代了WaveOut,但DirectSound在Vista中已作为DirectAPI加入了DirectInput,并已被WASAPI取代。DirectSound和waveOut在Vista中的用户空间WASAPI之上实现。在XP上,waveOut和DirectSound将馈入相同的内核级Mixer API。
为了整合所有这些接口,请看一下OpenAL之类的东西,它是受支持的音频标准,与OpenGL相同。