Transmitiendo videos de Youtube

Estoy escribiendo una aplicación para reproducir videos de youtube mediante transmisión.

Primer método:

Estoy obteniendo la URL de RTSP para el video usando las API de GData. Aquí está el código para reproducir la url RTSP.

VideoView mVideoView = new VideoView(this); setContentView(mVideoView); mVideoView.setVideoURI(Uri.parse("rtsp://rtsp2.youtube.com/CiILENy73wIaGQkDwpjrUxOWQBMYESARFEgGUgZ2aWRlb3MM/0/0/0/video.3gp")); mVideoView.start(); 

Pero arroja un error tanto en el dispositivo G1 como en el emulador (el emulador tiene algún problema de firewall según la lista de correo) Aquí está el mensaje de error

ERROR / PlayerDriver (35): Comando PLAYER_INIT completado con un error o información PVMFFailure

Segundo método:

Una forma de hackear la ruta del archivo 3gp desde http://www.youtube.com/get_video?v= & t = & .. Después de obtener la ruta del archivo y puedo llamar a setVideoURI y se reproduce bien. Pero es una forma de hack para lograr el requisito. He revisado la aplicación de Youtube también, también hace la forma de hackear la url de youtube. (Revisado con logcat)

He intentado cambiar de VideoView a MediaPlayer, pero no hubo cambios en el error.

¿Hay una forma “limpia” de hacer esto?

Por favor, hágame saber sus pensamientos.

Si está dispuesto a hacer el trabajo en una nueva actividad, lo siguiente funcionará en un dispositivo pero no en el emulador:

startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.youtube.com/watch?v=cxLG2wtE7TM")));

A veces Uri.parse devuelve “nulo” porque no puede analizar un protocolo rtsp en lugar de un protocolo http.

Mire con un log in logcat Uri.parse(rtspURL).toString() y no verá nada escrito. o solo haga Log.d("tag", Uri.parse); y lo mismo será el regreso.

Intenta encontrar otra forma de analizar (crear) un Uri.

Intentaría con eso y ejecutar:

 String urlVideo =  VideoView video = (VideoView)findViewById(R.id.VideoView01); Log.d(tag , urlVideo); video.setVideoURI(Uri.parse(urlVideo)); MediaController mc = new MediaController(this); video.setMediaController(mc); video.requestFocus(); video.start(); mc.show(); 

¡Estoy impresionado de que la manera sucia funcione en absoluto! Si tienes una solución funcional, ve con ella. No creo que haya una forma clara de hacer que la transmisión RTSP funcione en el SDK todavía.

enfrentamos un problema muy similar.

En este momento estoy en el primer paso de mi proyecto y estoy tratando de hacer que el videoview simplemente funcione. Estoy tomando datos desde aquí: http://gdata.youtube.com/demo/ y estoy probando todos los enlaces de videos.

Los videos RTSP 3GP son realmente videos de muy baja calidad … y no hay forma de acceder a videos mp4 (de buena calidad). Realmente no sé cómo hacer que funcione porque creo que las transmisiones MP4 están disponibles solo para desarrolladores premium ….

Eche un vistazo a la API de Youtube

Creo que esto también usa la aplicación de youtube (que no quieres)

Pero refiérase puede ser encontrará alguna clave para resolverlo

He mostrado videos de YouTube con el siguiente código. Espero que sea útil, pero háganme saber cómo podría mejorarse.

 @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.youtube.com/watch?v=..."))); } public void onPrepared(MediaPlayer mp) { // TODO Auto-generated method stub } 

El encabezado del video indica que funciona para Android. Por lo tanto, intente un buen enlace de video para experimentar. Aquí hay uno que uso:

rtsp: //184.72.239.149/vod/mp4: BigBuckBunny_115k.mov

Funciono muy bien en tabletas Nexus y Samsung.

¿tienes acceso a Internet? si no, agregue el permiso de Internet al archivo de manifiesto

   

y también prueba estos URI:

 rtsp://184.72.239.149/vod/mp4:BigBuckBunny_175k.mov http://www.wowza.com/_h264/BigBuckBunny_175k.mov