这是我的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();
}
此代码完美无缺。但在我恢复应用程序后(通过按开始按钮然后再返回到应用程序),声音无法播放。是什么导致这种行为?我的代码有什么问题吗?
答案 0 :(得分:2)
您的代码没有错误
就是这样,Media Element在后台停止工作。媒体元素的CurrentState给出了一个&#34; Closed&#34;当我们按下开始按钮后返回应用程序时。
即使应用程序进入后台,您也需要使用播放声音的播放器(按开始键/按下/锁定键)。 BackgroundAudioPlayer遵循您的要求。
我不太了解它是如何工作的,但我可以在这个时候建议你一些链接。
请查看BackgroundAudiolayer 以及它的namespace。
享受!
答案 1 :(得分:1)
经过一番研究后我发现,应用程序恢复后会丢失其源信息。所以你必须再次设置源。我就是这样做的。
protected override void OnNavigatedTo(NavigationEventArgs e)
{
beepSound.Source = new Uri("/Sounds/beep.mp3", UriKind.Relative);
}