【发布时间】:2016-10-14 05:05:19
【问题描述】:
我会按照以下顺序进行:
- 使用
WaveIn将音频录制到内存中。 - 以 IEEE 32 位样本数组的形式从内存中获取内容。
- 对示例进行一些修改。
- 保存回磁盘。
我知道如何使用WaveIn 进行录音,以及如何使用WaveFileReader 和WaveFileWriter。但是这里还需要其他的类,我不知道怎么用。
【问题讨论】:
标签: naudio
我会按照以下顺序进行:
WaveIn 将音频录制到内存中。我知道如何使用WaveIn 进行录音,以及如何使用WaveFileReader 和WaveFileWriter。但是这里还需要其他的类,我不知道怎么用。
【问题讨论】:
标签: naudio
WaveIn 收到的所有音频写入MemoryStream
MemoryStream.Position 重置为0。然后使用WaveIn 的WaveFormat 将其传递到RawSourceWaveStream
RawSourceWaveStream 上的ToSampleProvider 转至IEEE 32 位WaveFileWriter
如果您将 DSP 实现为自定义 ISampleProvider,您可以进一步简化您的管道,并使用 WaveFileWriter.CreateWaveFile 自动将所有数据从 MemoryStream 拉到您的 WAV 文件中
【讨论】:
ISampleProvider.Read 时,是否有理由一次读取一个块而不是一次读取所有内容?
WaveFileWriter.Write将文件保存为16位PCM
ISampleProvider。然后你可以使用WaveFileWriter.CreateWaveFile16,或者通过SampleToWaveProvider16