恢复应用后,MediaElement无法播放

时间:2014-01-07 09:21:35

标签: c# windows-phone-7 audio windows-phone-8 mediaelement

这是我的xaml代码:

<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();
}

此代码完美无缺。但在我恢复应用程序后(通过按开始按钮然后再返回到应用程序),声音无法播放。是什么导致这种行为?我的代码有什么问题吗?

2 个答案:

答案 0 :(得分:2)

您的代码没有错误

就是这样,Media Element在后台停止工作。媒体元素的CurrentState给出了一个&#34; Closed&#34;当我们按下开始按钮后返回应用程序时。

即使应用程序进入后台,您也需要使用播放声音的播放器(按开始键/按下/锁定键)。 BackgroundAudioPlayer遵循您的要求。

我不太了解它是如何工作的,但我可以在这个时候建议你一些链接。

请查看BackgroundAudiolayer 以及它的namespace

Sample

享受!

答案 1 :(得分:1)

经过一番研究后我发现,应用程序恢复后会丢失其源信息。所以你必须再次设置源。我就是这样做的。

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