0

アプリのブラウザーでサウンドを再生すると、既存のバックグラウンド ミュージックの再生が停止するため、Windows Phone アプリが拒否されました (拒否の問題 6.5.1)。

バックグラウンド ミュージックを停止しないようにアプリケーションを更新するにはどうすればよいですか?

私のJavaScriptは次のようなものです:

var mySound = new Audio(soundpath);

Sound.play(mySound);

Microsoft.Xna.Framework.Media には、アプリがブラウザーのサウンドを処理する方法を処理するものは見つかりませんでしたが、何か見逃していたのでしょうか?

4

2 に答える 2

1

あなたが探しているのは、xna効果音からのものです

これが私が使用しているもので、すべての効果音に最適です。(Windows ストアの資格に合格しないため、'soundeffect' オブジェクトで音楽を使用することはできません。音楽には MediaElement を使用する必要があります)

using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework.Media;

そしてこの機能

private static void LoadSoundEffect(string fileName, SoundEffectInstance mySound)
{
    var stream = TitleContainer.OpenStream("Sounds/" + fileName);
    var effect = SoundEffect.FromStream(stream);
    FrameworkDispatcher.Update();
    mySound = effect.CreateInstance();   
}

SoundEffectInstance を使用すると、効果音の開始、一時停止、停止などを問題なく実行できます。

SoundEffect も同様に機能しますが、SoundEffectInstance の方が好みです。

編集: 効果音を使用しても、再生中の音楽には影響しません。

于 2013-03-28T22:22:12.213 に答える
0

ネイティブの Windows Phone アプリ (.XAP) を作成し、ブラウザー コントロールを使用してアプリのコンテンツを表示していると想定しています。その場合は、アプリを最初に開いたときに実行する必要があるチェックがあります。以下に、その問題を解決する方法を説明します。

このコードをアプリに追加する必要があります (アプリをロード/開くたびに確認することをお勧めします)。usingメディアのステートメントと同様に参照を追加します。

if (Microsoft.Xna.Framework.Media.MediaPlayer.State == MediaState.Playing)
{               
    MessageBoxResult Choice;               
    Choice = MessageBox.Show("Media is currently playing, do you want to stop it?", "Stop Player", MessageBoxButton.OKCancel);
    if (Choice == MessageBoxResult.OK)
        mediaElement1.Play(); 
}

ユーザーがメディアの再生を許可または禁止する場合は、JavaScript にチェックを入れる必要があります。ユーザーが「キャンセル」と言って、とにかく音楽を再生すると、再び認定に失敗します。

このトピックの詳細については、こちらを参照してください。

于 2012-12-11T20:45:55.183 に答える