2010-08-01 6 views
5

He creado una aplicación que carga un sitio web con WebView. Todo funciona bien, excepto que no puedo reproducir ningún archivo de video dentro de la aplicación. Entonces, lo que busco ayuda es conseguir que mi aplicación lance el reproductor de medios cuando hago clic en un enlace que termina en .mp4. ¡Cualquier ayuda y consejo sería muy apreciado!iniciar mediaplayer en el enlace hacer clic en WebView

+0

¿Desea utilizar su propio reproductor multimedia en su aplicación (clase MediaPlayer.java del SDK), o desea iniciar el reproductor multimedia predeterminado del sistema? –

Respuesta

5

Es necesario reemplazar el método de su webViewCient shouldOverrideUrlLoading ...

final class MyWebViewClient extends WebViewClient { 
    @Override 
    public boolean shouldOverrideUrlLoading(WebView view, String url) { 
     if (url.endsWith(".mp4") { 
      Intent intent = new Intent("android.intent.action.VIEW", Uri.parse(url)); 
      view.getContext().startActivity(intent); 
      return true; 
     } else { 
      return super.shouldOverrideUrlLoading(view, url); 
     } 
    } 
} 

... que se asigna a la vista web:

WebViewClient webViewClient = new MyWebViewClient(); 
webView.setWebViewClient(webViewClient); 

Editar: También es importante que se agrega:

webView.getSettings().setAllowFileAccess(true); 

para permitir descargas de archivos/secuencias como mp 4 archivos.

+0

¡Gracias por la respuesta rápida! He agregado el código a mi aplicación y se compila sin error ... Pero todavía no carga el reproductor cuando se hace clic en el enlace. – Kyle

+0

Agregar webView.getSettings(). SetAllowFileAccess (true); Eso ayudará. Acabo de probarlo en mi código y funciona. –

+0

Hola Mathias, ¡Muchas gracias por toda tu ayuda! Pude hacerlo funcionar en el Emulador. Traté de cargar la aplicación en mi teléfono con 2.2 y se inicia el navegador web y luego se cierra, lo que me devuelve a mi aplicación. Sin video en absoluto. No estoy seguro de qué podría estar mal, aparte de que estoy ejecutando el emulador en 1.5. ¿Qué piensas? – Kyle

2

Nota: es posible que también desee establecer el tipo de datos. Esto parece resolver algunos problemas en Android 4.0 (Ice Cream Sandwich). Por ejemplo:

Intent intent = new Intent(Intent.ACTION_VIEW); 
intent.setDataAndType(Uri.parse(url), "video/*"); 
startActivity(intent);` 
+0

gracias me ayudó –

Cuestiones relacionadas