我知道这可能听起来像是一个主观问题,但我需要一些有关这一主题的有根据的意见:
在C#/ WPF GUI中,我需要播放短波文件作为对用户交互的响应 规格如下:
到目前为止,我与DirectSound(使用Microsoft DirectX SDK)相处得很好,它符合上面提到的所有要求。从Visual Studio 2010(.Net 4.0)开始,Managed DirectX(MDX)不再受支持,并且它也从最新的DirectX SDK中消失。
我现在有什么选择?
我真的很困惑我应该用哪个新项目。我不想深入研究一个全新的框架,只是为了发现它的局限性使我无法使用它。
提前致谢!
答案 0 :(得分:7)
听起来有很多选项可以满足您的需求,但我会回复您对NAudio的要求
低延迟(立即开始播放)
没有音频库会立即“立即”启动。使用WaveOut API,NAudio可以轻松地在大约50ms的延迟下工作。如果您使用WASAPI
,可能会更快代码应为原生C#(。NET 4.0)
NAudio代码是原生C#&包含Windows API的包装器
必须与WPF相处
NAudio适用于WPF
多个同步播放
支持多次播放。您可以选择创建一个混音器,进行一次播放并混合输入和输出不同的输入。
对声音缓冲区操作没有限制
这是NAudio相对于您提到的其他一些选项的一大优势。您可以完全访问示例数据,并可以以您喜欢的任何方式进行操作。
保证未来(我想在几年内使用仍会提供支持的东西。)
开源软件无法保证。但是自从它的开源以来,没有什么能阻止你自己修复bug。 NAudio现在已经存在了10年。
声音播放器模块应该是一个简单的类(= C#代码),而不是封装的dll
那么你可以将代码复制到你自己的项目中,但是有很多辅助类,所以你可能会发现使用DLL更容易。