Bienvenidos sean a este post, hoy veremos la clase VideoView para poder reproducir videos en nuestro dispositivo. Esta clase es la mas basica para realizar esta tarea para ello debemos crear una nueva app para poder probarla, abramos Android Studio, seleccionemos Start a new Android Studio project, en el siguiente cuadro al campo Application name le asignaremos el valor Video, en Company domain usaremos example.org, el resto debera quedar como aparece por defecto, pulsemos Next para pasar al siguiente cuadro, en este cuadro seleccionaremos la menor API disponible en Phone And Tablet y pulsen Next, en el siguiente cuadro seleccionen Empty Activity, pulsen Next y en el ultimo cuadro deberan dejarlo como aparece por defecto y pulsen Finish.

Anuncios

Una vez dentro del Android Studio vamos a nuestro archivo activity_main.xml donde reemplazaremos su codigo actual por el siguiente:

<?xml version="1.0" encoding="utf-8"?>
<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="match_parent"
       android:layout_height="match_parent" />

</LinearLayout>

Con este nuevo layout tendremos un elemento de tipo VideoView para visualizar nuestro video, nuestro siguiente paso sera agregar nuestro video dentro del dispositivo pero previamente deberemos tener creada nuestra sdcard, memoria externa, para ello les recomiendo este post donde explico como crearla en nuestro equipo virtual, una vez creada o si ya la tienen creada en cualquier de los dos casos debemos abrir primero nuestro equipo virtual, una vez que este corriendo definitivamente iremos a View -> Tool Windows -> Device File Explorer, aparecera un nuevo menu donde deberan ir a la carpeta sdcard donde si la memoria externa esta correctamente configurada debera verse aproximadamente como la siguiente imagen

Antes descarguen el siguiente archivo en la computadora:

Una vez descargado deben descomprimirlo en un lugar de su pc, luego debemos volver al Device File Explorer, a la carpeta sdcard y debemos hacer click con el boton derecho y seleccionar Upload como se ve en la siguiente imagen

Una vez seleccionada aparecera el siguiente cuadro

En este cuadro deberan ir a la ubicacion donde descargaron el archivo, lo seleccionan y pulsen Ok, una vez hecho esto nos agregara nuestro archivo a la memoria externa quedando de la siguiente forma

Anuncios

Despues de agregado nuestro archivo deberemos hacer una modificacion en nuestro archivo AndroidManifest.xml, aqui deberemos agregar la siguiente linea para poder permitir acceso a nuestra memoria externa:

<uses-permission 
    android:name="android.permission.READ_EXTERNAL_STORAGE" />

Esta linea debera ser agregada por fuera del tag activity pero antes del cierro del tag manifest, el codigo final de nuestro archivo debera quedar asi:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="org.example.video">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category
                    android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
    <uses-permission
        android:name="android.permission.READ_EXTERNAL_STORAGE" />

</manifest>

Con nuestro archivo agregado y nuestra modificacion realizada nos resta solamente modificar la clase MainActivity para poder visualizar nuestro video, para ello vamos a modificarlo como se ve a continuacion:

package org.example.video;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.VideoView;

public class MainActivity extends AppCompatActivity {

    private VideoView mVideoView;
    String srcPath = "/mnt/sdcard/video.webm";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mVideoView = (VideoView) findViewById(R.id.surface_view);
        mVideoView.setVideoPath(srcPath);
        mVideoView.requestFocus();
        mVideoView.start();
    }
}

Nota: para poder utilizar un recurso de tipo streaming se deberia reemplazar la linea de setVideoPath por la siguiente:

mVideoView.setVideoURI(Uri.parse(URLString);
Anuncios

En este caso definimos un path llamado srcPath y ahi le informaremos el lugar de nuestro archivo, /mnt/sdcard/video.webm, luego en onCreate() crearemos nuestro enlace entre mVideoView y el elemento del layout por medio de esta linea:

mVideoView = (VideoView) findViewById(R.id.surface_view);

La siguiente linea se encarga de indicarle la ubicacion de nuestro archivo, la linea posterior se encargara de reproducirlo y por ultimo le setearemos foco, es decir le asignaremos prioridad en nuestra actividad. Con todo esto podemos probar nuestra app pero antes le haremos una modificacion mas para dejarlo mas “monono”, debemos agregar la siguiente linea antes de mVideoView.start():

mVideoView.setMediaController(new MediaController(this));

Donde el codigo nos quedara de la siguiente manera:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    mVideoView = (VideoView) findViewById(R.id.surface_view);
    mVideoView.setVideoPath(srcPath);
    mVideoView.setMediaController(new MediaController(this));
    mVideoView.requestFocus();
    mVideoView.start();
}

Con todas modificaciones realizadas podemos probar nuestra app como se ve en el siguiente video

Si lograron lo mismo que en el video ya dimos un paso gigante a como manejar videos en nuestros dispositivos, una observacion cuando intente probar la app en mi equipo fisico no me funciono pero esto es debido a que una configuracion en mi equipo a la sdcard, memoria externa, en realidad la considera como almacenamiento interno y por ende no encuentra nunca el path pero deberia funcionar correctamente si el sdcard apunta correctamente a un recurso externo.

Anuncios

En resumen, hoy hemos como se utiliza la vista VideoView, como podemos agregarle un archivo via codigo java, y como se ve en el equipo espero les haya sido util sigueme en Twitter, Facebook o Google+ para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.

Tambien podes donar

Es para mantenimiento del sitio, gracias!

$1.00