4

DirectSound 是 Windows 的最佳音频抽象层吗?将我的应用程序从构建到特定芯片组的非常糟糕的声音实现切换到抽象层。

应用程序是本机 Winform,.net 3.5。DirectX/DirectSound 是可能的选择,但有点担心开销。还有其他选择吗?或者考虑其他事情是愚蠢的?

4

6 回答 6

6

DirectSound 现在不像过去那样受到微软的喜爱。就 DirectX 而言,您可以尝试 XAudio2 或 XACT。有些人喜欢那些,有些人讨厌他们。XAudio2 更底层,而 XACT 则相当高级。两者都可以从 Microsoft XNA 访问,它类似于 Managed DirectX,但正在积极开发中。

但是你并不局限于使用 DirectX 附带的东西。如果您想要很棒的东西,请尝试FMod 。他们仍然有共享软件/爱好者许可模式和免费软件许可模式,以防您不想花大价钱。

您的选择取决于您想要对声音做什么。

于 2008-10-01T15:48:40.627 回答
2

看看SDL是否看起来更好。

于 2008-10-01T15:46:47.917 回答
2

好吧,你可以试试OpenAL。OpenGL 之于 Direct3D 就是 OpenAL 之于 DirectSound(3D)。该界面与 OpenGL 非常相似,如果您不喜欢它,您可能也会不喜欢 OpenAL。此外,我不确定这个库的 Windows 版本是自己的、本机实现还是只是调用 DirectSound,因此可能只是它上面的一个(薄?)包装器。

于 2008-10-01T16:36:48.887 回答
1

DirectSound 很不错。

如果您需要低延迟或同时通过多个声卡对声音输入和输出提供良好支持,您可能还想看看 ASIO:

http://de.wikipedia.org/wiki/Audio_Stream_Input/Output

于 2008-10-01T15:58:51.210 回答
1

waveOut... API仍然是一个选项。从托管代码中处理起来很棘手,但是您可以通过这种方式一次播放多个声音(至少在 XP 和 Vista 中)。

如果你只是偶尔需要播放声音,System.Media.SoundPlayer非常好用。但是,您不能使用此组件一次播放多个声音。

DirectSound 是您唯一的其他主要选择。它有一个内置的软件合成器,如果你需要的话。

编辑:SDL 看起来很有趣。谢谢,思进。

于 2008-10-01T16:10:33.787 回答
0

SharpDX看起来很有趣。由于后者的 x86 限制,我计划尝试将其作为托管 DirectX 的替代品。

于 2011-09-22T03:55:21.323 回答