Windows phone 8.1 BackgroundMediaPlayer在Windows Phone 8.1中不工作

Windows phone 8.1 BackgroundMediaPlayer在Windows Phone 8.1中不工作,windows-phone-8.1,background-music,Windows Phone 8.1,Background Music,我已经建立了一个Windows Phone项目及其相关的BackgroundTask项目,并完成了中所述的必要声明 我需要从音乐库的应用程序界面中选择一个音频文件,并将其分配给BackgroundMediaPlayer播放,以便在界面位于前台时,以及在暂停或锁定屏幕时播放歌曲 我尝试了以下方法,但无效: 从用户界面设置文件路径: 结果:不播放音频。没有抛出异常 将文件路径作为字符串传递到backgroundtask,从音乐库中搜索文件并播放: 结果:在StorageFile fileToPlay

我已经建立了一个Windows Phone项目及其相关的BackgroundTask项目,并完成了中所述的必要声明

我需要从音乐库的应用程序界面中选择一个音频文件,并将其分配给BackgroundMediaPlayer播放,以便在界面位于前台时,以及在暂停或锁定屏幕时播放歌曲

我尝试了以下方法,但无效:

从用户界面设置文件路径:

结果:不播放音频。没有抛出异常

将文件路径作为字符串传递到backgroundtask,从音乐库中搜索文件并播放:

结果:在StorageFile fileToPlay=songs.AsQueryable.Singles=>s.Path==toPlay;之后,调试器不会向前移动;。就停在那里。 同样,不播放音频。没有抛出异常

谢谢你的帮助


查看答案。

您的BackgroundPlayer启动了吗?你调试过了吗?是的。。我发现了问题。BackgroundMediaPlayer初始化未发生。它现在可以工作,但有时会引发此异常:后台音频任务未在预期时间内启动是因为BackgroundMediaPlayer启动需要一些延迟时间吗?任务未启动的原因可能有很多-由于系统策略或其他原因,您的代码可能会被关闭。注意不要同时开始两项任务。
StorageFile file = (await KnownFolders.MusicLibrary.GetFileAsync(
"Song from Music Library.mp3"));
BackgroundMediaPlayer.Current.SetUriSource(new System.Uri(file.Path, 
UriKind.RelativeOrAbsolute));
BackgroundMediaPlayer.Current.Play();
IReadOnlyList<StorageFile> songs = await 
KnownFolders.MusicLibrary.GetFilesAsync(CommonFileQuery.OrderByName);
StorageFile fileToPlay = songs.AsQueryable().Single(
s => s.Path == toPlay);
BackgroundMediaPlayer.Current.SetFileSource(fileToPlay); 
StorageFile file = (await KnownFolders.MusicLibrary.GetFilesAsync()).FirstOrDefault();
BackgroundMediaPlayer.Current.SetUriSource(new Uri(file.Path, UriKind.RelativeOrAbsolute));