7 和 7.5 应用程序中,如果用户已经在播放音乐,我曾经在应用程序启动时提示一个消息框,通知用户停止当前音乐播放声音或退出应用程序,这是有效的,但是当我从头开始为 Windows Phone 8 编码时, 由于某种原因,此代码不起作用,如果您正在播放声音,而不是提示通知,应用程序会自行打开和关闭。
这是我使用的代码:
private void Application_Launching(object sender, LaunchingEventArgs e)
{
FrameworkDispatcher.Update();
if (MediaPlayer.GameHasControl != true)
{
if (MessageBox.Show("This application requires play sounds and stop your currently playlist", "Information",
MessageBoxButton.OK) == MessageBoxResult.OK)
{
MediaPlayer.Stop();
FrameworkDispatcher.Update();
}
}
}
我很确定媒体播放器的 API 一定有一些变化?我找不到任何相关信息,有人知道我该如何解决这个问题?
谢谢!!!
正如您所猜测的,API 中有一些变化。
我注意到的第一件事,从Application_Launching事件调用MessageBox.Show(string)会导致异常。你的应用可能由于未处理的异常而关闭。
来自 MSDN:"如果从应用"已激活"和"启动"事件处理程序调用 Show(String) 方法,则会引发 InvalidOperationException,并显示消息"显示消息框时出错"。
编辑:MSDN上的文档不清楚是否调用.Show(string, string, messageBoxButton) 引发相同的异常。
适用于 Windows Phone 的应用平台兼容性