4

WP7 アプリで一度に複数の効果音を再生する必要があります。私は現在、wma/mp3 でコード化されている場合は 500kb ではなく、約 5 メガバイトの wav ファイルで動作しています。

コードの現在の部分:

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

これはループでうまく機能し、すべてのエフェクトを準備してから再生します。

ただし、mp3/wma/whatever-codec を使用して xap ファイルを縮小したいと考えています。

を使用しようとしましMediaElementたが、それを使用して複数のファイルを再生することもできないようです。また、XNAMediaPlayerをインスタンス化することはできず、私が経験した限りでは、一度に複数のファイルを再生することはできません。

私が残した唯一の解決策は、どうにかして to をデコードし、それmp3を towavにフィードするStreamことSoundEffectです。

複数の再生を実現する方法についてのアイデアはありますか? またはにデコードmp3する方法に関する提案はありますwavか?

4

1 に答える 1

3

変換について...申し訳ありませんが、現在 WMA または MP3 のデコードに使用できる API はないと思います。

また、純粋な C# コードで利用できる MP3、WMA、または Ogg デコーダーの実装はないと思います - 私が見たものはすべて DirectShow または PInvoke を使用しています - たとえば、C# Audio Libraryを参照してください。

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

簡単な圧縮では、ステレオ ファイルの代わりにモノラル ファイルを送信したり、16 ビットではなく 8 ビットのオーディオ ファイルを送信したりすることができます。これらは電話で簡単に 16 ビットに戻すことができます (明らかに解像度が失われます)。

zip のような圧縮を使用すると、いくつかの効果音にも役立つ可能性があります... しかし、私はそれが大きな成功を収めるとは思っていません。

于 2011-04-25T21:21:38.747 に答える