我正在尝试制作一些应该从服务器播放视频的wp7应用。 该应用程序的一项功能是下载所选视频并从隔离存储中播放。
我正在使用下一代码进行下载:
WebClient wc = new WebClient();
wc.OpenReadCompleted += (s, a) => { /* saving result stream to isolated storage */}
wc.OpenReadAsync(fileUri);
所以,当我点击播放按钮时,我会检查文件是否已下载,如果是,我打开了此文件的IsolatedStorageFileStream并将其设置为播放器的源,否则我设置为源文件Uri。
问题是当我尝试将IsolatedStorageFileStream设置为MedialElement的源时,我得到了MediaFailed异常。有人可以帮我吗?
代码看起来像下一个
private IsolatedStorageFile isf;
private IsolatedStorageFileStream stream;
private void playButton_Click(..)
{
isf = IsolatedStorageFile.GetUserStoreForApplication();
stream = isf.OpenFile(path, FileMode.Open);
MediaPlayer.SetSource(stream);
MediaPlayer.Play();
}
Stream没有损坏,它的长度是正确的。我真的不知道该怎么做。 提前致谢
答案 0 :(得分:2)
我找到了解决方案,这很奇怪,但是很有效。
问题是我保存名为%clipId%.clip的文件,但是当我将文件名更改为%clipId%.mp4(我的剪辑以mp4编码)时,它就变得有效了!
无法理解为什么会这样。
答案 1 :(得分:2)
媒体播放器查看文件名以检查它是否支持该格式。 “.clip”无效格式。