大约一周前,我为 Windows Phone 商店提交了一个在线后台广播流应用程序。该应用程序非常好(当我使用模拟器对其进行测试时,它在所有可能的领域都很好),但是当我提交它进行认证时,它失败了。
根据错误日志,如果有人已经在音乐+视频中心播放音乐,然后尝试打开此应用程序,则这两个应用程序都会崩溃并意外停止。
到目前为止我明白,这是因为音乐+视频中心的音乐也是背景音乐,并且同时播放 2 首背景音乐时,应用程序崩溃了。可能是其他原因,但所描述的原因对我来说似乎更合乎逻辑。
那么,有人可以告诉我如何更改音乐+视频中心应用程序的状态吗?我想暂时暂停或停止音乐+视频中心的应用程序,以便应用程序的两个状态不相同。这样,应用程序就不会在后台相互冲突。
有人可以在这方面帮助我吗?
使用 gameHasControl 检查其他使用音乐的 BAP:
bool gameHasControl = Microsoft.Xna.Framework.Media.MediaPlayer.GameHasControl;
if (!gameHasControl)
{
MessageBox.Show("stopping other player"); // normally you should ask if to do that
BackgroundAudioPlayer.Instance.Stop();
}
一旦停止,当您启动 BAP 时,旧实例将调用 Shutdown(),并且您的 BAP 将成为新实例,您可以正常使用它。当您的 BAP 位于内存中并且您开始从音乐+视频中心播放时也是如此。
请注意,因为当您使用 XNA 时,有时需要执行以下操作:
FrameworkDispatcher.Update();
否则你的应用程序有时会崩溃。祝你好运。
EDIT- 评论后
要使其工作,您需要添加对 Microsoft.Phone.BackgroundAudio 的引用或像这样使用:
Microsoft.Phone.BackgroundAudio.BackgroundAudioPlayer.Instance.Stop();
背景音频播放器是一个Singleton
您可以使用它 - 在这种情况下 - 停止播放(当然将选择权交给用户)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)