У меня есть приложение, которое показывает страницу HTML5 с элементом видео в WebView.Мне потребовалось некоторое время, чтобы понять, как заставить работать видео, но в конце концов мне удалось воспроизвести видео, встроенное в WebView на Samsung Galaxy Tab (Android 3.1).Я использовал следующий код для тега видео:
<video controls poster="img/poster.jpg" height="240" width="360">
<source src="video/BigBuck.m4v">
<source src="video/BigBuck.theora.ogv" type="video/ogg">
<source src="video/BigBuck.webm" type="video/webm">
HTML5 video not supported.
</video>
Элемент видео имеет несколько источников, и теперь я пытаюсь захватить выбранный источник видео (и формат) до начала воспроизведения видео.Когда я нажимаю кнопку воспроизведения, я вижу HTTP-запрос на видеофайл, поступающий на веб-сервер, где хранятся видеофайлы, но мне не удается перехватить этот запрос на стороне приложения.
Я посмотрел на несколько методов, чтобы увидеть, проходит ли запрос видеофайла там, но я не видел, чтобы он проходил ни в одном из них.
- В
shouldOverrideUrlLoading(WebView view, String url)
в моих WebViewClient
толькоПервоначальный запрос страницы HTML5 проходит. - В
shouldInterceptRequest (WebView view, String url)
в моем WebViewClient
я вижу только прохождение первоначального запроса страницы HTML5 и запроса изображения видео-постера, но не видеофайла. onShowCustomView(View view, CustomViewCallback callback)
в моем WebChromeClient
вызывается только тогда, когда я нажимаю кнопку полноэкранного управления на странице HTML5, когда видео уже воспроизводится, но не когда я нажимаю кнопку воспроизведения.(Какова цель этого метода?)
У кого-нибудь есть предложения по другому методу, где я могу записать запрос на видеофайл, или кто-нибудь может объяснить мне, что на самом деле происходит, когда я нажимаюкнопка воспроизведения на элементе видео?