改变位置后 MediaElement 不播放

MediaElement not playing after changing position

我有一个视频播放器,可以分块下载视频文件。下载 1MB 的块后,将调用一个事件,为 MediaElement 提供其源并使其播放。在播放视频的同时,下载剩余的 1MB 块,直到文件完成。
如果只下载 1MB 的视频,播放时间等于 17 秒(稍后会介绍)。

文件下载完成后,用户可以更改视频的位置或进行搜索。如果用户定位到小于或等于 17 秒的位置,则 MediaElement 将更改其位置并继续播放,但是如果用户定位到大于 17 秒的位置,则视频会冻结。

这可能是因为 MediaElement 只缓冲了 1MB 的视频,所以它只会在那个时间范围内寻找,但这没有意义,因为如果我让它不间断地播放,它会播放整个视频而不会中断任何问题。有人能告诉我这是怎么回事吗?
代码:

private void downloadchunks()
 for (int i = 1; i <= 20; i++)
 {
  WriteStream = new System.IO.FileStream(DownloadLocation, System.IO.FileMode.Create, System.IO.FileAccess.Write, System.IO.FileShare.ReadWrite);
  //request and receive a response of 1MB of a file
  rpstream = response.GetResponseStream();
  byte[] buffer;
  using (var SReader = new MemoryStream())
  {
     rpstream.CopyTo(SReader);
     buffer =SReader.ToArray();
     WriteStream.Seek(WritePos,SeekOrigin.Begin);
     WriteStream.Write(buffer, 0, buffer.Length);
     WriteStream.Close();
  }
  if (i==1)
   {
    PlayVideo();
   }
 }
private void PlayVideo()
{
  MediaElement.Source = new uri(DownloadLocation);
  MediaElement.Play();
}

我已经弄明白了。只需在将其分配给 MediaElement 之前创建一个虚拟文件,然后开始下载。

File.WriteAllBytes(location, new byte[filesize]);