2015-04-10 5 views
-1

Я пытаюсь воспроизвести видео HTML5 в своем приложении WebView. Он работает так, как ожидалось, на каждом тестируемом устройстве под управлением Android 5.x, но не работает на любом устройстве, работающем 4.x, что означает, что он практически не работает.Android HTML5 видео в WebView

Я включил аппаратное ускорение, и я установил WebChromeClient as the docs say to do, но видео все равно не будет воспроизводиться.

Для того, чтобы поддержать встроенный HTML5-видео в вашем приложении, вам необходимо иметь аппаратное ускорение включено и установить WebChromeClient.

AndroidManifest.xml

<application> 
    android:hardwareAccelerated="true" 
    ... 
</application> 

MyFragment.java

webView = new WebView(getActivity(), null, this); 
webView.setWebChromeClient(new WebChromeClient()); 

Есть ли что-то еще мне нужно сделать, не документирована в справочнике разработчиков?

+0

см. Https://gist.github.com/Offbeatmammal/3718414 для рабочего образца – Offbeatmammal

ответ

0

Проблема заключается в том, что WebKit плохо обрабатывает перенаправления для видео. В веб-страницах есть видеоролики из собственного API-интерфейса моей компании. Когда клик нажимается, вызов переходит к нашему API, а затем перенаправляется на Amazon S3, чтобы получить фактический видеофайл. Затем WebKit пытается «обрезать» видео (вместо предварительной загрузки всей вещи), как и следовало ожидать. Однако S3 уже сделал это, что приводит к тому, что воспроизведение полностью нарушено.

Android 5.x отлично работает, потому что WebView основан на Chromium, начиная с 4.4, который обрабатывает перенаправление соответствующим образом.

Смежные вопросы