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.