我正在开发一个跨平台的音频编辑器(C++),它具有特定于平台的AudioDevice
类实现。这个类播放内存缓冲区中的声音。主要操作系统是Linux,但有时我也会关注windows端口。
当前的windows实现使用waveOutOpen()
、waveOutPrepareHeader()
、waveOutWrite()
接口,我认为它已被弃用(我不知道确切的原因)。但最重要的是,这个界面仍然在Windows7中得到支持和工作,我不认为微软会扼杀它的原因
不管怎样,我应该换一个更好的界面吗?
wave函数已经被弃用好几年了(主要是在NT平台上支持DirectX之后)。您应该使用DirectX(DirectSound和/或DirectShow)API。
http://msdn.microsoft.com/en-us/library/windows/desktop/ee416960(v=vs.85).aspx
http://msdn.microsoft.com/en-us/library/windows/desktop/dd375454(v=vs.85).aspx