1. ROSADOMARTINEZ BRENDA
MORENO SALVADORDULCE
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.
2. ROSADOMARTINEZ BRENDA
MORENO SALVADORDULCE
Una vez creado veremos en el PackageExplorer el nuevoproyecto con la siguiente
estructura.
Como segundopaso debemos de crear una nuevacarpeta llamada raw/ dentrodel
directorio res/.
La carpeta raw la utilizaremos paraalmacenar recursosadicionales, normalmenteen
formato distinto a XML,que no se incluyan en el resto de carpetas de recursos.
Ahoranos descargaremosel vídeo de prueba(PSD) y lo incluiremos en la carpeta recién
creada.
Nota: Disponemos en la páginaoficial de AndroidDevelopers todos los formatosque
reproduce el sistema además de otrasrecomendaciones. Los dispositivos actuales
suelen incluir más codecs que nospermiten reproducir multitudde formatos de vídeo.
IMPLEMENTACIÓN
En primer lugarcrearemos un control VideoView que ocupe toda la pantalladonde
visualizaremos el vídeo de Mono Agency. Lo definiremos en el layoutde la Activity.
activity_main.xml
3. ROSADOMARTINEZ BRENDA
MORENO SALVADORDULCE
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 controldel 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
01 package com.example.reproducirvideo;
02
03 import android.app.Activity;
04 import android.net.Uri;
05 import android.os.Bundle;
06 import android.widget.VideoView;
07
08 public class MainActivity extends Activity {
09
10 @Override
11 public void onCreate(BundlesavedInstanceState){
12 super.onCreate(savedInstanceState);
4. ROSADOMARTINEZ BRENDA
MORENO SALVADORDULCE
13 setContentView(R.layout.activity_main);
14
15 VideoView videoView = (VideoView) findViewById(R.id.videoView_video);
16
17 Uri path = Uri.parse("android.resource://com.example.reproducirvideo/"
18 + R.raw.intromono);
19
20 videoView.setVideoURI(path);
21 videoView.start();
22 }
23 }
Al ejecutar el proyecto veremos el vídeo introducción de MonoAgency.
5. ROSADOMARTINEZ BRENDA
MORENO SALVADORDULCE
Si nos fijamos podemos ver lasbarrasde estado del dispositivo, pero ésto no nos
interesa. No queda elegante. Podemos ocultarlasdesdeel código de la actividad o
añadiendo unosatributosen el AndroidManifest.xml.
Utilizaremos la segundatécnica. Le añadimos los atributos screenOrientation y theme a
cada una de las actividades que deseemos ocultarlas barrasde estado.
AndroidManifest.xml
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-sdkandroid: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" />
19
20 <category android:name="android.intent.category.LAUNCHER" />
21 </intent-filter>
22 </activity>
23
24 </application>
25
26 </manifest>
6. ROSADOMARTINEZ BRENDA
MORENO SALVADORDULCE
El resultadolo vemos a continuación:
AMPLIACIÓN
Si queremos aprovecharéste código para crear un reproductor.Podemosañadir unos
controlespara el usuario. Androidnos provee de unsencillo controlde los vídeos.
Modificar el código deMainActivity.java. Mediante la clase MediaControler añadimos
los nuevoscontroles.
8. ROSADOMARTINEZ BRENDA
MORENO SALVADORDULCE
Controladordel vídeo se nos mostraráduranteunos segundosy se ocultaráde modo
que si el usuariopulsa sobre el vídeo se le volveráa mostrar.
En este video se muestra como insertar un video en el programa
eclipse:
https://www.youtube.com/watch?v=3P8l4J_kFhc