2011-04-25 20 views
4

私はWP7アプリケーションで複数の音源を一度に再生する必要があります。 私は現在、wma/mp3でコード化されている場合、500kbの代わりに約5メガバイトのwavファイルを扱っています。コードの一度に複数のmp3/wmaファイルを再生するには?

現在一部:

Stream stream = TitleContainer.OpenStream(String.Format("/location/{0}.wav", value) 
SoundEffect effect = SoundEffect.FromStream(stream); 
effect.Play(); 

これは、すべてのエフェクトを用意し、それらを再生し、ループで素晴らしい作品。

しかし、私は実際にmp3/wma/whatever-codecを使って自分のxapファイルをスリムにしたいと思っています。

私はMediaElementを使用しようとしましたが、複数のファイルを再生することもできません。また、XNA MediaPlayerをインスタンス化することはできません。私が経験する限り、複数のファイルを一度に再生することはできません。私は左の参照

唯一の解決策は、私が何とかwavmp3をデコードし、SoundEffectStreamことを養うことです。

どのように複数の再生を達成するためのアイデアですか?またはmp3からwavにデコードする方法の提案ですか?

+0

私はモバイルデベロッパーではありませんが、WAVが最善の方法かもしれないと示唆しているかもしれません。 MP3のデコードにはCPUの能力が必要です。私は新しいデバイスではそれがどれくらい無視できるか分かりませんが、一度に多くのことをするときに問題が生じるかもしれません。より軽量なコーデックを検討したり、アプリケーションの起動時にMP3で解凍した非圧縮オーディオをRAMにデコードしたりすることもできます。 – Brad

答えて

3

変換中...申し訳ありませんが、現在WMAやMP3デコードで使用できるAPIはありません。

また、純粋なC#コードで使用できるMP3、WMA、またはOggデコーダの実装はありません。私はDirectShowまたはPInvokeを使用しています。 C# Audio Libraryを参照してください。

私は個人的に近い将来、WP7 APIでオーディオ/ビデオの圧縮/解凍がいつの間にか利用可能になると期待していますが、私はいつか推測できません!

単純な圧縮では、ステレオファイルの代わりにモノラルを出荷したり、16ビットのオーディオファイルではなく8ビットを出荷したりすることができます。これらは電話で16ビットに簡単に変換できます。

zipのような圧縮を使用すると、いくつかのサウンドエフェクトに役立つかもしれません...しかし、私はそれが大成功を収めることは期待しません。

関連する問題