2010-12-30 29 views
1

NAudioでMP3オーディオファイルを再生するには、this tutorialに従っています。 WaveStreamを作成するために、私は、このメソッドを使用します。NAudioでMP3オーディオファイルを再生しよう

private WaveStream CreateInputStream(string fileName) 
     { 
      WaveChannel32 inputStream; 
      if (fileName.EndsWith(".mp3")) 
      { 
       WaveStream mp3Reader = new Mp3FileReader(fileName); 
       inputStream = new WaveChannel32(mp3Reader); 
      } 
      else 
      { 
       throw new InvalidOperationException("Unsupported extension"); 
      } 
      volumeStream = inputStream; 
      return volumeStream; 
     } 

残念ながら、私はいつも

line inputStream = new WaveChanne32(mp3Reader): 

で例外を取得BLOCKQUOTE

System.ApplicationException was unhandled 
    Message=Only PCM supported 
    Source=NAudio 
    StackTrace: 

答えて

2

あなたは

var pStream = NAudio.Wave.WaveFormatConversionStream.CreatePcmStream(mp3Reader); 
var inputStream = new NAudio.Wave.BlockAlignReductionStream(pStream); 
0

PCMは、符号化タイプ(パルスでありますコード変調)。 NAudioはPCMでエンコードされたファイルしか扱えないようです。

+0

感謝を使用することができます。そして、私が再生しているファイルがPCMでエンコードされていることを確認するにはどうすればよいですか?私はラメを使って自分でここで演奏しようとしているMP3ファイルをエンコードします – RoflcoptrException

+0

私はその例を見ました...そして私はそれが非常に奇妙であることがわかります。私の知る限り、MP3ファイルは決してPCMエンコードされていません。そのコードは機能しません...私は音楽のフォーマットの専門家ではなく、ちょうどギターを弾くプログラマーです。 –

+0

PCMはロスレス、MP3はロッシーです。 .WavはPCM形式です。 –

関連する問題