c# NAudio 保存音频数据到wav文件
时间: 2024-09-21 15:06:08 浏览: 93
C#使用NAudio录音和播放音频文件-实时绘制音频波形图
4星 · 用户满意度95%
在C#中使用NAudio库将音频数据保存为WAV文件,你需要先捕获音频数据,然后通过`WaveFileWriter`类将其写入文件。以下是一个基本的步骤:
1. 引入必要的库:
```csharp
using NAudio.Wave;
using NAudio.WaveFORMats;
using System.IO;
```
2. 创建一个音频文件格式实例,例如16位、立体声、44.1kHz采样率:
```csharp
var audioFormat = new WaveFormat(44100, 16, 2); // 44.1kHz, 16位双声道
```
3. 打开一个文件流准备写入:
```csharp
string outputFile = "output.wav";
using (var writer = new WaveFileWriter(outputFile, audioFormat))
{
// 音频数据在这里...
}
```
4. 获取音频数据并写入文件。假设你已经有了一个`byte[]`类型的数组存储了音频数据:
```csharp
byte[] audioBytes = GetAudioData(); // 这部分取决于你的音频源
writer.Write(audioBytes, 0, audioBytes.Length);
```
如果音频数据是连续生成的,比如从一个流中读取,你可以使用`WaveInBuffer`来接收音频数据。
5. 关闭文件流:
```csharp
writer.Close();
```
完整的例子:
```csharp
byte[] audioData = ... // 获取音频数据
WaveFormat format = ... // 初始化格式
string outputPath = "output.wav";
using (var fileStream = File.Create(outputPath))
using (var waveWriter = new WaveFileWriter(fileStream, format))
{
waveWriter.Write(audioData, 0, audioData.Length);
}
Console.WriteLine("Audio saved to {0}", outputPath);
```
注意:`GetAudioData()`这部分需要你自己根据实际音频源来编写,可能是从网络、麦克风或其他设备获取。
阅读全文