直接上代码:
先NuGet安装NAudio.Wave和NAudio.Lame,再引用
using NAudio.Wave;
using NAudio.Lame;
- //声明一个 保存m4a文件夹的路径
- string directloc = @"G:\mp3\MP3";
- //获取文件夹下所有的m4a文件
- string[] fyles = Directory.GetFiles(directloc);
- // 声明一个空对象
- NAudio.Wave.BlockAlignReductionStream stream = null;
- for (int i = 0; i < fyles.Length; i++)
- {
- //读取单个m4a文件
- MediaFoundationReader mfM4A = new MediaFoundationReader(fyles[i]);
- stream = new NAudio.Wave.BlockAlignReductionStream(mfM4A);
-
- //获取文件名称
- var dd = fyles[i].Split("\\");
- string mp3FileName = "";
- if (dd != null)
- {
- var ddd = dd[dd.Length - 1];
- if (ddd != null)
- {
- mp3FileName = ddd.ToString();//.Replace(".mp3", "");
- }
- }
-
-
- //创建一个MP3空文件
- using (var mp3FileReader = new LameMP3FileWriter("G:\\mp3\\ToMp3New\\" + mp3FileName, stream.WaveFormat, LAMEPreset.ABR_320))
- {
- //把读到文件流复制到mp3FileReaderMP3空文件中
- stream.CopyTo(mp3FileReader);
- }
- }