Mostrar vídeo HTML5 en pantalla completa

Tengo una webview que tiene video html dentro de ella. Quiero mostrar este video a pantalla completa por lo que anular onShowCustomView de mi WebChromeClient para utilizar un VideoView . Esto funciona muy bien en 2.3, sin embargo, en 4.x onShowCustomView nunca se llama. El video seguirá reproduciéndose, sin embargo, se reproducirá desde dentro de la vista web sin ningún control, además de hacer clic para reproducir y detener.

Además, tengo hardwareAccelerated = "true".

¿Alguna idea de por qué onShowCustomView nunca se llama?

 @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); webView = (WebView) findViewById(R.id.webView); webView.getSettings().setSupportZoom(true); webView.getSettings().setLoadWithOverviewMode(true); webView.getSettings().setUseWideViewPort(true); webView.getSettings().setBuiltInZoomControls(true); webView.getSettings().setJavaScriptEnabled(true); webView.getSettings().setDomStorageEnabled(true); webView.getSettings().setPluginState(WebSettings.PluginState.ON); webView.setWebViewClient(new WebViewClient()); webView.setWebChromeClient(new MyChromeClient()); webView.loadUrl(URL); } private class MyChromeClient extends WebChromeClient implements OnCompletionListener, OnErrorListener, OnPreparedListener { @Override public void onShowCustomView(View view, CustomViewCallback callback) { Log.d("ma", "onShowCustomView"); } ... 

2 Solutions collect form web for “Mostrar vídeo HTML5 en pantalla completa”

Bien después de luchar con esto por un tiempo, finalmente encontré la causa. En Android 4.x debe mostrar los controles mediante el atributo html 'controls' en la etiqueta 'video'. Una vez que usted está mostrando estos controles, puede hacer clic en el botón de pantalla completa que luego llamará 'onShowCustomView'. Dado que el vídeo incorporado está disponible en 4.x y tiene la opción de ir a pantalla completa con los controles, onShowCustomView no se llamará automáticamente en el juego. Desafortunadamente, esto está muy poco documentado en la documentación de Android.

Esto funciona para mí.

Encontré una "solución de peculiaridades" al hacer la aplicación web con videos vimeo. He probado dos dispositivos. Uno es Android versión 4.2.x, otro es 4.4.x versión. Uno es capaz de reproducir vídeo en modo de pantalla completa, otro no es capaz de.

Después de leer el documento oficial ' Migrar a WebView en Android 4.4 ', descubrí que hay diferentes nombres 'UserAgent' en dos dispositivos.

Uno tiene este userAgent.

 Mozilla/5.0 (Linux; Android 4.4.2; SHV-E300L Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/30.0.0.0 Mobile Safari/537.36 

Otro tiene esto.

 Mozilla/5.0 (Linux; Android 4.4.4; SHV-E370K Build/KTU84P) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/33.0.0.0 Mobile Safari/537.36 

Creo que la versión de cromo es la solución que hace vídeo en pantalla completa. Así que cambié la versión de cromo a 30.x.

 WebSettings s = mWebView.getSettings(); //Change UserAgent to play fullscreen vimeo's videos. String agent = s.getUserAgentString(); String p = "(Chrome/[0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+)"; Pattern pattern = Pattern.compile(p); Matcher matcher = pattern.matcher(agent); if(matcher.find()) { agent = matcher.replaceFirst("Chrome/30.0.0.0"); } s.setUserAgentString(agent); 

Oh ~~ puedo dormir … (lo siento con mi pobre inglés)

  • Indicador de actividad de cliente de webview android
  • ¿WebViewClient y WebChromeClient se excluyen mutuamente?
  • ¿Cómo puedo desplazar un WebView a un punto específico en Android
  • Cómo obtener el nombre de archivo al hacer clic en URL en la vista web
  • Detectar el cambio de ubicación de la URL de webview de Android
  • Carga de archivos en WebView
  • Forzar el no-flash Vimeo incrustar o deshabilitar Flash en un WebView?
  • Problemas con Vimeo Player en Android WebView de la aplicación
  • ¿Qué significa "bloquear todas las solicitudes de carga de red"?
  • WebView y HTML5 <video>
  • Android WebViewClient onReceivedError no se llama para un error 404
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.