2012-02-24 2 views
0

私はnAudioを使用して、私のWPFアプリケーションでバックグラウンドソングを再生しています。 さて、これをあるために、曲の新しいinstaceにコードを開始します。WPFで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; 
    } 
正常に動作します

が、特定のファイルパスにのみを。 今、この機能にPack URLを送信しようとすると、フォーマットがサポートされていないというエラーが表示されます。 誰もこれをエンパワーし、何をすべきか知っていますか?

解決しよう: おかげで答えをminitechし、このコードはeventully働い:Mp3FileReaderコンストラクタは、ストリームを取るためにオーバーロードされ

StreamResourceInfo resource = Application.GetResourceStream(
      new Uri("YearBook;component/Resources/Music/1.mp3", UriKind.Relative)); 
     mainOutputStream = CreateInputStream(resource.Stream); 
     waveOutDevice.Init(mainOutputStream); 


    private WaveStream CreateInputStream(Stream fileName) 
    { 
     WaveChannel32 inputStream; 
     WaveStream mp3Reader = new Mp3FileReader(fileName); 
     inputStream = new WaveChannel32(mp3Reader); 
     volumeStream = inputStream; 
     return volumeStream; 
    } 

答えて

1

。 WPFリソースの仕組みは分かりませんが、何らかの理由でファイルをStreamオブジェクトとして取得できれば、それを使用できます。ここでは、byte[]再生することができます方法は次のとおりです。私は得ることができます

private WaveStream CreateInputStream(byte[] resource) { 
    WaveChannel32 inputStream; 

    using(MemoryStream ms = new MemoryStream(resource)) { 
     WaveStream mp3Reader = new Mp3FileReader(ms); 
     inputStream = new WaveChannel32(mp3Reader); 
    } 

    return inputStream; 
} 
+0

がストリームとしてですが、私はそれを挿入することができますどのように理解していない、それが文字列 –

+0

がNevermind-が、それはどうもありがとうございまし固定期待していることです! –

+0

エリックあなたはそれをどのように修正したか教えていただけますか –

関連する問題