La plataforma Android proporciona bibliotecas que puede usar para transmitir archivos multimedia, como videos remotos, presentándolos para reproducirlos en sus aplicaciones. En este tutorial, transmitiremos un archivo de video, mostrándolo usando el VideoView
componente junto con un MediaController
objeto para permitir que el usuario controle la reproducción.
También realizaremos brevemente el proceso de presentación del video utilizando el Reproductor multimedia
clase. Si ha completado la serie sobre cómo crear 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..
Si desea una solución ya hecha, consulte YoVideo, una plantilla de aplicación de Android para crear un hermoso reproductor de video móvil para teléfono inteligente Android.
Los usuarios pueden ver videos, seguir y compartir con sus amigos en Facebook. El uso de esta plantilla de aplicación le ahorrará tiempo y dinero en la creación de una aplicación para compartir videos.
YoVideo en Envato MarketO puede contratar a un desarrollador de Android para crear una solución personalizada para usted. De lo contrario, sigue leyendo para obtener instrucciones sobre cómo hacerlo tú mismo..
Puede usar el código en 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. Cree un nuevo proyecto de Android, asígnele un nombre de su elección, configure los detalles y déle una inicial principal Actividad
clase y diseño.
Primero configuremos el manifiesto del proyecto para la transmisión de medios. Abra el archivo de manifiesto de su proyecto y cambie a la edición XML en su IDE. Para la transmisión de medios, necesita acceso a Internet, así que agregue el siguiente permiso dentro de la manifiesto
elemento:
VideoView
La plataforma Android proporciona la VideoView
Clase en la que puedes reproducir archivos de vídeo. Vamos a agregar uno al archivo de diseño principal:
Modifique el diseño de los padres para que se adapte a su propia aplicación si es necesario Damos la VideoView
una instancia carné de identidad
Atributo para que podamos referirlo más adelante. Es posible que deba ajustar las otras propiedades de diseño para su propio diseño..
Ahora vamos a recuperar una referencia a la VideoView
instancia en codigo Abre la aplicación principal de tu aplicación. Actividad
Clase y agregue las siguientes importaciones adicionales:
importar android.net.Uri; importar android.widget.MediaController; importar android.widget.VideoView;
Tu Actividad
clase ya debe contener el onCreate
Método en el que se establece la vista de contenido:
@Override protected void onCreate (Bundle savedInstanceState) super.onCreate (savedInstanceState); setContentView (R.layout.activity_main);
Después de la setContentView
línea, vamos a obtener una referencia a la VideoView
instancia de la siguiente manera, utilizando el carné de identidad
Establecemos en el diseño XML:
VideoView vidView = (VideoView) findViewById (R.id.myVideo);
Ahora podemos transmitir un archivo de video a la aplicación. Prepare el URI para el punto final 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 para el archivo de video que desea transmitir. El ejemplo aquí es un archivo de video de dominio público alojado en el Archivo de Internet. Analizamos la cadena de direcciones como un URI para que podamos pasarla a la VideoView
objeto:
vidView.setVideoURI (vidUri);
Ahora simplemente puede iniciar la reproducción:
vidView.start ();
El sistema operativo Android es compatible con una variedad de formatos de video y medios, y cada dispositivo a menudo admite formatos adicionales además de esto.
Como puede ver en la Guía del desarrollador, los formatos de archivos de video compatibles incluyen 3GP, MP4, WEBM y MKV, según el formato utilizado y en qué nivel de plataforma haya instalado el usuario..
Los formatos de archivos de audio que puede esperar compatibilidad incorporada incluyen MP3, MID, OGG y WAV. Puede transmitir medios en Android a través de RTSP, HTTP y HTTPS (desde Android 3.1).
Hemos implementado la reproducción de video, pero el usuario esperará y estará acostumbrado a tener control sobre él. Una vez más, la plataforma Android proporciona recursos para manejar esto mediante una interacción familiar a través de MediaController
clase.
En tus Actividad
clase onCreate
Método, antes de la línea en la que llamas. comienzo
sobre el VideoView
, crear una instancia de la clase:
MediaController vidControl = new MediaController (this);
A continuación, configúralo para usar el VideoView
instancia como su ancla:
vidControl.setAnchorView (vidView);
Y, finalmente, configurarlo como el controlador de medios para el VideoView
objeto:
vidView.setMediaController (vidControl);
Cuando ejecute la aplicación ahora, el usuario debe poder controlar la reproducción de la transmisión de video, incluidos los botones de avance rápido y rebobinado, un botón de reproducción / pausa y un control de barra de búsqueda.
El control 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 presionar a lo largo de la barra de búsqueda para saltar a una posición en el archivo, el estado de transmisión se indica mediante el mismo tipo de pantalla al que estará acostumbrado el usuario desde sitios y aplicaciones como YouTube.
Como verá cuando ejecute la aplicación, el comportamiento predeterminado es que los controles desaparezcan después de unos momentos, y volverá a aparecer cuando el usuario toque la pantalla. Puede configurar el comportamiento de la MediaController
objeto de varias maneras. Vea la serie sobre cómo crear una aplicación de reproductor de música para Android para ver un ejemplo de cómo hacerlo. También puede mejorar la reproducción de medios al implementar varios oyentes para configurar el comportamiento de su aplicación.
Reproductor multimedia
Antes de que terminemos, veamos un enfoque alternativo para la transmisión de video usando el Reproductor multimedia
clase, ya que lo usamos en la serie en la creación de un reproductor de música. Puede transmitir medios, incluyendo video, a un Reproductor multimedia
objeto utilizando una vista de superficie. Por ejemplo, podrías usar el siguiente diseño:
Nos referiremos a la SurfaceView
en la implementación de la Actividad
clase.
En tus Actividad
clase, agregue las siguientes interfaces:
La clase pública MainActivity extiende la actividad Implementa SurfaceHolder.Callback, OnPreparedListener
Su IDE debe solicitarle que agregue estos métodos no implementados:
@Override public void surfaceChanged (SurfaceHolder arg0, int arg1, int arg2, int arg3) // TODO Código auxiliar del método generado automáticamente @Override public void surfaceCreated (SurfaceHolder arg0) // setup @Override public void surfaceDestroyed (SurfaceHolder arg0 ) // TODO Talón de método generado automáticamente @ Anular la anulación pública onPrepared (MediaPlayer mp) // iniciar la reproducción
Añadiremos a la superficie creada
y enPreparado
metodos.
Para implementar la reproducción, agregue las siguientes variables de instancia a la clase:
MediaPlayer privado mediaPlayer; SurfaceHolder privado vidHolder; SurfaceView vidSurface privado; String vidAddress = "https://archive.org/download/ksnn_compilation_master_the_internet/ksnn_compilation_master_the_internet_512kb.mp4";
En el Actividad
es onCreate
A continuación, puede comenzar a crear una instancia de estas variables utilizando el SurfaceView
Objeto que ha agregado al diseño:
vidSurface = (SurfaceView) findViewById (R.id.surfView); vidHolder = vidSurface.getHolder (); vidHolder.addCallback (este);
En el superficie creada
Método, configura tus recursos de reproducción multimedia:
prueba 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 enPreparado
método, iniciar la reproducción:
mediaPlayer.start ();
Tu video debería ahora reproducirse en el Reproductor multimedia
instancia cuando ejecuta la aplicación.
En este tutorial, hemos resumido los conceptos básicos de la transmisión de video en Android usando el VideoView
y Reproductor multimedia
clases Puede agregar muchas mejoras al código que implementamos aquí, por ejemplo, mediante la creación de video o transmisión de soporte multimedia en la aplicación de reproductor de música que creamos. También puede consultar los recursos asociados para Android, como la API del reproductor de Android de YouTube..