¿Cuál es la diferencia entre MediaPlayer y VideoView en Android?

95

Me preguntaba si hay una diferencia entre ellos cuando se trata de transmitir videos.

Sé que VideoViewse puede usar para transmisión y para qué sirve Mediaplayer. Hasta donde yo sé, ¿ MediaPlayerpuedo hacer lo mismo que VideoViewno?

¿Alguien puede darme la respuesta?

Y si quiero transmitir video desde el servidor usando RTSP a Android, ¿con cuál debo comenzar? VideoViewo MediaPlayer?

¿Cualquier sugerencia?

Oattie
fuente
¿No debería estar en superusuario?
Quamis
13
Creo que pertenece aquí. ¿No es esta una pregunta de programación de Android?
juell

Respuestas:

40

Estaba haciendo la misma pregunta y, como entendí por lo que Mark (CommonsWare) aconsejó sobre numerosos hilos aquí, VideoView es un contenedor (200 líneas de código) para MediaPlayer y SurfaceView para proporcionar controles integrados.

También compartió amablemente algunos ejemplos:

https://github.com/commonsguy/cw-advandroid/blob/master/Media/Video/src/com/commonsware/android/video/VideoDemo.java

https://github.com/commonsguy/vidtry/blob/master/src/com/commonsware/android/vidtry/Player.java

y ejemplo de Android SDK http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/media/MediaPlayerDemo.html

Además, algunas personas tuvieron problemas para reproducir videos en el emulador, así que asegúrese de probarlo en el dispositivo real si tiene problemas

mishkin
fuente
17

VideoView es esencialmente una vista que está vinculada a un MediaPlayer para que sea mucho más fácil implementar videos en su aplicación. Si no está haciendo mucho trabajo personalizado, VideoView es el camino a seguir.

Dicho esto, también puede pasar el enlace RTSP al sistema para usar la aplicación más adecuada para reproducir el video, lo que es aún más fácil de hacer:

String url = "rtsp://yourrtsplink.com/blah";
Uri uri = Uri.parse(url);
startActivity(new Intent(Intent.ACTION_VIEW, uri));

El video debe probarse en un dispositivo, ya que la reproducción del emulador es deficiente, y también debe tener en cuenta que RTSP requiere un puerto adicional para estar abierto, que está bloqueado por algunos firewalls.

Ian G. Clifton
fuente
cual es mas rapido?
Albert Chen
0

El VideoPlayer es un contenedor para MediaPlayer y SurfaceView, es más fácil implementar un reproductor de video con VideoView que con un MediaPlayer, si los archivos de video se almacenan en el almacenamiento interno de la aplicación, use el proveedor de contenido o almacénelos como legibles para todo el mundo, de lo contrario lo hará no trabajo

HocineHamdi
fuente