在我的Windows Phone 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与MediaPlayer一定会有所改变吗?我找不到任何关于此的信息,有人知道我该如何解决这个问题?
感谢!!!
答案 0 :(得分:1)
正如您所猜测的,API中有一些变化。
首先我注意到,从Application_Launching事件调用MessageBox.Show(string)会导致异常。由于未处理的异常,您的应用可能正在关闭。
从MSDN:“如果从应用程序Activated和Launching事件处理程序中调用Show(String)方法,则会抛出InvalidOperationException,并显示消息Error Showing MessageBox。”
编辑:MSDN上的文档不清楚调用.Show(string,string,messageBoxButton)是否会引发相同的异常。