我注意到我可以通过代码(XNA MediaPlayer和BackgroundAudioPlayer)访问的所有音频播放器都需要在特殊位置使用文件 - 它们只是在没有任何错误消息的情况下播放失败。
所以我可以将文件复制到IsolatedStorage,现在我又需要一个普通路径(正常意味着在文件系统上完全限定它的路径:绝对路径,这样我就可以使用System.IO.File)。
这是可能的,如果是的话,怎么样?
(我想把这条路径交给一个Microsoft.Xna.Framework.Media.MediaPlayer,希望它可以从那个位置播放,因为它似乎无法从任意位置播放。)
答案 0 :(得分:2)
你看过MediaElement了吗? (System.Windows.Controls.MediaElement
)您可以使用IsolatedStorageFileStream
:
using (var isoStorage = IsolatedStorageFile.GetUserStoreForApplication())
{
if (isoStorage.FileExists(strFilename))
{
IsolatedStorageFileStream isoAudioFile = IsolatedStorageFileStream(strFilename, FileMode.Open, FileAccess.Read, isoStorage);
medAudioPlayer.SetSource(isoAudioFile);
}
}
medAudioPlayer是您的MediaElement。
注意:这适用于Windows Phone 8.1 Silverlight应用。不确定它是否可用于通用应用程序。