在锁屏下播放音频 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
我的 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