2011-01-06 5 views
12

¿Cómo se abre una URL de archivo de video remoto desde un botón, haga clic para reproducir en el MediaPlayer interno sin tener que abrir una ventana del navegador?Ayuda de Android: ¿Cómo se abre una URL de archivo de video remota para jugar en MediaPlayer sin tener que abrir una ventana del navegador?

El video funciona bien, pero siempre abre una ventana del navegador que es molesto.

Esto es lo que ya estoy usando, pero ¿es posible iniciar el reproductor de medios sin que la aplicación abra primero una ventana del navegador?

espero que alguien pueda ayudar a

Gracias Lucy

final Button button = (Button) findViewById(R.id.play); 
    button.setOnClickListener(new Button.OnClickListener() { 
     public void onClick(View v) { 
      // Perform action on click 
      Uri uri = Uri.parse("http://domain.com/videofile.mp4"); 
      Intent intent = new Intent(Intent.ACTION_VIEW, uri); 

      startActivity(intent); 

      } 

    }); 
} 

Respuesta

10

Trate de añadir el tipo MIME a la Intent. En este momento, está enrutando al navegador, que hace un HTTP HEAD, determina el tipo MIME y luego lo enruta a la aplicación adecuada. Si coloca el tipo MIME en usted mismo, debería omitir el paso del navegador.

+0

Gracias, por favor podría usted mostrar cómo codificar en lo anterior, no estoy muy seguro de cómo hacerlo, muchas gracias, Lucy – lucy

+1

@lucy: 'Intent intennt = new Intent (Intent.ACTION_VIEW); intent.setDataAndType (uri, "..."); 'donde' ... 'es el tipo MP4 MIME (' video/mp4', tal vez) – CommonsWare

+0

@CommonsWare Lo utilicé de esta manera: Intent intennt = new Intent (Intent. ACTION_VIEW); \t \t \t \t \t intent.setDataAndType (Uri.parse ("https://javmed-prod.s3.amazonaws.com/63351db3788f4393b49d4d701181c7c7.mp4"), "video/mp4"); \t \t \t \t \t startActivity (intent); .. y got ActivityNotFound ... también intentó "video/*" ... alguna idea, señor? – MKJParekh

21

Prueba esto:

Intent intent = new Intent(Intent.ACTION_VIEW); 
intent.setDataAndType(Uri.parse(videoPath), "video/mp4"); 
startActivity(intent); 
+1

Por alguna razón, dividir el setDataAndType() en 2 líneas no funciona para mí: intent.SetData (Uri.parse (videoPath)); intent.SetType ("video/mp4"); ... no es un gran problema, pero pensé que lo mencionaría en caso de que alguien más tenga el mismo problema. –

1

Es necesario configurar el tipo videoUrl y la mímica (video/mp4) en la intención, es decir:

String videoUrl = "http://videosite/myvideo.mp4"; 
Intent playVideo = new Intent(Intent.ACTION_VIEW); 
playVideo.setDataAndType(Uri.parse(videoUrl), "video/mp4"); 
startActivity(playVideo); 
+0

@Brad Reproducir videos como este me funciona. Pero tengo un caso en el que quiero agregar un encabezado adicional a la consulta HTTP. Agregué viewIntent.putExtra (Browser.EXTRA_HEADERS, bundle), pero solo agrega un encabezado cuando usa setData() en lugar de setDataAndType(). Mi idea es que quiero reproducir video, pero para eso el servidor necesita autorizarme usando encabezados en la consulta http ... – Balflear

Cuestiones relacionadas