在wp7中从隔离存储中流式传输视频

时间:2010-11-30 12:11:36

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

我正在尝试制作一些应该从服务器播放视频的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没有损坏,它的长度是正确的。我真的不知道该怎么做。 提前致谢

2 个答案:

答案 0 :(得分:2)

我找到了解决方案,这很奇怪,但是很有效。

问题是我保存名为%clipId%.clip的文件,但是当我将文件名更改为%clipId%.mp4(我的剪辑以mp4编码)时,它就变得有效了!

无法理解为什么会这样。

答案 1 :(得分:2)

媒体播放器查看文件名以检查它是否支持该格式。 “.clip”无效格式。