WP8.1 BackgroundMediaPlayer不能在设备上播放,但可以在模拟器上运行



我有一个通用的Windows商店项目。在Windows Phone部分,我使用BackgroundMediaPlayer.Current来播放音频。该应用程序通过KnownFolders.MusicLibrary访问媒体文件。问题是当我用虚拟SD卡在模拟器上运行我的应用程序时,音乐播放,一切都很好。但是当我将应用程序部署到我的Lumia 920运行WP8.1 DevPreview,并按下"播放"按钮时,什么也没有发生。没有例外,没有强制关闭……完全没有。问题:这是一个内部存储问题(Lumia 920没有SD卡)或BackgroundMediaPlayer有一个bug或bug隐藏在OS预览版本?

我也遇到过同样的问题。

如果你注册到处理器:mediaPlayer.MediaFailed += mediaPlayer_MediaFailed;,你会发现你得到一个UnauthorizedAccessException当播放本地歌曲(不是在SD卡上)。

这是我所做的和我是如何解决的:

这个错误是由于BackgroundMediaPlayer.Current.SetUriSource,不管什么原因,它只适用于SD卡上的文件。

所以我没有将文件的路径传递给SetUriSource,而是用

加载StorageFile
StorageFile sf = await StorageFile.GetFileFromPathAsync(musicDataFullPath);

mediaPlayer.SetStreamSource((await sf.OpenStreamForReadAsync()).AsRandomAccessStream());

现在可以运行了....

相关内容

最新更新