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