La plataforma Android proporciona bibliotecas que puede usar para transmitir archivos multimedia, como videos remotos, presentándolos para su reproducción en sus aplicaciones. En este tutorial, transmitiremos un archivo de video viéndolo usando el VideoView
componente con un MediaController
objeto para permitir al usuario controlar la reproducción.
También repasaremos brevemente el proceso de presentación del video utilizando el MediaPlayer
clase. Si ha completado el serie sobre la creación de un reproductor de música para Android, puede usar lo que aprendió en este tutorial para mejorarlo aún más. Debería poder completar este tutorial si ya ha desarrollado al menos algunas aplicaciones de Android.
Opción Premium
Si desea una solución lista para usar, consulte YoVideo, una plantilla de aplicación de Android para crear un hermoso reproductor de video móvil para teléfonos inteligentes Android.
Los usuarios pueden ver videos, seguirlos y compartirlos con sus amigos en Facebook. El uso de esta plantilla de aplicación le permitirá ahorrar tiempo y dinero al crear una aplicación para compartir videos.


O puede contratar un Desarrollador de Android para crear una solución personalizada para usted. Si no es así, sigue leyendo para descubrir cómo hacerlo tú mismo.
1. Crea una nueva aplicación
Etapa 1
Puede usar el código de este tutorial para mejorar una aplicación existente en la que está trabajando, o puede crear una nueva aplicación ahora en Eclipse o Android Studio. Crea un nuevo proyecto de Android, dale un nombre de tu elección, configura los detalles y dale una primera mano Activity
clase y diseño.
2do paso
Comencemos por configurar el manifiesto del proyecto para la transmisión de medios. Abra el archivo de manifiesto de su proyecto y vaya a la edición XML en su IDE. Para la transmisión de medios, necesita acceso a Internet, así que agregue el siguiente permiso en el manifest
elemento:
2. Agregar VideoView
Etapa 1
La plataforma Android proporciona la VideoView
clase en el que puede reproducir archivos de video. Agreguemos uno al archivo de diseño principal:
Edite el diseño principal para adaptarlo a su propia aplicación si es necesario. Damos el VideoView
ejemplo uno id
atributo para que podamos referirnos a él más tarde. Es posible que deba ajustar las otras propiedades de diseño para su propio diseño.
2do paso
Ahora consigamos una referencia a VideoView
instancia en el código. Abre el menú principal de tu aplicación. Activity
class y agregue las siguientes importaciones adicionales:
import android.net.Uri; import android.widget.MediaController; import android.widget.VideoView;
Tu Activity
la clase ya debe contener el onCreate
método en el que se define la vista de contenido:
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); }
Después de la setContentView
fila, obtengamos una referencia a la VideoView
como sigue, usando el id
definimos en diseño XML:
VideoView vidView = (VideoView)findViewById(R.id.myVideo);
3. Transmitir un archivo de video
Etapa 1
Ahora podemos transmitir un archivo de video a la aplicación. Prepare el URI del extremo de la siguiente manera:
String vidAddress = "https://archive.org/download/ksnn_compilation_master_the_internet/ksnn_compilation_master_the_internet_512kb.mp4"; Uri vidUri = Uri.parse(vidAddress);
Por supuesto, necesitará usar la dirección remota del archivo de video que desea transmitir. El ejemplo aquí es un archivo de video de dominio público alojado en el Archivos de Internet. Analizamos la cadena de direcciones como un URI para poder pasarla al VideoView
objeto:
vidView.setVideoURI(vidUri);
Ahora puedes empezar a leer:
vidView.start();
El sistema operativo Android admite una variedad de formatos de video y multimedia, y cada dispositivo a menudo admite formatos adicionales además de eso.
Como puede ver en el Guía del desarrollador, los formatos de archivo de video admitidos incluyen 3GP, MP4, WEBM y MKV, según el formato utilizado y el nivel de plataforma instalada por el usuario.
Los formatos de archivo de audio para los que puede esperar compatibilidad integrada incluyen MP3, MID, OGG y WAV. Puede transmitir contenido multimedia a Android a través de RTSP, HTTP y HTTPS (desde Android 3.1).
4. Agregar controles de lectura
Etapa 1
Hemos implementado la reproducción de video, pero el usuario esperará y estará acostumbrado a tener el control de la misma. Una vez más, la plataforma Android proporciona recursos para manejar esto mediante una interacción familiar a través de la MediaController
clase.
En tu Activity
clase onCreate
método, antes de la línea a la que está llamando start
sobre VideoView
, crea una instancia de la clase:
MediaController vidControl = new MediaController(this);
Luego configúrelo para usar el VideoView
instancia como su ancla:
vidControl.setAnchorView(vidView);
Y finalmente, configúrelo como controlador de medios para el VideoView
objeto:
vidView.setMediaController(vidControl);
Lorsque vous exécutez l’application maintenant, l’utilisateur doit être en mesure de contrôler la lecture de la vidéo en streaming, y compris les boutons d’avance rapide et de retour rapide, un bouton de lecture / pause et un contrôle de la barre de investigación.
El comando de la barra de búsqueda está acompañado por la longitud del archivo multimedia a la derecha y la posición de reproducción actual a la izquierda. Además de poder tocar la barra de búsqueda para navegar a una posición en el archivo, el estado de la transmisión se muestra usando el mismo tipo de vista que el usuario utilizará desde sitios y ubicaciones, aplicaciones como YouTube.




