windows phone 上退出应用程序后恢复音乐

Posted

技术标签:

【中文标题】windows phone 上退出应用程序后恢复音乐【英文标题】:Resume music after exit app on windows phone 【发布时间】:2014-03-22 15:29:00 【问题描述】:

我正在使用 mediaElement 在我的应用中播放背景音乐。这很好用。

问题在于用户何时最小化应用程序。当应用程序恢复时没有声音......我可以在我的应用程序中播放其他声音,但不能再播放该背景音乐。

首先我有这段代码可以在第一次打开应用程序时停止所有背景音乐:

if (Microsoft.Xna.Framework.Media.MediaPlayer.State == MediaState.Playing)
        

            Microsoft.Xna.Framework.Media.MediaPlayer.Pause();
            FrameworkDispatcher.Update();

        

该 mediaElement 的 xaml 代码

 <MediaElement AutoPlay="True" Source="/Dodaci/pozadina.mp3" x:Name="muzika_pozadina" MediaEnded="pustiPonovo" Loaded="pustiPonovo"   />

还有cs代码

private void pustiPonovo(object sender, RoutedEventArgs e)
    
        muzika_pozadina.Play();
    

声音大小约为 300kb。

那么,如何在用户恢复应用程序后恢复声音播放?

【问题讨论】:

【参考方案1】:

当您的应用程序进入休眠状态时(例如,当您点击开始按钮时),MediaElement 将停止。然后在您返回您的应用程序后(并且它没有被墓碑化),页面不会再次初始化,这意味着您的 MediaElement 不会再次加载,因此您的音乐不会再次启动。

这取决于您的目的和代码如何返回。在非常简单的示例中,当您不需要记住音乐的最后位置时,您可以在 OnNavigatedTo() 事件中再次设置 MediaElement 的源:

protected override void OnNavigatedTo(NavigationEventArgs e)

    base.OnNavigatedTo(e);
    if (e.NavigationMode == NavigationMode.Back)
            muzika_pozadina.Source = new Uri("/Dodaci/pozadina.mp3", UriKind.RelativeOrAbsolute);

由于您已将 MediaElement.AutoPlay 设置为 true - 它应该自动启动(因为您可能也不需要 Loaded 事件 pustiPonovo)。

在更复杂的情况下,您可以利用应用程序的 Activation 和 Deactivation 事件 - 从 Dormant/Tombstoned 情况返回 MediaElement 有很好的解释 here in the article。

您还应该阅读Fast App Resume,以防用户决定通过 Tile 而不是 Launchers-Choosers 返回您的应用程序。

我还没有尝试过上面的代码,但希望它能完成这项工作。

【讨论】:

谢谢!!!这就是我正在寻找的答案!这很好用!!!再次感谢!!! :) @我很高兴能帮上忙。如果它解决了您的问题,请不要忘记to accept an answer。

以上是关于windows phone 上退出应用程序后恢复音乐的主要内容,如果未能解决你的问题,请参考以下文章

Windows phone 8.1 后台任务突然退出

VNC 远程Windows 无声音

Python需求:啥值得买登录、签到、搜索功能

VC++如何实时感知Windows系统进入和退出待机状态(附源码)

抖音怎么用穿梭看直播

Windows Phone 8.1 / 10应用程序开发