DirectSound是Windows的最佳音频抽象层吗? 将我的应用程序从非常糟糕的声音实现(针对特定芯片组构建)切换到abstration层。
应用程序是本机Winform,.net 3.5。 DirectX / DirectSound是可能的选择,但有点担心开销。还有其他选择吗?或者甚至想到其他任何事情都是愚蠢的?
答案 0 :(得分:6)
DirectSound今天没有像过去那样得到微软的同样的爱。就DirectX而言,您可以尝试使用XAudio2或XACT。有些人喜欢这些,有些人则讨厌他们。 XAudio2更低级,而XACT更高级。两者都可以从Microsoft XNA访问,它类似于Managed DirectX,但是正在积极开发。
但您不限于使用DirectX附带的内容。如果你想要一些好的东西,请尝试FMod。他们仍然拥有他们的共享软件/爱好者许可证模型和免费软件许可证模型,以防你不想支付一大笔钱。
您的选择取决于您对声音的确切要求。
答案 1 :(得分:2)
查看SDL是否更好。
答案 2 :(得分:2)
好吧,你可以试试OpenAL。 OpenGL对Direct3D来说是OpenAL到DirectSound(3D)。界面非常类似于OpenGL,如果你不喜欢它,你也可能不喜欢OpenAL。此外,我不确定这个lib的Windows版本是否是一个自己的本机实现,或者只是调用DirectSound,因此可能只是一个(瘦?)包装器。
答案 3 :(得分:1)
DirectSound相当不错。
如果您需要同时通过多个声卡进行声音输入和输出的低延迟或良好支持,您可能还想看看ASIO:
答案 4 :(得分:1)
waveOut ... API 仍然是一个选项。使用托管代码很棘手,但你可以一次播放多种声音(至少在XP和Vista中)。
如果您只是偶尔需要播放声音, System.Media.SoundPlayer 非常易于使用。但是,使用此组件一次不能播放多个声音。
DirectSound是您唯一的另一个主要选择。它有一个内置的软件合成器,如果这是你需要的东西。
编辑:SDL看起来很有趣。谢谢,Sijin。答案 5 :(得分:0)
SharpDX看起来很有趣。我计划将其作为Managed DirectX的替代品,因为后者的x86限制。