2010年12月22日 星期三

獲得 Zune 相關資訊

前幾天送審 Windows Phone 時被退件,原因是我們的 App 在開啟後會播放背景歌曲,
而當在 Zune 播放背景歌曲時,我們再使用 MediaPlayer 播放歌曲就會很自然的將背景歌曲停止,
微軟的審核人員可能覺得這樣會讓用戶以為 Zune Crash 之類的,所以強制規定此項目

The application needs to prompt the user for
consent to adjust the volume or stop the music
that is currently playing in the Zune queue.

問題是如何知道 Zune 正在播放歌曲呢?
作法就是利用 Zune 所使用的播放器 Xna MediaPlayer 來取得狀態,
取得播放狀態的範例如下,相關控制的方式與其他資訊以此類推


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

namespace AsciiApp
{
  public partial class MainPage : PhoneApplicationPage
  {
    public void MainPage()
    {
      InitializeComponent();
      InitializeView();
    }

    protected virtual void InitializeView()
    {
      PlayBackgroundMusic();
    }

    private void PlayBackgroundMusic()
    {
      if (MediaPlayer.State == MediaState.Playing)
      {
        if (MessageBox.Show("turn off the music?", "Ascii", MessageBoxButton.OKCancel) == MessageBoxResult.OK)
        {
          // 結束 MediaPlayer 並播放背景音樂
        }
        else
        {
          // 不播放背景音樂
        }
      }
    }
  }
}

沒有留言:

張貼留言