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

时间:2014-05-17 03:27:19

标签: windows-phone-8.1 background-audio

我有一个通用的Windows商店项目。在Windows Phone部分,我使用BackgroundMediaPlayer.Current播放音频。该应用可通过KnownFolders.MusicLibrary访问媒体文件。 问题是当我在模拟器上使用虚拟SD卡运行我的应用程序时,音乐播放并且一切顺利。但是当我将应用部署到运行Lumia 920的{​​{1}}并按“播放”按钮时,没有任何反应。没有例外,没有强制关闭......完全没有。 问题:这是内部存储问题(WP8.1 DevPreview没有SD卡)还是Lumia 920在操作系统预览版中隐藏了错误或错误?

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题。

如果您注册处理程序:mediaPlayer.MediaFailed += mediaPlayer_MediaFailed;,您会发现在播放本地歌曲时(不在SD卡上)会收到UnauthorizedAccessException

以下是我所做的以及我是如何解决的:

由于BackgroundMediaPlayer.Current.SetUriSource导致错误,无论出于何种原因,该错误仅适用于SD卡上的文件。

因此,我没有将文件的路径传递给SetUriSource,而是使用

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

然后

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

所以现在它起作用....