2016-02-08 21 views
14

我使用MediaElement播放網絡視頻。當我離開頁面時,我在任務管理器中注意到我的應用程序仍在使用網絡的10%,並且在完成下載視頻之前沒有下降。MediaElement網絡視頻不會停止緩衝

我試着做了以下,但沒有運氣。

//open link; 
    mediaElement.Source = welcomeVideoURL; 

    //when I leave the page OnNavigatedFrom() 
    mediaElement.Stop(); 
    mediaElement.ClearValue(MediaElement.SourceProperty); 
    mediaElement.Source = null; 

還試圖將源設置爲虛擬鏈接,但仍然沒有運氣。

我認爲打開鏈接作爲一個流和使用mediaElement.SetSource()可以工作,但我還沒有找到任何東西......也許我不搜索正確。

謝謝。

+1

您是否嘗試過'mediaElement.AudioCategory = AudioCategory.ForegroundOnlyMedia'。而且,你的服務器能夠處理HTTP範圍嗎?如果沒有,則無法分段下載視頻,應該立即下載。 – kiewic

+1

試過了,沒有用。還說它已被棄用。我相信MediaElement內的後臺下載程序只是不處理Dispose。但嘗試過你的HttpRandomAccessStream並完美工作! – Stamos

+1

看看['this'](http://stackoverflow.com/a/19295826/5697616)。上下文可能會有所不同,但是您可以通過將'isEnabled'更改爲'false',然後在處理程序中執行標準的'.Stop()'並將其置零,從而強制流刪除。也可以強制處置 – Gabe

回答

2

在其他question的@kiewic發表的評論中發現此MediaElementWithHttpClient。我可以管理流和下載過程並輕鬆處置它。

HttpRandomAccessStream videoStream = await HttpRandomAccessStream.CreateAsync(new Windows.Web.Http.HttpClient(), videoUrl); 
mediaElement.SetSource(videoStream, videoStream.ContentType);