がりらぼ

WindowsRuntimeの応援ブログ

WPMarketに6.5.1 Requirementで返された時の対処法

WindowsPhoneマーケットにゲームを作って申請したのち、6.5.1 Requirementと書かれて返されました。
内容は以下↓
Requirements Expected Result
When the user is already playing music on the
phone when the application is launched, the
application must not pause, resume, or stop the
active music in the phone MediaQueue by calling
the Microsoft.Xna.Framework.Media.MediaPlayer
class.
If the application plays its own background music
or adjusts background music volume, it must ask
the user for consent to stop playing/adjust the
background music (e.g. message dialog or settings
menu). This prompt must occur each time the
application launches, unless there is an opt-in
Test Process Required:
1. Play a music file.
2. Launch the application.
3. Verify that while the application loads, it does
not pause, resume or stop the actively playing
music.
this setting to opt-in.

簡単に訳すと端末で音楽聞いてる最中にゲーム起動させて音楽鳴らせてんじゃねぇよ。とのこと。
どうやら音楽を流すにはユーザーの同意がいるらしい。
iphoneとかだったら勝手に音小さくなるのに。
そういうのはOS管理だろwwとか思いつつ対処法を調べる。

 bool canPlay = false;
 
    FrameworkDispatcher.Update();
    if (MediaPlayer.GameHasControl)
    {
        canPlay = true;
    }
    else
    {
        if (MessageBox.Show(“Is it ok to stop currently playing
music and play our duck caller sound?”, “Can play duck caller?”,
MessageBoxButton.OKCancel) == MessageBoxResult.OK)
        {
            canPlay = true;
        }
    }

とまあ、このようにMediaPlayerのGameHasControlプロパティは
ゲームが端末の音楽の管理権限を持っているか調べるらしい。おそらく別のシステムが音楽を再生しているならfalseになるはずだ。
trueなら音楽を再生していないことになるはずなのでフラグをONにしてやればよい。
falseならOK CANCELつきのボタンで流してもよいか聞く。
あとはflagがONなら音楽を再生すればよい。
以上の結果はエミュレータ―でのテストなので実際に音楽は再生していないので、実際に動くかはわかりません。
これで申請が通れば正解なんだろうけどね。
現在申請中です。