2

現在、Windows Phone 8 で 2 つの mp3 または aac 形式のファイルを同時に再生する方法を検討しています。

現時点では、XNA SoundEffect クラスを使用していますが、ネットワーク経由での転送には理想的ではない WAV ファイルしか許可されません。

調査中に SharpDX に遭遇しましたが、それは主に .WAV に対応しているか、一度に 1 つのファイルを再生しているようです。

また、この質問も発見しました: Windows 8 Metro アプリ (C#/XAML) で 2 つのサウンドを同時に再生する Windows 8 では 複数のメディア要素が可能ですが、それらが Windows Phone にあるかどうかはわかりません (この質問は同意しないようです) 。

どんなアイデアでも大歓迎です。

更新: http://msdn.microsoft.com/en-us/library/windowsphone/design/hh202883(v=vs.105).aspx

4

2 に答える 2

3

解決策 : こんにちは、私は WP8 アプリを開発していましたが、同時に再生する複数のサウンドが必要でした。XNA フレームワークを使用しました。ここにリンクがあります

http://msdn.microsoft.com/en-us/library/ff842408.aspx

そして、このようにあなたのサウンドファイルを再生します...

SoundEffect Sound = SoundEffect.FromStream(Application.GetResourceStream(new Uri("Assets/Sounds/wav/sound.wav", UriKind.Relative)).Stream);
Sound.Play();

ループするため...

SoundEffectInstance Sound = SoundEffect.FromStream(Application.GetResourceStream(new Uri("Assets/Sounds/wav/sound.wav", UriKind.Relative)).Stream).CreateInstance();
Sound.IsLooped = true;
Sound.Play();

注: ファイルは ".wav" (PCM、8 または 16 ビット、8KHz ~ 48KHz、モノラルまたはステレオ) 形式である必要があります。

于 2013-02-15T07:02:31.220 に答える
1

MediaFoundation.MediaEngine を介して実行することもできます ( WP8 で正しく初期化する方法のガイドラインについては、「Windows Phone 8 でサポートされている Microsoft Media Foundation API 」を参照してください)。SharpDX には、オーディオのみを再生するための開始点として使用できる Win8 サンプルMediaPlayerAppがあります (すべての d3d 部分を削除し、WP8 のガイドラインを適用します)。MonoGame MediaPlayerクラスでも使用されています。

複数の WAV を SharpDX で同時に再生することについては、XAudio2 で完全に可能であり、SharpDX では XAudio2 に関する制限はありません。

XAudio2 のようなネイティブ オーディオ スレッドを含む、収集中にすべてのネイティブ スレッドをブロックしているように見える WP8 CLR ガーバージ コレクターについては、大きな懸念しかありません。これは OS の問題であり、.NET でのスレッドのスケジューリングの問題であるため、私たちにできることは何もありません。

また、2 つの MP3 をリアルタイムでデコードする WP8 の能力についても疑問があります...結果があればお知らせください。

于 2012-12-20T01:10:01.687 に答える