【发布时间】:2010-12-23 20:30:04
【问题描述】:
我的问题是这样的:
我正在开发一个相当小的应用程序(它需要能够在未来增长,但目前,有限的功能就足够了)接收音频(16 位单声道 @ 44.1kHz)并执行傅里叶变换和过滤数据。我在你能想象到的所有领域的经验是有限的,但我最近一直在研究它并且有一些了解。我的资金有限,我无法使用 GPL 或类似许可下的任何库(我需要能够分发这个应用程序)。对于信号处理,我选择了 MathNet 库,这似乎可以处理大部分处理(并且我将编写必要的过滤器)。
真正的问题是找到要使用的声音库 - 我希望在 C# 中使用一些东西,虽然 directSound 似乎是最好的选择,但我不愿意使用它,因为微软几乎放弃了它(我的公司work for 将在不久的将来升级其装备;我只想尽可能延长应用程序的寿命)。我使用 XAudio2 吗?我需要能够从 USB 设备记录原始 pcm 数据并对其进行处理(+将其写入 .wav 文件),并直接从 .wav 文件中读取数据。
感谢任何帮助
【问题讨论】:
-
GPL 不适用,因为您的应用程序是商业应用?
-
是的,差不多吧~我不确定它是否会分发,但我更喜欢没有附加条件的情况。
-
给处于类似位置的任何人的说明 - 没有可以在托管 C# 中录制音频的音频 Microsoft 音频库。 XAudio2 没有录音选项,只有回放/处理。如果您正在为任何 pre-vista 进行开发,旧的 directSound 或 WaveXxx API(仍需要包装以在 C# 中使用 - NAudio 库执行此操作)是您的最佳选择。
-
对于任何更新的东西(vista/win7),WASAPI 可能是最好的选择 - directSound 和 WaveXxx 只是在此之上的层,并且可能不会存在太久(不是我我确定 - 但它们不再处于开发阶段,这几乎意味着斧头就在附近)。
标签: c# signal-processing xaudio2