我有一个在 WP7 和 WP8 设备上成功运行的 WP7 应用程序。在应用程序中,我使用该BackgroundFileTransfer
服务下载音频文件并将文件存储到文件shared/transfers
夹中。然后,我通过为下载的文件位置提供 URI 来创建AudioTrack
s。
Uri episodeLocation;
try
{
using (IsolatedStorageFile iso = IsolatedStorageFile.GetUserStoreForApplication())
{
Debug.WriteLine(" *** Creating track, file exists: " + iso.FileExists("shared/transfers/song.mp3"));
}
episodeLocation = new Uri("shared/transfers/song.mp3", UriKind.Relative);
} catch(Exception) {
return null;
}
return new AudioTrack(episodeLocation,
"Track name",
"Album name",
"",
new Uri("/path/to/logo", UriKind.Relative));
这适用于 Windows Phone 7 和 Windows Phone 8 设备- 音频播放器能够很好地播放曲目。如果文件存在,调试输出True
将作为测试结果打印。
我现在已将 Visual Studio 2012 中的应用程序转换为 Windows Phone 8 应用程序。如果我现在在 Windows Phone 8 中运行该应用程序,我会收到System.IO.FileNotFoundException
来自播放器的外部异常。True
同样在转换后的版本中,在检查文件是否存在时会打印调试输出。
我只是将应用程序从 WP7 转换为 WP8 应用程序,我无法再引用文件shared/transfers
。
为什么?
这样做的正确方法是什么?
我已经尝试使用 URI 来引用文件,isostore:/shared/transfers/song.mp3
但这似乎没有效果。