使用BackgroundCapableMedia在后台播放音频

时间:2012-03-05 09:48:24

标签: windows-8 microsoft-metro windows-runtime

在windows8 Developer预览版中,我们可以使用此代码在后台播放音频:

mediaElement.AudioCategory = AudioCategory.Media;

在windows8客户视图中,似乎我们应该使用AudioCategory.BackgroundCapableMedia而不是AudioCategory.Media

mediaElement.AudioCategory=AudioCategory.BackgroundCapableMedia;

我还在appxmanifest中声明了一个后台任务

<Extension Category="windows.backgroundTasks" EntryPoint="TestApp.App">
      <BackgroundTasks>
            <Task Type="audio" />
      </BackgroundTasks>
</Extension>

但它对我不起作用,MediaElement将在MediaFailed EventHandler中抛出“MF_MEDIA_ENGINE_ERR_SRC_NOT_SUPPORTED”异常 我该怎么办?

1 个答案:

答案 0 :(得分:3)

您还需要设置这些事件处理程序:

using Windows.Media;

MediaControl.PlayPressed += MediaControl_PlayPressed;
MediaControl.PausePressed += MediaControl_PausePressed;
MediaControl.PlayPauseTogglePressed += MediaControl_PlayPauseTogglePressed;
MediaControl.StopPressed += MediaControl_StopPressed;

-

void MediaControl_StopPressed(object sender, object e)
{
    myMediaPlayer.Stop();
}

void MediaControl_PlayPauseTogglePressed(object sender, object e)
{
}

void MediaControl_PausePressed(object sender, object e)
{
    myMediaPlayer.Pause();
}

void MediaControl_PlayPressed(object sender, object e)
{
    myMediaPlayer.Play();
}

我认为应该让它发挥作用。