La vista VideoView

La forma más fácil de incluir un vídeo en tu aplicación es incluir una vista de tipo VideoView. Veamos cómo hacerlo en el siguiente ejercicio    

Ejercicio paso a paso: Reproducir un vídeo con VideoView

1. Crea una nueva aplicación.

2. Reemplaza el fichero ref/layout/activity_main.xml por

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <VideoView
        android:id="@+id/surface_view"
        android:layout_width="320px"
        android:layout_height="240px"/> 
</LinearLayout>

3. Reemplaza el siguiente código en la clase MainActivity:

public class videoView extends Activity {
private VideoView mVideoView;

@Override public void onCreate(Bundle savedInstanceState){
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_main);
       mVideoView =(VideoView)findViewById(R.id.surface_view);
       //de forma alternativa si queremos un streaming usar
       //mVideoView.setVideoURI(Uri.parse(URLstring));
       mVideoView.setVideoPath("/mnt/sdcard/video.mp4");
       mVideoView.start();
       mVideoView.requestFocus();
}
}

En el parámetro del método setVideoPath() estamos indicando un fichero local.

4. Busca un fichero de video en codificación mp4. Renombra este fichero a video.mp4.

5. Es necesario almacenar un fichero de video en el simulador. Para ello, utiliza la opción del menú Window > Show View >Others… > Android > File Explorer. Te mostrará el sistema de ficheros del emulador.

6. Selecciona la carpeta mnt/sdcard y utiliza el botón donde aparece un teléfono con una flecha para almacenar un nuevo fichero. Indica el fichero video.mp4.

NOTA: el dispositivo ha de disponer de almacenamieno externo.

7. Ejecuta la aplicación y observa el resultado. Recuerda que con Ctrl-F11 puedes cambiar la orientación. Si no funciona trata de usar otro tipo de emulador.

8. Modifica el fichero xml para que el vídeo aparezca centrado y ocupe toda la pantalla del teléfono, tal y como se muestra en la imagen de arriba

9. Añade la siguiente línea antes de la llamada al método start();

mVideoView.setMediaController(new MediaController(this));

De esta forma permitimos que el usuario pueda controlar la reproducción del vídeo mediante el objeto MediaController.

10. Observa el resultado.

NOTA: Algunos emuladores pueden dar problemas a la hora de reprocucir vídeos.