2016-02-08 3 views
14

Я использую MediaElement для воспроизведения веб-видео. Когда я покинул страницу, я заметил в диспетчере задач, что мое приложение все еще использует 10% сети и не упало до завершения загрузки видео.MediaElement web Video не останавливает буферизацию

Я пробовал делать следующее, но не повезло.

//open link; 
    mediaElement.Source = welcomeVideoURL; 

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

Также попытался установить источник в фиктивную ссылку, но все равно не повезло.

Я думал, что открытие Link as Stream и использование mediaElement.SetSource() могут работать, но я ничего не нашел по этому поводу ... возможно, я не искал правильный.

спасибо.

+1

Вы пробовали без «mediaElement.AudioCategory = AudioCategory.ForegroundOnlyMedia'. И ваш сервер способен обрабатывать HTTP-диапазон? Если это не так, невозможно скачать видео по частям, и его нужно скачать сразу. – kiewic

+1

Пробовал, не работает. Также говорит, что он устарел. Я считаю, что загрузчик фона, находящийся внутри MediaElement, просто не удаляет. Но попробовал ваш HttpRandomAccessStream и отлично работал !. – Stamos

+1

Посмотрите на ['this'] (http://stackoverflow.com/a/19295826/5697616). Контекстуально может быть другим, но вы можете заставить поток упасть, изменив 'isEnabled' на' false', а затем выполнив стандартный '.Stop()' и обнуление в обработчике. Могли бы также заставить dispose – Gabe

ответ

2

Обнаружено, что MediaElementWithHttpClient в некотором другом question в комментарии от @kiewic. Я могу управлять потоком и процессом загрузки и легко распоряжаться им.

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