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/

相关文章:

Python命令在命令提示符下不起作用

microsoft-metro - 使用 Windbg 调试 Metro 应用程序

c# - 如何检查 Windows 设备是手机还是平板电脑/个人电脑?

c# - Windows 8.1 Windows 应用商店应用程序上的 Sqlite-net - 无法编译 "Not"

c# - 如何在 WinRT/Windows 8 中按日期顺序获取文件列表

c - Wireshark 抓到 UDP 包,但应用程序抓不到

windows-8 - Blend for Visual Studio - 在设计模式下显示应用栏

windows-8 - 在 Windows 8 Metro 应用程序中禁用滚动查看器的放大和缩小

sqlite - Metro8 SQLite选择查询

microsoft-metro - Metro 风格应用中的 RSA 加密