2014-01-07 61 views
0

這裏以後不玩是我的XAML代碼:MediaElement的恢復應用

<MediaElement x:Name="beepSound" Source="/Sounds/beep.mp3" AutoPlay="False" Visibility="Collapsed"/> 

C#代碼:

private void ButtonClick(object sender, RoutedEventArgs e) 
{ 
    if (beepSound.CurrentState == System.Windows.Media.MediaElementState.Playing) 
     beepSound.Pause(); 
    else 
     beepSound.Play(); 
} 

此代碼的工作非常完美。但是,當我恢復應用程序(通過按開始按鈕,然後再回到應用程序)聲音不播放。什麼導致這種行爲?我的代碼有什麼問題嗎?

回答

1

經過一番研究後,我發現,應用程序恢復後,會丟失其源信息。所以你必須再次設置源。這是我如何做到的。

protected override void OnNavigatedTo(NavigationEventArgs e) 
{ 
    beepSound.Source = new Uri("/Sounds/beep.mp3", UriKind.Relative); 
} 
2

您的代碼沒有任何問題

只是說,Media Element在後臺停止工作。當我們按下開始按鈕後回到應用程序時,媒體元素的CurrentState會顯示「Closed」。

即使應用程序在後臺運行(開始按鍵/鎖定鍵按下),您仍然需要使用播放聲音的播放器。 BackgroundAudioPlayer遵循您的要求。

我不是很瞭解它是如何工作的,但我可以建議你在這個時間點上有一些鏈接。

請看看BackgroundAudiolayer 以及它的namespace

而一個Sample

享受!

+0

感謝您的信息:) –