Como verá cuando ejecute la aplicación, el comportamiento predeterminado es que los controles desaparezcan después de unos momentos, reapareciendo cuando el usuario toca la pantalla. Puede configurar el comportamiento del MediaController
objeto de varias formas. Ver el serie sobre cómo hacer una aplicación de reproductor de música para Android para ver un ejemplo de cómo hacer esto. También puede mejorar la reproducción de medios implementando varios oyentes para configurar el comportamiento de su aplicación.
5. Utilizando MediaPlayer
Etapa 1
Antes de terminar, repasemos un enfoque alternativo para la transmisión de videos usando el MediaPlayer
clase, ya que lo usamos en el serie sobre la creación de un reproductor de música. Puede transmitir contenido multimedia, incluidos videos, en un MediaPlayer
objeto utilizando una vista de superficie. Por ejemplo, puede utilizar el siguiente diseño:
Nos referiremos al SurfaceView
en la implementación de Activity
clase.
2do paso
En tu Activity
class, agregue las siguientes interfaces:
public class MainActivity extends Activity implements SurfaceHolder.Callback, OnPreparedListener
Su IDE debería pedirle que agregue estos métodos no implementados:
@Override public void surfaceChanged(SurfaceHolder arg0, int arg1, int arg2, int arg3) { // TODO Auto-generated method stub } @Override public void surfaceCreated(SurfaceHolder arg0) { //setup } @Override public void surfaceDestroyed(SurfaceHolder arg0) { // TODO Auto-generated method stub } @Override public void onPrepared(MediaPlayer mp) { //start playback }
Agregaremos al surfaceCreated
y onPrepared
métodos.
Paso 3
Para implementar la lectura, agregue las siguientes variables de instancia a la clase:
private MediaPlayer mediaPlayer; private SurfaceHolder vidHolder; private SurfaceView vidSurface; String vidAddress = "https://archive.org/download/ksnn_compilation_master_the_internet/ksnn_compilation_master_the_internet_512kb.mp4";
en el Activity
de onCreate
, puede comenzar a crear instancias de estas variables utilizando el SurfaceView
objeto que agregó al diseño:
vidSurface = (SurfaceView) findViewById(R.id.surfView); vidHolder = vidSurface.getHolder(); vidHolder.addCallback(this);
Paso 4
en el surfaceCreated
método, configure sus recursos de reproducción multimedia:
try { mediaPlayer = new MediaPlayer(); mediaPlayer.setDisplay(vidHolder); mediaPlayer.setDataSource(vidAddress); mediaPlayer.prepare(); mediaPlayer.setOnPreparedListener(this); mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); } catch(Exception e){ e.printStackTrace(); }
Finalmente, en el onPrepared
método, empieza a leer:
mediaPlayer.start();
Su video ahora debería reproducirse en el MediaPlayer
instancia cuando ejecuta la aplicación.
Conclusión
En este tutorial, hemos cubierto los conceptos básicos de la transmisión de video en Android usando el VideoView
y MediaPlayer
Clases. Hay muchas mejoras que puede agregar al código que hemos implementado aquí, por ejemplo, integrando soporte de transmisión de video o multimedia en la aplicación de reproductor de música que hemos creado. También puede ver recursos relacionados para Android, como API YouTube Player Android.
Deja una respuesta