3

約 1 週間前、私は Windows Phone ストア用のオンライン バックグラウンド ラジオ ストリーミング アプリを提出しました。アプリは非常に優れていました (エミュレーターを使用してテストしたため、考えられるすべてのセクターで良好でした) が、認定のために提出したときは失敗しました。

エラー ログによると、誰かが Music + Video ハブから既に Music を再生していて、このアプリを開こうとすると、両方のアプリがクラッシュして予期せず停止します。

これまでのところ、Music of Music + Video ハブもバックグラウンド ミュージックであり、2 つのバックグラウンド ミュージックを同時に再生すると、アプリがクラッシュするためです。それは他の理由かもしれませんが、説明されている理由は私にとってより論理的であるように思えました.

では、Music + Video ハブのアプリの状態を変更する方法を教えてくれる人はいますか? アプリの両方の状態が同じにならないように、音楽 + ビデオ ハブのアプリを一時停止または一時停止したい。そうすれば、アプリがバックグラウンドで互いに衝突することはありません。

この点で誰かが私を助けることができますか?

4

1 に答える 1

5

gameHasControl を使用して、音楽を使用する他の BAP を確認します。

bool gameHasControl = Microsoft.Xna.Framework.Media.MediaPlayer.GameHasControl;
if (!gameHasControl)
{
   MessageBox.Show("stopping other player"); // normally you should ask if to do that      
   BackgroundAudioPlayer.Instance.Stop();
}

いったん停止すると、BAP を開始すると、古いインスタンスが Shutdown() を呼び出し、BAP は通常使用できる新しいインスタンスになります。BAP がメモリ内にあり、Music+Video Hub から再生を開始する場合も同様です。

XNA を使用するときは、次のことを行う必要がある場合があるため、注意してください。

FrameworkDispatcher.Update();

そうしないと、アプリがクラッシュすることがあります。幸運を。

編集- コメントの後

それを機能させるには、Microsoft.Phone.BackgroundAudio への参照を追加するか、次のように使用する必要があります。

Microsoft.Phone.BackgroundAudio.BackgroundAudioPlayer.Instance.Stop();

BackgroundAudioPlayer は、Singleton使用が許可されているものです。この場合、再生を停止します (もちろん、選択はユーザーに任せます)。

于 2014-01-06T20:58:38.440 に答える