0

WP7 Silverlight アプリケーションでバックグラウンド ミュージックを実行する必要があります。ページ間を移動するときに再生を続ける必要があります。

また、別の効果音が再生されたときに停止したくありません。

4

2 に答える 2

0

MediaElementを使用してそれを行うか、XNA SoundEffectsを使用できますが、より良い解決策があります。アプリのSilverXNAプロジェクトを作成します。XNAを実際に使用する必要はありませんが、このプロジェクトは、作業を楽にするものを自動的に作成します。これを使用して、問題なくSilverlightアプリを構築できます。

プロジェクトを作成したら、サウンドファイルをプロジェクトに含めて「7am.mp3」と言い、ビルドアクションを「コンテンツ」に設定します。

GamePage.xaml.csで曲を作成します。

Song music;

次に、これをOnNavigatedTo()に追加します。

music = contentManager.Load<Song>("7am");

この後、この曲を次のように再生できます。

MediaPlayer.Play(music);

音量などを設定できます。

では、なぜこのアプローチなのか?まあ、技術認定ガイドラインによれば、ユーザーがすでに曲を聴いている場合はユーザーに割り込むことができず、SoundEffectsクラスをバックグラウンドミュージックに使用できないため、この方法がそのような柔軟性を得る唯一の方法です。

MediaPlayer.GameHasControlユーザーが音楽を再生しているかどうかを確認するために使用できます。

于 2012-07-08T19:06:13.937 に答える
0

Microsoft.Xna.Framework解決策は、次の関数を参照して使用することでした。

public static void PlaySound(string soundFile)
{
    var stream = Application.GetResourceStream(new Uri(soundFile, UriKind.Relative)).Stream;

    if (stream != null)
    {
        var effect = Microsoft.Xna.Framework.Audio.SoundEffect.FromStream(stream);
        Microsoft.Xna.Framework.FrameworkDispatcher.Update();
        effect.Play();
    }
}

http://spacemigas.wordpress.com/2011/04/07/overcoming-windows-phone-7-mediaelement-limitations/

于 2012-07-09T09:37:57.230 に答える