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

Bor*_*mov 1 background-music media-player audio-player windows-phone windows-phone-8.1

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

Failed with error code System.UnauthorizedAccessException: Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))
Run Code Online (Sandbox Code Playgroud)

此问题代码,发生错误.为简单城市放置在前台应用程序中的代码:

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

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

小智 5

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

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