Nothing Special   »   [go: up one dir, main page]

APUNTES UT06 PMDM

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 4

APUNTES UT06 PMDM

PMDM06.- Multimedia. Audio y Vídeo.


Para este proyecto es necesario integrar este tipo de medios en las
aplicaciones Android Studio -explica Ada-, incorporando Audio, Vídeo o
usando controles de tipo WebView donde incluso podemos seleccionar si
habilitamos o no la capacidad de ejecutar código JavaScript.

1.- Audio.
Para trabajar con la reproducción de sonido, existen en Android varias alternativas.
Una de las más sencillas es trabajar con la clase MediaPlayer. Dicha clase
permitirá crear un objeto MediaPlayer mediante el método create(), el cual recibirá
como parámetro el propio sonido y que podrá encontrarse en la carpeta de recursos
especial raw. Posteriormente reproduciremos dicho sonido con el método start().

La clase MediaPlayer también se usará en la reproducción de vídeo.

Por otro lado, al igual que sucederá con los recursos de vídeo, es importante
guardar los ficheros de sonido en una carpeta específica llamada raw dentro de la
carpeta res.

2.- Vídeo.

La clase más habitual para reproducir vídeo es la clase VideoView, y será ésta
sobre la que nos centraremos. Además, la acompañaremos de la clase
MediaController para proporcionar un reproductor o controlador de reproducción
con controles de reproducción, pausa, avance y retroceso, con una apariencia
sencilla pero correcta.

La clase VideoView muestra un archivo de vídeo. La clase VideoView puede cargar


imágenes de varias fuentes (como recursos o proveedores de contenido), se ocupa
de calcular su medición a partir del vídeo para que se pueda usar en cualquier
administrador de diseño y proporciona varias opciones de visualización, como
escalado y tintado.

VideoView no conserva su estado completo al pasar al segundo plano o


al cambiar la orientación del dispositivo. En particular, no restaura el
estado de reproducción actual, posición de reproducción, pistas
seleccionadas o cualquier pista de subtítulos agregada a través de
addSubtitleSource(). Las aplicaciones deben guardarlas y restaurarlas
por sí mismas en Activity.onSaveInstanceState(Bundle) y
Activity.onRestoreInstanceState(Bundle). En el último ejercicio
resuelto del capítulo trabajaremos sobre este importante aspecto.
Existen otras clases y librerías para reproducción de vídeo, como ExoPlayer, pero
se puede considerar VideoView como el referente principal.

En los ejercicios resueltos que proporcionaremos a continuación, los vídeos a


reproducir unas veces pertenecerán a la aplicación (incorporados en carpeta
res/raw, y otras veces serán vídeos de internet (servidor externo) o incluso, podrán
ser vídeos que tengamos incorporados en un servidor web local (por ejemplo con el
Apache que proporciona XAMPP).

En este ejercicio, con respecto a los anteriores, vamos a proveer a nuestra


aplicación de la capacidad de ser capaz de restaurar el estado de reproducción
actual y posición, de forma que si cambiamos la orientación del dispositivo, en lugar
de situarse al principio de la reproducción, sigue por donde estaba.

Esto viene a propósito de la nota mencionada anteriormente, en el capitulo


explicativo sobre VideoView:

VideoView no conserva su estado completo al pasar al segundo plano o


al cambiar la orientación del dispositivo. En particular, no restaura el
estado de reproducción actual, posición de reproducción, pistas
seleccionadas o cualquier pista de subtítulos agregada a través de
addSubtitleSource(). Las aplicaciones deben guardarlas y restaurarlas
por sí mismas en Activity.onSaveInstanceState(Bundle) y
Activity.onRestoreInstanceState(Bundle).

Dichos métodos son muy importantes porque harán que si giramos de


orientación el dispositivo, la reproducción continuará por el punto donde
estaban. Si no lo ponemos comenzará a reproducir desde el principio (se
aconseja hacer la prueba).

3.- WebView.
La clase WebView es una extensión de la clase View de Android que nos permitirá
mostrar páginas web como parte del diseño de nuestra actividad, de manera
perfectamente integrada. No incluye ninguna característica de un navegador web
completamente desarrollado, como controles de navegación o una barra de
direcciones. Todo lo que hace WebView, de forma predeterminada, es mostrar una
página web.

Un escenario común en el que usar WebView es útil es cuando desea proporcionar


información en su aplicación que podría necesitar actualizar, como un acuerdo de
usuario final o una guía del usuario. Dentro de su aplicación Android, puede crear
una Actividad que contenga una WebView y luego usarla para mostrar su
documento alojado en línea.

Otro escenario en el que WebView puede ayudar es si nuestra aplicación


proporciona datos a un usuario que requiera una conexión a Internet para recuperar
datos, como el correo electrónico. En este caso, puede ser más fácil construir un
WebView en la aplicación Android que muestra una página web con todos los datos
del usuario, en lugar de realizar una solicitud de red, luego analizar los datos y
representarlos en un diseño de Android. En su lugar, podemos diseñar una página
web que se adapte a los dispositivos Android y luego implementar un WebView en
nuestra aplicación que cargue la página web.

3.1.- Añadiendo un WebView a nuestra


aplicación.
Lo primero será añadir una etiqueta <WebView> en el layout donde queramos
incorporar el WebView.

Código

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


<WebView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/webview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
A continuación, para cargar la página en el WebView, utilizaremos el método
loadUrl().

Código

WebView myWebView = (WebView) findViewById(R.id.webview);


myWebView.loadUrl("http://www.example.com");
Además, previamente, para que la conexión se realice será necesario incorporar en
el fichero AndroidManifest.xml el permiso de acceso a Internet
(android.permission.INTERNET):

<manifest ... >


<uses-permission
android:name="android.permission.INTERNET" />
...</manifest>
Igualmente, en caso de que vayamos a acceder a contenido no seguro (no https) es
necesario añadir también este atributo a la etiqueta application en el archivo de
manifiesto:

android:usesCleartextTraffic="true"

3.2.- Habilitar JavaScript.


Por defecto la carga del JavaScript asociado a una página web está deshabilitado
en un WebView. Para habilitarlo podremos hacerlo a través de la clase
WebSettings mediante el método setJavaScriptEnabled().

Código

WebView myWebView = (WebView) findViewById(R.id.webview);


WebSettings webSettings = myWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
Nota: En las versiones más modernas de API, además tenemos que
incorporar las líneas:

myWebView.setWebViewClient(new WebViewClient());
myWebView.setWebChromeClient(new WebChromeClient());

También podría gustarte