【问题标题】:Playing audio under lockscreen windows phone 8.1在锁屏windows phone 8.1下播放音频
【发布时间】:2015-04-11 18:43:54
【问题描述】:

我的 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;

然而,这个剂量可以工作,因为它不会识别命名空间。显然它没有在 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();
    }

【问题讨论】:

    标签: c# audio background


    【解决方案1】:

    好的。所以似乎在 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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-27
      • 1970-01-01
      • 2014-04-22
      相关资源
      最近更新 更多