有没有合理的方法可以在C#中创建任意声波并从扬声器播放?
多年来,这个问题一直不断地出现,我总是在找不到解决方案后失败了很多次。
我想要做的就像是一个反向可视化工具,也就是说,我不想从声音中生成“数字”,我希望从数字中生成声音。
比如说,我提供一个函数,它需要采样率、采样大小和声音数据(例如一个整数数组),然后它会根据这些信息生成相应的wav文件(实时声音回放最理想,但这样也完全可以)。
我知道wav文件规格已经普及全网,并尝试创建上述函数,对于低频率的成功了一些,但一旦开始涉及位数等参数,就变得非常混乱和难以控制。
这种情况不是已经有别的方法实现了吗? 我无所谓它使用什么方法,只要有.NET托管包装器(我能够在最新版本的VS中访问)就行。 XNA不支持以这种方式进行底层音频处理。我也找到了几个声称能够实现类似功能的示例,但它们要么根本不起作用,要么就是做了完全不同的事情。
谢谢。
PlaySound
是一个非常简单的API,它只播放声音。如果您想要更复杂的控制,例如暂停和停止,您需要不同的API。有几个win32 API可以完成这项工作,但它们没有内置的.Net包装器。NAudio是一个开源的.Net音频库。我听说过它很好用,但我从未使用过它。 - arx