video

13
Reproducción de vídeo desde RAW en Android En el siguiente tutorial reproduciremos un vídeo almacenado en nuestra aplicación. Es el código que utilizamos en Imagina Group y Mono Agency nada más iniciar el juego Hungry Monster by Belros . Es muy común visualizar un vídeo corto con la marca o nombre de la empresa al encender nuestras aplicaciones. CREACIÓN DE PROYECTO Para comenzar crearemos un nuevo proyecto llamado ReproducirVideo, en el que crearemos una actividad llamada MainActivity.java con un layout activity_main.xml. ROSADO MARTINEZ BRENDA MORENO SALVADOR DULCE

Upload: esmeralda-salvador

Post on 26-Jul-2015

15 views

Category:

Education


2 download

TRANSCRIPT

Page 1: Video

Reproducción de vídeo desde RAW en Android

En el siguiente tutorial reproduciremos un vídeo almacenado en nuestra aplicación. Es el código que utilizamos en Imagina Group y Mono Agency nada más iniciar el juego Hungry Monster by Belros.

Es muy común visualizar un vídeo corto con la marca o nombre de la empresa al encender nuestras aplicaciones.

CREACIÓN DE PROYECTO

Para comenzar crearemos un nuevo proyecto llamado ReproducirVideo, en el que crearemos una actividad llamada MainActivity.java con un layout activity_main.xml.

ROSADO MARTINEZ BRENDAMORENO SALVADOR DULCE

Page 2: Video

Una vez creado veremos en el Package Explorer el nuevo proyecto con la siguiente estructura.

Como segundo paso debemos de crear una nueva carpeta llamada raw/ dentro del directorio res/.La carpeta raw la utilizaremos para almacenar recursos adicionales, normalmente en formato distinto a XML, que no se incluyan en el resto de carpetas de recursos.

Ahora nos descargaremos el vídeo de prueba (PSD) y lo incluiremos en la carpeta recién creada.

Nota: Disponemos en la página oficial de Android Developers todos los formatos que reproduce el sistema además de otras recomendaciones. Los dispositivos actuales suelen incluir más codecs que nos permiten reproducir multitud de formatos de vídeo.

IMPLEMENTACIÓN

En primer lugar crearemos un control VideoView que ocupe toda la pantalla donde visualizaremos el vídeo de Mono Agency. Lo definiremos en el layout de la Activity.

activity_main.xml

ROSADO MARTINEZ BRENDAMORENO SALVADOR DULCE

Page 3: Video

01

<?xml version="1.0" encoding="utf-8"?>

02

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

03    android:layout_width="match_parent"

04    android:layout_height="match_parent"

05    android:background="#FFFFFFFF" >

06

07    <VideoView

08        android:id="@+id/videoView_video"

09        android:layout_width="wrap_content"

10        android:layout_height="wrap_content"

11

        android:layout_alignParentBottom="true"

12

        android:layout_alignParentTop="true"

13

        android:layout_centerInParent="true" />

14

15

</RelativeLayout>

Desde la Activity creamos un objeto VideoView y lo enlazamos con el control del layout mediante la sentencia findViewById(). El objeto Uri se lo pasamos a VideoView de forma que le indiquemos la ruta del vídeo.

Por último iniciamos la reproducción mediante videoView.start(). De ésta forma conseguimos que al iniciar la actividad el vídeo empiece a reproducirse.

MainActivity.java

ROSADO MARTINEZ BRENDAMORENO SALVADOR DULCE

Page 4: Video

01

package com.example.reproducirvideo;

02

03import android.app.Activity;

04import android.net.Uri;

05 import android.os.Bundle;

06import android.widget.VideoView;

07

08public class MainActivity extends Activity {

09

10    @Override

11

    public void onCreate(Bundle savedInstanceState) {

12

        super.onCreate(savedInstanceState);

13

        setContentView(R.layout.activity_main);

1415

        VideoView videoView = (VideoView) findViewById(R.id.videoView_video);

1617

        Uri path = Uri.parse("android.resource://com.example.reproducirvideo/"

18

                + R.raw.intromono);

1920

        videoView.setVideoURI(path);

21

        videoView.start();

22

    }

ROSADO MARTINEZ BRENDAMORENO SALVADOR DULCE

Page 5: Video

23

}

Al ejecutar el proyecto veremos el vídeo introducción de Mono Agency.

Si nos fijamos podemos ver las barras de estado del dispositivo, pero ésto no nos interesa. No queda elegante. Podemos ocultarlas desde el código de la actividad o añadiendo unos atributos en el AndroidManifest.xml.

Utilizaremos la segunda técnica. Le añadimos los atributos screenOrientation y theme a cada una de las actividades que deseemos ocultar las barras de estado.

AndroidManifest.xml

ROSADO MARTINEZ BRENDAMORENO SALVADOR DULCE

Page 6: Video

01

<?xml version="1.0" encoding="utf-8"?>

02

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

03    package="com.example.reproducirvideo"

04    android:versionCode="1"

05    android:versionName="1.0" >

06

07    <uses-sdk android:minSdkVersion="8" />

08

09    <application

10        android:icon="@drawable/ic_launcher"

11

        android:label="@string/app_name" >

12

        <activity

13

            android:name=".MainActivity"

14

            android:label="@string/app_name"

15

            android:screenOrientation="portrait"

16

            android:theme="@android:style/Theme.NoTitleBar.Fullscreen">

17

            <intent-filter>

18

                <action android:name="android.intent.action.MAIN" />

1920

                <category android:name="android.intent.category.LAUNCHER" />

21

            </intent-filter>

2         </activity>

ROSADO MARTINEZ BRENDAMORENO SALVADOR DULCE

Page 7: Video

22324

    </application>

25

26

</manifest>

El resultado lo vemos a continuación:

AMPLIACIÓN

ROSADO MARTINEZ BRENDAMORENO SALVADOR DULCE

Page 8: Video

Si queremos aprovechar éste código para crear un reproductor. Podemos añadir unos controles para el usuario. Android nos provee de un sencillo control de los vídeos. Modificar el código deMainActivity.java. Mediante la clase MediaControler añadimos los nuevos controles.

01

package com.example.reproducirvideo;

02

03import android.app.Activity;

04import android.net.Uri;

05 import android.os.Bundle;

06import android.widget.MediaController;

07import android.widget.VideoView;

08

09public class MainActivity extends Activity {

10

11

    @Override

12

    public void onCreate(Bundle savedInstanceState) {

ROSADO MARTINEZ BRENDAMORENO SALVADOR DULCE

Page 9: Video

13

        super.onCreate(savedInstanceState);

14

        setContentView(R.layout.activity_main);

1516

        VideoView videoView = (VideoView) findViewById(R.id.videoView_video);

1718

        Uri path = Uri.parse("android.resource://com.example.reproducirvideo/"

19

                + R.raw.intromono);

2021

        //AMPLIACIÓN

22

        MediaController mc = new MediaController(this);

23

        videoView.setMediaController(mc);

2425

        videoView.setVideoURI(path);

26

        videoView.start();

27

    }

28

}

Controlador del vídeo se nos mostrará durante unos segundos y se ocultará de modo que si el usuario pulsa sobre el vídeo se le volverá a mostrar.

ROSADO MARTINEZ BRENDAMORENO SALVADOR DULCE

Page 10: Video

En este video se muestra como insertar un video en el programa eclipse:

https://www.youtube.com/watch?v=3P8l4J_kFhc

ROSADO MARTINEZ BRENDAMORENO SALVADOR DULCE