在锁屏下播放音频 windows phone 8.1

Playing audio under lockscreen windows phone 8.1

我的 windows phone 8.1 应用程序有问题。在使用电源按钮打开锁定屏幕之前,我工作正常。 它保持 运行ning 像它应该的那样 - 但不再播放它应该播放的 .wav 文件。 我在负责播放声音的方法上设置了断点,它似乎 运行 它应该.. 其他一切正常,所有计时器线程等等。 我使用 MediaElements 播放声音,并将属性设置为

snd.AudioCategory = Windows.UI.Xaml.Media.AudioCategory.BackgroundCapableMedia;

我还在Package.appmanifest中启用了后台音频任务。

我尝试了很多方法,包括添加这段代码:

Microsoft.Phone.Shell.PhoneApplicationService.Current.ApplicationIdleDetectionMode =
                Microsoft.Phone.Shell.IdleDetectionMode.Enabled;

但是这个 dosent 工作,因为它不会识别名称空间.. 显然它没有在 8.1 中使用,但只在 8.0 中使用。

这是播放音频的方法:

public async void CountDownFromThree()
    {
        MediaElement snd = null;
        snd = SourceGrid.Children.FirstOrDefault(m => (m as MediaElement) != null) as MediaElement;
        if (snd == null)
        {
            snd = new MediaElement();
            SourceGrid.Children.Add(snd);
        }

        StorageFolder folder = await Package.Current.InstalledLocation.GetFolderAsync(@"Assets\SoundsFolder");
        StorageFile file = await folder.GetFileAsync("start-beeps.wav");
        var stream = await file.OpenAsync(FileAccessMode.Read);
        snd.SetSource(stream, file.ContentType);
        snd.MediaEnded += snd_MediaEnded;
        snd.Play();
    }

好的。因此,在 windows phone 8.1 中,BackgroundMediaPlayer 似乎是必经之路。我完全删除了所有 MediaElements - 恕我直言,它必须成为视觉树的一部分 - 毕竟这很奇怪。 我找到了一些对我有帮助的资源,链接如下。

http://www.jayway.com/2014/04/24/windows-phone-8-1-for-developers-the-background-media-player/

这个代码示例对我帮助很大,为了我的预期目的,它可以归结为很少的几行代码: https://code.msdn.microsoft.com/windowsapps/BackgroundAudio-63bbc319