windows-8 - 使用BackgroundCapableMedia 在后台播放音频

标签 windows-8 microsoft-metro windows-runtime

在windows8开发者预览版中我们可以使用这段代码在后台播放音频:

mediaElement.AudioCategory = AudioCategory.Media;

在windows8客户 View 中,似乎我们应该使用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”异常 我该怎么办?

最佳答案

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

使用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();
}

我认为应该可以正常工作。

关于windows-8 - 使用BackgroundCapableMedia 在后台播放音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9564544/

相关文章:

c# - 如何以编程方式更改 Windows 更新选项?

javascript - 在不使用 aria-haspop 的情况下模拟 Windows 表面上的触摸

windows-8 - Windows 8 应用程序动态磁贴右下角有 "X"

windows-8 - Windows 8 应用商店应用程序 (Metro) 可以在 Windows 7 或 XP 中运行吗?

c# - ISupportIncrementalLoading 集合 - 在 LoadingMoreItems 正在进行时通知 UI

json - SignalR 解析值 : < 时遇到意外字符

F# WinRT 的优点

python - Windows 8 不兼容?

javascript - Window 8 JavaScript 应用程序 oncheckpoint 不工作

c++ - 在 OnNavigatedTo 导航到另一个页面?