c# - 在锁屏Windows Phone 8.1下播放音频

标签 c# audio background

我的Windows Phone 8.1应用存在问题。在使用电源按钮打开锁定屏幕之前,我无法正常工作。
它保持应有的状态运行-但不再播放其应有的.wav文件。
我已经在负责播放声音的方法上设置了断点,并且它似乎应该在此运行。其他所有方法都起作用,所有计时器线程都如此。
我正在使用MediaElements播放声音,并且将属性设置为

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

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

我尝试了很多东西,包括添加以下代码:
Microsoft.Phone.Shell.PhoneApplicationService.Current.ApplicationIdleDetectionMode =
                Microsoft.Phone.Shell.IdleDetectionMode.Enabled;

但是,这很有效,因为它无法识别 namespace 。显然,它不在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是必经之路。我完全删除了所有MediaElement,IMHO必须成为视觉树的一部分,毕竟还是很奇怪。
我发现了一些对我有帮助的资源,下面是链接。

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

关于c# - 在锁屏Windows Phone 8.1下播放音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29581666/

相关文章:

java - Linux 后台运行和终止 java 程序

c# - VS 2015 Locals 窗口消失

javascript - 如何检查字符串是否可能由机器人生成?

c# - 将 GPS 坐标转换为 X、Y、Z 坐标

windows - 将姓名录音上传到Outlook

javascript - 如何使用链接更改背景图像

javascript - 如何从响应中读取文件名-reactJs

ios - 第一次音频启动延迟 - ios Swift

javascript - 使用当前音频 javascript 创建播放/暂停功能

html - 背景剪辑与背景大小的封面喙封面?