在.Net/Mono中解码wav、mp3和/或ogg的方法有很多,这里我们将介绍一种常用的方法,使用NAudio库。NAudio是一个跨平台的音频处理库,支持多种音频格式,包括wav、mp3和ogg。
Install-Package NAudio
using System;
using NAudio.Wave;
namespace AudioDecodingExample
{
class Program
{
static void Main(string[] args)
{
string[] fileList = { "file1.wav", "file2.mp3", "file3.ogg" };
foreach (string file in fileList)
{
Console.WriteLine($"Decoding {file}");
using (WaveFileReader reader = new WaveFileReader(file))
{
using (WaveStream pcm = WaveFormatConversionStream.CreatePcmStream(reader))
{
using (WaveStream convertedStream = new WaveFormatConversionStream(new WaveFormat(16000, 16, 1), pcm))
{
byte[] buffer = new byte[8192];
int bytesRead;
while ((bytesRead = convertedStream.Read(buffer, 0, buffer.Length)) > 0)
{
// 在这里处理解码后的音频数据
Console.WriteLine($"Read {bytesRead} bytes from {file}");
}
}
}
}
}
}
}
}
在这个示例中,我们首先创建了一个WaveFileReader对象,用于读取音频文件。然后,我们使用WaveFormatConversionStream将音频转换为PCM格式,并使用WaveFormatConversionStream将音频转换为所需的采样率和位深度。最后,我们从convertedStream中读取解码后的音频数据,并在循环中处理它们。
这只是一个简单的示例,实际应用中可能需要更复杂的处理逻辑。但是,使用NAudio库可以方便地在.Net/Mono中解码多种音频格式。
领取专属 10元无门槛券
手把手带您无忧上云