Перехват запроса источника видео HTML5 в Android WebView

У меня есть приложение, которое показывает HTML5-страницу с видеоэлементом в WebView. Мне потребовалось некоторое время, чтобы понять, как заставить видео работать, но наконец мне удалось воспроизвести видео, встроенное в WebView, на Samsung Galaxy Tab (Android 3.1). Я использовал следующий код для тега video:

<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>

Элемент video имеет несколько источников, и теперь я пытаюсь захватить выбранный источник видео (и формат) до того, как видео начнет воспроизводиться. Когда я нажимаю кнопку воспроизведения, я вижу HTTP-запрос на видеофайл, поступающий на веб-сервер, где хранятся видеофайлы, но мне не удается перехватить этот запрос на стороне приложения.

Я просмотрел несколько методов, чтобы узнать, проходит ли запрос на видеофайл, но ни в одном из них я не увидел, что он проходит.

  • В shouldOverrideUrlLoading(WebView view, String url) в моем WebViewClient проходит только начальный запрос HTML5 страницы.
  • В shouldInterceptRequest(WebView view, String url) в моем WebViewClient я вижу только прохождение начального запроса HTML5 страницы и запрос на изображение видео постера, но не на видео файл.
  • onShowCustomView(View view, CustomViewCallback callback) в моем WebChromeClient вызывается только когда я нажимаю кнопку управления полноэкранным режимом на HTML5 странице, когда видео уже проигрывается, но не когда я нажимаю кнопку воспроизведения. (Какова на самом деле цель этого метода?)

Есть ли у кого-нибудь предложение по поводу другого метода, где я могу перехватить запрос на видеофайл, или кто-нибудь может объяснить мне, что на самом деле происходит, когда я нажимаю кнопку воспроизведения на видеоэлементе?

6
задан Erika 25 January 2012 в 10:16
поделиться