如何从IsolatedStorage读取音频文件?

时间:2013-09-25 15:02:14

标签: c# windows-phone-7 windows-phone-8 windows-phone isolatedstorage

我有一个存储在IsolatedStorage ..

中的音频文件

我想通过调用另一个类的方法来访问它:

using (IsolatedStorageFile isolatedStorage = IsolatedStorageFile.GetUserStoreForApplication())
{
    using (IsolatedStorageFileStream fileStream = isolatedStorage.OpenFile(filePath, FileMode.Open, FileAccess.Read))
    {

        return fileStream;
    }
}

现在,当我以这种方式调用该方法时:

var fileStream = Musics.TryGetMusic("DaDaDa.mp3");
musicMediaElement.SetSource(fileStream);
musicMediaElement.Play();

我收到一条错误消息,说它无法读取已关闭的文件。

原因是我正在使用using语句,当我调用Play()时文件已关闭。 我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

这是因为,我认为你称之为

.... 

 using (IsolatedStorageFileStream fileStream = isolatedStorage.OpenFile(filePath, FileMode.Open, FileAccess.Read))
 {    
     return fileStream;
 }
....

退出using语句后,fileStream实例将被处理。

要解决此问题应该足以在此处不使用using,而是跟踪该实例生命周期并在适当的位置手动调用dispose。