如何检测背景音乐是​​否在 WP8 中播放?

Posted

技术标签:

【中文标题】如何检测背景音乐是​​否在 WP8 中播放?【英文标题】:How to detect if background music is playing in WP8? 【发布时间】:2012-12-05 22:59:36 【问题描述】:

如果有人在您知道之前开发了 WP 应用程序,如果您的应用程序在未经用户同意的情况下停止当前正在播放的音乐,您将无法通过认证。

我确实看到了这个问题here,它可能适用于 WP7 应用程序,但显然不适用于 WP8。我认为它不起作用,因为 WP8 操作系统不支持 XNA(它仅向后兼容,并且如果您使用 7.1 开发应用程序)。

有没有人遇到过在 WP8 中检测背景音乐的解决方案。

【问题讨论】:

【参考方案1】:

我相信检查MediaPlayer.GameHasControl 是您正在寻找的。使用该属性和 MediaPlayer 的其他成员来满足应用程序认证指南 6.5.1 这是一个端到端示例,说明如何@http://henry-chong.com/2012/02/pro-tip-including-background-music-for-your-windows-phone-app/

顺便说一句,如果您的应用是音乐+视频应用,则不适用 6.5.x 应用认证要求。这是解决 6.5.1 的一种方法 :)

【讨论】:

请注意,这仅适用于 Microsoft 音乐播放器播放的音乐。其他音乐流媒体应用程序(诺基亚音乐、Spotify 等)将无法恢复。这似乎是不可避免的,根据 MSDN 关于后台音频架构:只有一个媒体队列。您的应用程序无法暂停背景音频,使用 MediaElement 播放某些内容然后恢复背景音频流。【参考方案2】:

我相信Microsoft.Xna.Framework.Media.MediaPlayer.State 在 Windows Phone 8 (MSDN source) 中仍受支持:

您可以参考和使用以下 XNA Framework 程序集 面向 Windows Phone OS 8.0 的应用:

...

Microsoft.Xna.Framework.Media.dll

...

【讨论】:

如此处***.com/a/7034556/883738 所述,即使您正在播放音乐,MediaPlayer.State 也会播放。 GameHasControl 确定音乐是从您的应用启动的,还是在您的应用启动之前正在播放另一个应用。

以上是关于如何检测背景音乐是​​否在 WP8 中播放?的主要内容,如果未能解决你的问题,请参考以下文章

如何检测其他应用程序是不是正在播放背景音频?

H5中背景音乐无法自动播放问题

空间背景视频怎么搞自动播放

防止 AVPlayer 取消背景音频

uni-app 178添加背景提示音

防止无音频 AVPlayer 暂停背景音频