Aprende Android: crea tu reproductor multimedia con VideoView

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!

Previous Google mejora en la distribución del Nexus 5 pero repite errores del pasado
Next Framework: ¿Por qué es mejor usarlos?

About author

Rafa M.
Rafa M. 51 posts

Ingeniero de Telecomunicación, apasionado de la Seguridad Informática. Le gusta estar al día en todo lo relacionado con Internet y las nuevas tecnologías.

You might also like

Android 2 Comments

LEAP: Agentes Inteligentes en dispositivos móviles

En el último artículo hablábamos sobre la problemática de introducir Inteligencia Artificial en dispositivos móviles. Esencialmente se puede utilizar cualquier aproximación válida para sistemas tradicionales, pero teniendo en cuenta la

Inteligencia Artificial 1Comments

Inteligencia Artificial en Videojuegos móviles

Para garantizar el éxito comercial de los videojuegos para móviles es necesario asegurar un algoritmo de Inteligencia Artificial que suponga al jugador un desafío ni demasiado elevado ni demasiado bajo. Pese

Tecnologia & Ciencia 1Comments

Android Device Manager: la aplicación antirrobo integrada en Android

¡Aleluya! ¡Nuestras plegarias han sido escuchadas! No exagero, una plataforma como Android no se podía permitir una carencia de este tipo durante tanto tiempo. Como usuario de Android, veía con

Google 1Comments

Navidades sin Nexus 4

Pésima gestión de Google en la distribución de hardware. La Nexus 4 está agotada y la fecha de vuelta es todavía una incógnita

Tecnologia & Ciencia 1Comments

The App Fake

Hace unos días, un viejo amigo, @jaboban me invitó a ir a un evento: The App Date. Una reunión de desarrolladores o aficcionados está patrocinada por Telefónica (me niego a

Android 5 Comments

Nexus 7 vuelve a tropezar

El pasado mes de julio llegó el lanzamiento de la primera tableta de Google en el mercado americano y el mercado británico. La llegada de un nuevo terminal “suele” venir

Android 1Comments

Any.Do, que no se te olvide probarla

Tras probar varios gestores de tareas en Android, no había ninguna que hubiese permanecido en mi smartphone más de 15 días hasta que encontré Any.Do. Su simplicidad, su interfaz limpia, su

Tutorial 1Comments

[Evento] Introducción a Appcelerator Titanium y conexión con un backend en PHP

El día 5 de setiembre de 2014 tendré la oportunidad de hablar en el grupo de PHP Valencia acerca de como  crear una app móvil con el entorno de desarrollo

Google 1Comments

Google I/O 2013: “Ok, Google!”

Un año más se ha  celebrado el evento Google I/O donde podemos escuchar y ver decenas de conferencias sobre las próximas novedades que saldrán a la luz por Google. Este año

5 Comments

  1. Heckyel
    agosto 23, 06:26 Reply

    Hola que tal, y para hacer que la aplicación con un menú actualizable para visualizar vídeos desde un servidor de alojamiento (server).

    • sebastian
      marzo 22, 19:36 Reply

      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

  2. david
    abril 17, 21:28 Reply

    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)

  3. Ivan
    febrero 10, 16:10 Reply

    hola, muy buen post, tengo un duda, como hago para guardar el buffer de un videostream cuando la pantalla cambia de orietacion

  4. Bitacoras.com
    noviembre 08, 17:20 Reply

    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…

Leave a Reply