BorrowBits
Android Cine
Portada » Blog » Computación » Android » 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!

Rafa M.

Ingeniero de Telecomunicación - DevOps

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…

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

  • 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)

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

    • 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

Rafa M.

Ingeniero de Telecomunicación - DevOps

Suscríbete

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

Apúntate para seguir recibir por email las nuevas publicaciones, noticias sobre Blockchain pre-filtradas y material exclusivo para suscriptores. De momento es gratis:

{subscription_form_1}

Categorías

Bits del pasado

Sitio patrocinado por:

JitKey rentabilización apartamentos turísticos

JITKey.- Startup enfocada en la gestión de alojamientos turísticos.