不要在WP8.1中播放设备上手机音乐库中的歌曲

时间:2014-11-09 11:08:00

标签: windows-phone media-player windows-phone-8.1 audio-player background-music

我为Windows Phone 8.1开发音乐应用程序。我使用BackgroundTask并访问手机音乐库。应用程序在具有虚拟SD卡的模拟器上正常工作,但在设备上不起作用。在设备上尝试播放时,会发生错误:

Failed with error code System.UnauthorizedAccessException: Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))

此问题代码,发生错误。代码放置在前景app中,用于简单性:

  BackgroundMediaPlayer.Current.SetUriSource(new Uri("C:\\Data\\Users\\Public\\Music\\Ballroom\\Juan Camus - Now That The Love's Gone.mp3"));
        BackgroundMediaPlayer.Current.Play();

有谁知道如何解决这个问题?

1 个答案:

答案 0 :(得分:5)

当指向未与应用程序打包在一起的文件时,使用后台任务中的SetUriSource不起作用。如果要播放用户库或SD卡中的文件,则需要使用SetFileSource或SetStreamSource。您可以通过调用StorageFile.GetFileFromPathAsync(path)从路径获取文件。

不幸的是,这没有记录,所以很多人可能会遇到这种情况(特别是因为该示例使用了SetUriSource)。更糟糕的是,当从VS部署时,使用SetUriSource 在模拟器中工作,甚至在手机上工作。但它在提交到商店时停止工作。所以人们会很晚才知道他们的应用程序不起作用......