NAudio - 将音频录制到内存中,对其进行更改,然后保存到磁盘

标签 naudio

我会执行以下顺序:

  1. 使用 WaveIn 将音频录制到内存中。
  2. 从内存中获取 IEEE 32 位样本数组形式的内容。
  3. 对示例进行一些修改。
  4. 保存回磁盘。

我知道如何使用 WaveIn 进行录音以及如何使用 WaveFileReaderWaveFileWriter。但这里还需要其他类,但我不知道如何使用。

最佳答案

  1. 将通过 WaveIn 接收到的所有音频写入 MemoryStream
  2. 完成录制后,将 MemoryStream.Position 重置为 0。然后使用您的 WaveFormat 将其传递到 RawSourceWaveStream WaveIn
  3. 使用 RawSourceWaveStream 上的 ToSampleProvider 转至 IEEE 32 位
  4. 从示例提供程序中一次将音频 block 读取到 float[] 中。
  5. 执行您需要的任何 DSP
  6. 将其写入WaveFileWriter

如果您将 DSP 实现为自定义 ISampleProvider,则可以进一步简化管道,并使用 WaveFileWriter.CreateWaveFile 自动从 中提取所有数据>MemoryStream 到您的 WAV 文件

关于NAudio - 将音频录制到内存中,对其进行更改,然后保存到磁盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40029847/

相关文章:

c# - 使用 NAudio 混合 WaveProviders

c# - NAudio - 更改录制的 WAV 文件的比特率

c# - 将 wav 文件存储在数组中

audio - 我们如何重新采样onDataAvailable事件中收到的缓冲区

.net - 如何使用 NAudio 更改 wav 资源的音量?

c# - 使用C#问题进行声音捕获

c# - 我正在使用nAudio库从MIC录音,如何增加MIC的增益?

c# - 如何在 MP3 文件的任意位置插入特定持续时间的静音?

c# - 连接/加入两个或多个 WAV 文件时的咔嗒声

c# - 使用 Naudio 库播放 .wav 文件