2017-10-05 24 views
0

次のコードを使用してwavファイルをmp3に変換しようとしています。NAudio/Lameを使用して.wavをmp3に変換するときのチャンネルとサンプルレートの設定方法は?

using (var wavRdr = new WaveFileReader(item)) 
       using (var mp3Writer = new LameMP3FileWriter(outputPath.Replace(".wav", ".mp3"), wavRdr.WaveFormat, _bitRate, tag)) 
       { 
        wavRdr.CopyTo(mp3Writer); 
       } 

LameMP3FileWriterは、MP3形式のサンプルレートチャンネルを設定するための任意のパラメータを持っていません。

いくつかの調査の後で、変換方法を呼び出す前にチャンネルとサンプルレートを設定する必要があるとの考えがありましたが、これを行う方法はわかりません。

変換にはthisを使用しましたが、これで成功しましたが、今はmp3ファイルのチャンネルとサンプルレートを設定する必要があります。助けてください!

答えて

0

ここで私は問題を解決しました。

var tempFile = Path.Combine(destFolder, Path.GetFileNameWithoutExtension(sourceFile.SourceFilePath) + ".wav"); 
      try 
      { 
       var reader = new WaveFileReader(sourceFile.SourceFilePath); 
       var newFormat = new WaveFormat(SampleRate, BitsPerSec, Channels); 
       var conversionStream = new WaveFormatConversionStream(newFormat, reader); 
       WaveFileWriter.CreateWaveFile(tempFile, conversionStream); 

       var destFile = Path.Combine(destFolder, Path.GetFileNameWithoutExtension(sourceFile.DestiFileName) + ".mp3"); 
       using (var wavRdr = new WaveFileReader(tempFile)) 
       { 
        using (var mp3Writer = new LameMP3FileWriter(destFile, newFormat, BitRate, sourceFile)) 
        { 
         wavRdr.CopyTo(mp3Writer); 
        } 
       } 
      } 
      catch 
      { 
       //Ignore 
      } 
      finally 
      { 
       if (File.Exists(tempFile)) 
        File.Delete(tempFile); 
      } 
関連する問題