BorrowBits - ciencia y tecnología
Android Cine

Aprende Android: crea tu reproductor multimedia con VideoView

Android Cine¿Estás aprendiendo Android y quieres incluir en tu aplicación un toque multimedia? ¿Quieres tu propio reproductor tanto de vídeos en streaming como de los vídeos almacenados en tu móvil? Android te lo pone fácil una vez más, gracias a la clase VideoView.

Vamos a explicar cómo utilizarla con un ejemplo muy sencillo que puedes incluir en tu aplicación.

Lo primero es diseñar el layout en el que reproducir el vídeo. Para ello, crea un nuevo archivo xml llamado reproductor_layout en la siguiente ruta: ref/layout/reproductor_layout.xml.

El archivo deberá contener a la vista VideoView:

<LinearLayout
 xmlns:android="http://schemas.android.com/apk/res/android"
 android:orientation="vertical"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent">
 <VideoView
 android:id="@+id/video"
 android:layout_width="340px"
 android:layout_height="260px"/> 
</LinearLayout>

Una vez definida la apariencia que tendrá nuestra aplicación, el siguiente paso es implementar la clase reproductor:

public class reproductor extends Activity {
 private VideoView reproductor;

@Override public void onCreate(Bundle savedInstanceState){
   super.onCreate(savedInstanceState);
   setContentView(R.layout.reproductor_layout);
   reproductor =(VideoView)findViewById(R.id.video);
   //Para reproducir archivos en streaming, como vídeos de Youtube:
   //reproductor.setVideoURI(Uri.parse("http://m.youtube.com/add_favorite?v=wIn-wIgWPXM"));
   //Para reproducir archivos almacenados en la memoria SDCard:
   reproductor.setVideoPath("/mnt/sdcard/videoEjemplo.mp4");
   reproductor.setMediaController(new MediaController(this));
   reproductor.start();
   reproductor.requestFocus();
   }
 }

Una breve explicación del código utilizado:

Lo primero es definir en setContentView la vista que queremos utilizar en nuestra Activity, en este caso reproductor_layout.

A continuación creamos el objeto reproductor, que usará la vista VideoView cuyo id es video. Luego usaremos varios métodos para su configuración.

Podemos elegir si reproducir un archivo en streaming, como por ejemplo un vídeo de Youtube, con el método setVideoURI() o reproducir un archivo de vídeo almacenado en nuestra memoria SDCard con el método setVideoPath().

Con el método setMediaController() añadimos a nuestro reproductor el objeto MediaController, que nos permite el control de la reproducción del vídeo añadiendo los botones de pausa, stop, play, etc.

Finalmente, para iniciar la reproducción del vídeo utilizamos start().

Algunas anotaciones:

Para almacenar un fichero de prueba en el simulador, utilizamos el File Explorer (Que se encuentra en Window >Show View >Others>Android>File Explorer). Nos vamos a la carpeta mnt/sdcard y pulsando sobre el botón en el que aparece un teléfono con una flecha, elegimos el fichero de vídeo cuyo nombre es videoEjemplo.mp4.

Si quieres reproducir un vídeo de Youtube, deberás de utilizar la URI que utiliza RTSP/3GP, es decir, de la forma:

http://m.youtube.com/add_favorite?v=XXXXXX

Siendo XXXX el identificador del vídeo que aparece cuando reproducimos un vídeo en nuestro navegador: http://www.youtube.com/watch?v=XXXXXX

Ya puedes crear tu propio reproductor multimedia para Android de una forma sencilla. Cualquier mejora que quieras sugerir o comentario, ¡siempre será bienvenido!

Rafa M.

Ingeniero de Telecomunicación, apasionado de la Seguridad Informática.

6 comentarios

  • Información Bitacoras.com

    Valora en Bitacoras.com: ¿Estás aprendiendo Android y quieres incluir en tu aplicación un toque multimedia? ¿Quieres tu propio reproductor tanto de vídeos en streaming como de los vídeos almacenados en tu móvil? Android te lo pone fácil una v…

  • mi pregunta es que si el video esta en una base de datos
    ya lo puedo hacer pero para imagenes con

    public static void setImageViewWithByteArray(ImageView view, byte[] data) {
    Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);
    view.setImageBitmap(bitmap);
    }

    data es la imagen que viene desde SQL server

    pero no se si se puede hacer también con VideoView

    el video en SQL server se guarda de la misma manera que la imagen y son tipos iguales varbinary(max)

    • soy nuevo en esto de la programación en android, seguí los pasos que pusiste anteriormente pero no puedo reproducir video, solo se me queda la ventana de “hello word” y nada mas ni siquiera me reconoce la otra venta de reproducción.
      me podrías orientar
      gracias

Suscríbete

¡Sácale el máximo partido a BBits!

Introduce tu dirección de correo electrónico para seguir este Blog y recibir por email las nuevas publicaciones, si has leído y aceptas las Políticas de Privacidad, Cookies y Aviso Legal.

Recíbelo gratis al suscribirte

Webs amigas

  • Frikilogia.- Blog Multi-Tematico orientado a todos los campos del frikismo.
  • Meridiem90.tv.- Mira la TV gratis en HD. Canal Plus y Gol TV, todo el futbol desde tu navegador.
  • JITKey.- Startup enfocada en la gestión de alojamientos turísticos.

Bits del pasado

Síguenos en FB