1
我有一個視頻播放器,它以塊的形式下載視頻文件。在下載一塊1MB的數據後,會調用一個事件給MediaElement來源,並使其播放。在播放視頻的同時,下載剩餘的1MB塊直到文件完成。
如果只下載1MB的視頻,則播放時間等於17秒(稍後會介紹)。
當文件被完全下載時,授予用戶改變視頻位置或尋找它的權限。如果用戶尋找的位置等於或小於17秒,則MediaElement將改變其位置並繼續播放,但是如果用戶尋找到大於17s的位置,則視頻會凍結。
這可能是因爲MediaElement只緩衝了1MB的視頻,所以它只會在這個時間範圍內尋找,但它沒有任何意義,因爲如果我讓它不間斷播放,它就會播放整個視頻沒有任何問題。有人能告訴我發生了什麼事嗎?
代碼:MediaElement不能在更改位置後播放
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();
}