Как отключить взаимодействие с видео html5 в веб-просмотре или правильно уловить их исключения?

У меня есть приложение с webview, и я использую ACRA. Я получаю отчеты о сбоях от пользователей с ошибками, вызванными взаимодействием с HTML5Video.

Ошибка 1:

"java.lang.NullPointerException
    at android.webkit.HTML5VideoViewProxy$VideoPlayer.exitFullScreenVideo(HTML5VideoViewProxy.java:180)
    at android.webkit.HTML5VideoViewProxy.exitFullScreenVideo(HTML5VideoViewProxy.java:770)
    at android.webkit.WebViewClassic$PrivateHandler.handleMessage(WebViewClassic.java:7422)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:137)
    at android.app.ActivityThread.main(ActivityThread.java:5039)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:511)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
    at dalvik.system.NativeStart.main(Native Method)"

Ошибка 2:

"java.lang.NullPointerException
    at android.webkit.HTML5VideoFullscreen.switchProgressView(HTML5VideoFullscreen.java:455)
    at android.webkit.HTML5VideoView.enterFullscreenVideoState(HTML5VideoView.java:546)
    at android.webkit.HTML5VideoViewProxy$VideoPlayer.enterFullscreenVideo(HTML5VideoViewProxy.java:182)
    at android.webkit.HTML5VideoViewProxy.handleMessage(HTML5VideoViewProxy.java:479)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:155)
    at android.app.ActivityThread.main(ActivityThread.java:5485)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:511)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1028)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:795)
    at dalvik.system.NativeStart.main(Native Method)"

Вот мои журналы DropBox, если необходимо:

для ошибки 1: http://pastebin.com/w8G1UJvG

кажется интересным:

11-14 22:19:29.912 E/libEGL  (14744): call to OpenGL ES API with no current context (logged once per thread)
11-14 22:19:29.917 W/dalvikvm(14744): threadid=1: thread exiting with uncaught exception (group=0x40d4a2d0)

для ошибки 2: http://pastebin.com/8BEK1vAm

кажется интересным:

12-10 00:14:52.542 W/YourLogTag(24823): Couldn't find activity to view mimetype: video/x-m4v

На самом деле, я даже не предлагаю взаимодействовать с видео HTML5 в своем веб-обзоре. Я думаю, пользователи открывают их со страниц, взаимодействие с которыми также не предоставляется. Также я считаю, что это плохой способ попытаться запретить пользователям взаимодействие с другими веб-страницами (и это может быть очень сложно в случае моего приложения). Но также, пользователь определенно не испытывает теплого чувства к моему приложению, когда перед ним появляется диалог об аварии...

Итак, я хочу заблокировать взаимодействие пользователей с HTML5 Video в моем веб-браузере или просто правильно перехватить исключения (кажется, это не очень хороший подход). Какой лучший способ сделать это?

Вот мои настройки веб-просмотра, если они требуются:

webView.getSettings().setJavaScriptEnabled(false);
webView.getSettings().setUserAgentString("Some user agent"); 

Ответ 1

К сожалению, я не смогу дать прямой ответ, однако, я нашел интересный пост, который вызвал много разговоров. Видео WebView и HTML5

Это старый вопрос, но вы заметите, что с течением времени были опубликованы новые и новые ответы, которые позволили работать с HTML5-видео. Надеемся, что некоторые из этих ответов помогут вам найти правильный путь и в конечном итоге заставить его работать на вас.

Я также нашел проект с открытым исходным кодом, который исправил проблему для вас... однако он старый и не работает для 4.0 и выше. HTML5 WebView