BackgroundMediaPlayer在Windows Phone 8.1中不起作用

时间:2015-03-11 04:01:34

标签: windows-phone-8.1 background-music

我已经设置了一个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);”之后,调试器不会向前移动。它只是停在那里。 同样,没有播放音频。没有例外被抛出。

感谢您的帮助。

1 个答案:

答案 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));

见答案。