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