NAudio音频文件转换

1、NuGet安装 NAudio,项目及demo的网址:https://github.com/naudio/NAudio

 

Encode to MP3, WMA and AAC with MediaFoundationEncoder

使用MediaFoundationEncoder将音频文件编码为MP3,WMA,AAC的Demo地址:

https://github.com/naudio/NAudio/blob/master/Docs/MediaFoundationEncoder.md

 

 

引用命名空间

using NAudio.Wave;

  string fromFilePath = @"F:\Test\ffmpegTest\ffmpegTest\audio.wav";
            string toFilePath = @"F:\Test\ffmpegTest\ffmpegTest\audio.mp3";

            using (var reader = new MediaFoundationReader(fromFilePath))
            {
                MediaFoundationEncoder.EncodeToMp3(reader, toFilePath);
            }

 

EncodeToMp3默认使用的码率是192K

音频常识之音频码率 介绍文章  https://www.douban.com/note/262040939/

/// <summary>
        /// Helper function to simplify encoding to MP3
        /// By default, will only be available on Windows 8 and above
        /// </summary>
        /// <param name="inputProvider">Input provider, must be PCM</param>
        /// <param name="outputFile">Output file path, should end with .mp3</param>
        /// <param name="desiredBitRate">Desired bitrate. Use GetEncodeBitrates to find the possibilities for your input type</param>
        public static void EncodeToMp3(IWaveProvider inputProvider, string outputFile, int desiredBitRate = 192000)
        {
            MediaType mediaType = MediaFoundationEncoder.SelectMediaType(AudioSubtypes.MFAudioFormat_MP3, inputProvider.WaveFormat, desiredBitRate);
            if (mediaType == null)
            {
                throw new InvalidOperationException("No suitable MP3 encoders available");
            }
            using (MediaFoundationEncoder mediaFoundationEncoder = new MediaFoundationEncoder(mediaType))
            {
                mediaFoundationEncoder.Encode(outputFile, inputProvider);
            }
        }

 

posted @ 2018-05-09 14:41  _York  阅读(1494)  评论(0编辑  收藏  举报