NAudio - 将音频记录到内存中,对其进行更改,然后保存到磁盘
NAudio - Record audio to memory, make changes to it, then save to disk
我要执行以下顺序:
- 使用
WaveIn
将音频录制到内存中。
- 从内存中获取内容作为 IEEE 32 位样本数组。
- 对示例进行一些修改。
- 保存回磁盘。
我知道如何使用 WaveIn
进行录制以及如何使用 WaveFileReader
和 WaveFileWriter
。但是这里还需要其他的类,我不知道怎么用。
- 将您使用
WaveIn
收到的所有音频写入 MemoryStream
- 完成录制后,将
MemoryStream.Position
重置为 0。然后使用 WaveIn
[=31= 的 WaveFormat
将其传递到 RawSourceWaveStream
]
- 使用
RawSourceWaveStream
上的 ToSampleProvider
转到 IEEE 32 位
- 从您的示例提供程序中一次将音频一个块读入一个浮点数[]。
- 执行您需要的任何 DSP
- 将其写入
WaveFileWriter
如果您将 DSP 实现为自定义 ISampleProvider
,您可以进一步简化您的管道,并使用 WaveFileWriter.CreateWaveFile
自动将所有数据从 MemoryStream
提取到您的 WAV 中文件
我要执行以下顺序:
- 使用
WaveIn
将音频录制到内存中。 - 从内存中获取内容作为 IEEE 32 位样本数组。
- 对示例进行一些修改。
- 保存回磁盘。
我知道如何使用 WaveIn
进行录制以及如何使用 WaveFileReader
和 WaveFileWriter
。但是这里还需要其他的类,我不知道怎么用。
- 将您使用
WaveIn
收到的所有音频写入MemoryStream
- 完成录制后,将
MemoryStream.Position
重置为 0。然后使用WaveIn
[=31= 的WaveFormat
将其传递到RawSourceWaveStream
] - 使用
RawSourceWaveStream
上的ToSampleProvider
转到 IEEE 32 位 - 从您的示例提供程序中一次将音频一个块读入一个浮点数[]。
- 执行您需要的任何 DSP
- 将其写入
WaveFileWriter
如果您将 DSP 实现为自定义 ISampleProvider
,您可以进一步简化您的管道,并使用 WaveFileWriter.CreateWaveFile
自动将所有数据从 MemoryStream
提取到您的 WAV 中文件