1
4
我喜欢使用WaveIn*API功能(WaveInOpen等)录制音频。虽然这个API已经过时(15年以上),而且比您可能想要的要更难使用,但是它可以做您上面提到的任何事情(除了一个),根本不需要DirectX,并且可以在返回Windows 95的每一个版本的Windows上工作(尽管.NET在Windows 98之前的任何版本上都不工作),甚至包括Windows Mobile(最后一个当我发现这件事时,这件事使我大吃一惊。 它不处理的一件事是保存到任何常见的压缩文件格式(但我不认为用DirectSound录制(另一个主要选项)也可以处理这个问题)。但是,有许多.NET兼容库可以满足您的这一需求(Naudio推荐使用,尽管我从未使用过它)。使用wavein*录制的一个优点(DirectSound也有同样的优点)是您可以录制到内存中(而不是直接录制到文件中),因此您可以轻松地对音频进行任何操作(例如,将其保存到文件中,删除安静的部分,通过fft过滤,更改格式等)。许多与.NET兼容的库都是为处理内存缓冲区而编写的,而不是为文件或文件之外的内容编写的,因此让音频始终在内存中是一个很大的好处。 触发录音的开始和停止是可以做到的,尽管不是你想的那样。使用wavein*api,您基本上从默认音频源开始录制,而api开始用录制的声音填充内存缓冲区。当每个缓冲区都被填满时,您会收到一个通知,然后您可以对每个缓冲区执行任何您喜欢的操作。对于实际记录到文件中的内容,您可以在每个缓冲区进入时对其进行扫描,如果缓冲区为空(不包含声音),则只需丢弃它而不将内容写入文件。 下面是一个代码项目示例,演示如何使用wavein*和waveout*API: http://www.codeproject.com/KB/audio-video/cswavrec.aspx?msg=2137882 我以前在C工作过这个项目,它工作得很好。 |
Emopusta · 从后端到前端的图像路径不工作 2 年前 |
Asdrubal Hernandez · Linq查询特定数组索引出错 2 年前 |
Niyazi Babayev · 如何在表达式中动态应用表达式? 2 年前 |
Dansih · .Net核心自定义身份验证方案 2 年前 |
lolorekkk · 面板插入。NET WinForm 2 年前 |