2014-01-08 126 views
0

在我的Windows Phone 7和7.5應用程序中,如果用戶已經在播放音樂,通知用戶停止播放當我啓動應用程序時,我會提示消息框音樂播放聲音,或退出應用程序,這是工作,但是當我從Windows Phone 8開始編碼時,出於某種原因,此代碼不起作用,如果您正在播放聲音,而不是提示通知,應用程序打開和關閉。通知用戶播放聲音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(); 
      } 
     } 
    } 

我敢肯定一定是與MediaPlayer的API的一些變化?我找不到任何有關這方面的信息,有人知道我該如何解決這個問題?

謝謝!

+0

http://stackoverflow.com/questions/20958068/windows-phone-8-2-background-audios-clash-and-both-of-the-app-terminates/20959144#20959144 - 這對我來說很好。您是否設法調試應用程序退出的位置?有什麼異常? – Romasz

+0

是的,錯誤是沃爾特里奇所說的,如果我將messagebox移動到每個部分都會工作正常,但不是在application_launching中,我找不到在應用程序啓動時顯示它的正確方法。 –

+0

MainPage OnNavigatedTo或您的應用程序啓動的其他頁面? – Romasz

回答

1

正如您猜測的那樣,API有一些變化。

我首先注意到,從Application_Launching事件中調用MessageBox.Show(string)會導致異常。由於未處理的異常,您的應用可能正在關閉。

來自MSDN:「如果您從應用程序激活並啓動事件處理程序中調用Show(String)方法,則會顯示消息錯誤顯示MessageBox的InvalidOperationException。

編輯:MSDN上的文檔不清楚是否調用.Show(string,string,messageBoxButton)引發相同的異常。

App platform compatibility for Windows Phone

+0

我把它從Application_Launching移動到 –

+0

謝謝你的答案,這正是問題(你比我更好解釋),是不是很清楚Windows Phone 8中的顯示(字符串)。暫時解決,我把它放在主頁是加載,看起來像解決了問題,現在我需要檢查它是否通過認證過程。謝謝! –

+0

@ Snake-leaf只能當心,因爲MainPage可以在啓動應用程序時被構建/導航幾次。如果沃爾特的答案解決了你的問題,不要忘記接受它(旁邊的綠色勾號)。 – Romasz