我已经设置了一个Windows Phone项目及其相关的BackgroundTask项目,并且还按照this article中的说明完成了所需的声明。
我需要从应用UI(从音乐库)中选择一个音频文件,然后将其分配给BackgroundMediaPlayer进行播放,以便在UI处于前台时播放歌曲,也可以在播放时播放暂停或屏幕被锁定。
我尝试过以下操作但不起作用:
从UI设置文件路径:
StorageFile file = (await KnownFolders.MusicLibrary.GetFileAsync(
"Song from Music Library.mp3"));
BackgroundMediaPlayer.Current.SetUriSource(new System.Uri(file.Path,
UriKind.RelativeOrAbsolute));
BackgroundMediaPlayer.Current.Play();
结果:没有播放音频。没有例外被抛出。
将文件路径作为字符串传递给backgroundtask,从音乐库中搜索该文件并进行播放:
IReadOnlyList<StorageFile> songs = await
KnownFolders.MusicLibrary.GetFilesAsync(CommonFileQuery.OrderByName);
StorageFile fileToPlay = songs.AsQueryable().Single(
s => s.Path == toPlay);
BackgroundMediaPlayer.Current.SetFileSource(fileToPlay);
结果:在“StorageFile fileToPlay = songs.AsQueryable()。Single(s =&gt; s.Path == toPlay);”之后,调试器不会向前移动。它只是停在那里。 同样,没有播放音频。没有例外被抛出。
感谢您的帮助。
答案 0 :(得分:0)
BackgroundMediaPlayer set Uri source of Media library item
StorageFile file = (await KnownFolders.MusicLibrary.GetFilesAsync()).FirstOrDefault();
BackgroundMediaPlayer.Current.SetUriSource(new Uri(file.Path, UriKind.RelativeOrAbsolute));
见答案。