Multimedia y publicación
L
LOGRO DE LA UNIDAD DE APRENDIZAJEOGRO DE LA UNIDAD DE APRENDIZAJE
Al término de la unidad, el alumno elabora aplicaciones que permitan el uso del video y de sus dispositivos visuales y las publicará en GooglePlay.
T TEMARIOEMARIO
7.1 Tema 12: Audio, Video y Uso de Dispositivos visuales 7.1 Tema 12: Audio, Video y Uso de Dispositivos visuales
7.1.1 Componente Media Player. Definición, características y aplicaciones. 7.1.2 Visualización de videos usando la vista Video.
7.1.3 Grabación de audio y video: Uso de Intents para grabar video. 17.2
17.2 Tema Tema 14: 14: Publicación Publicación en en Google Google PlayPlay 7.2.1
7.2.1 Generación de APK firmado con el certificado digital. 7.2.2
7.2.2 Creación de la cuenta en Google Play. 7.2.3 7.2.3 Publicación de la aplicación UNIDAD UNIDAD
7
7
DESARROLLO
DESARROLLO DE DE APLICACIONES APLICACIONES MÓVILES MÓVILES I I 11 55 11
Audio, Video y Uso de
Audio, Video y Uso de Dispositivos visualesDispositivos visuales Multimedia
Multimedia
La capacidad de reproducir contenido multimedia es una característica presente en la práctica totalidad de las terminales telefónicas existentes en el mercado hoy en día. Muchos usuarios prefieren utilizar las capacidades multimedia de su teléfono, en lugar de tener que depender de otro dispositivo adicional para ello. Android incorpora la posibilidad de reproducir no sólo audio en diversos formatos, sino que también vídeo. Los formatos de audio soportados son los siguientes:
AAC LC/LTP HE-AACv1 (AAC+)
HE-AACv2 (Enhanced ACC+) AMR-NB AMR-WB FLAC MP3 MIDI Ogg Vorbis PCM/Wave
Con respecto al vídeo, los formatos soportados son: H.263
H.264 AVC MPEG-4 SP
VP8
En esta sesión echaremos un vistazo a las herramientas necesarias para poder reproducir contenido multimedia (audio o vídeo) en una actividad. También veremos cómo añadir la capacidad a nuestra aplicación para la toma de fotografías, una característica perfectamente emulada por el emulador en las últimas versiones del Android SDK.
DESARROLLO
DESARROLLO DE DE APLICACIONES APLICACIONES MÓVILES MÓVILES I I 152152
Reproducción de audio Reproducción de audio
La reproducción de contenido multimedia se lleva a cabo por medio de la clase MediaPlayer. Dicha clase nos permite la reproducción de archivos multimedia almacenados como recursos de la aplicación, en ficheros locales, en proveedores de contenido, o servidos por medio de streaming a partir de una URL. En todos los casos, como desarrolladores, la clase MediaPlayer nos permitirá abstraernos del formato así como del srcen del fichero a reproducir. Incluir un fichero de audio en los recursos de la aplicación para poder ser reproducido durante su ejecución es muy sencillo. Simplemente creamos una carpeta raw dentro de la carpeta res, y almacenamos en ella sin comprimir el fichero o ficheros que deseamos reproducir. A partir de ese momento el fichero se identificará dentro del código como R.raw.nombre_Archivo. Para reproducir un fichero de audio tendremos que seguir una secuencia de pasos.
En primer lugar deberemos crear una instancia de la clase MediaPlayer. El siguiente paso será indicar qué fichero será el que se reproducirá. Por último
ya podremos llevar a cabo la reproducción en sí misma del contenido multimedia.
Veamos primero cómo inicializar la reproducción.
Tenemos dos opciones. La primera de ellas consiste en crear una instancia de la clase MediaPlayer por medio del método create(). En este caso se deberá pasar como parámetro, además del contexto de la aplicación, el identificador del recurso, tal como se puede ver en el siguiente ejemplo:
Reproducción de vídeo usando el control VideoView Reproducción de vídeo usando el control VideoView
La reproducción de vídeo es muy similar a la reproducción de audio, salvo dos particularidades. En primer lugar, no es posible reproducir un clip de vídeo almacenado como parte de los recursos de la aplicación. En este caso deberemos utilizar cualquiera de los otros tres medios (ficheros locales, streaming o proveedores de contenidos). Un poco más adelante veremos cómo añadir un clip de vídeo a la tarjeta de memoria de nuestro terminal emulado desde la propia interfaz de Eclipse. En segundo lugar, el vídeo necesitará de una superficie para poder reproducirse. Esta superficie se corresponderá con una vista dentro del layout de la actividad. Existen varias alternativas para la reproducción de vídeo, teniendo en cuenta lo que acabamos de comentar. La más sencilla es hacer uso de un control de tipo VideoView, que encapsula tanto la creación de una superficie en la que reproducir el vídeo como el control del mismo mediante una instancia de la clase MediaPlayer. Este método será el que veamos en primer lugar. El primer paso consistirá en añadir el control VideoView a la interfaz gráfica de la actividad en la que queramos que se reproduzca el vídeo. Podemos añadir algo como lo siguiente el fichero de layout correspondiente:
DESARROLLO
DESARROLLO DE DE APLICACIONES APLICACIONES MÓVILES MÓVILES I I 11 55 33
Dentro del código Java podremos acceder a dicho elemento de la manera habitual, es decir, mediante el método findViewById(). Una vez hecho esto, asignaremos una fuente que se corresponderá con el contenido multimedia a reproducir. El control VideoView se encargará de la inicialización del objeto MediaPlayer. Para asignar un video a reproducir podemos utilizar cualquiera de estos dos métodos:
Una vez inicializado el control se puede controlar la reproducción con los métodos: start()
stopPlayback() pause() seekTo()
La clase VideoView también incorpora el método setKeepScreenOn(boolean)con la que se podrá controlar el comportamiento de la iluminación de la pantalla durante la reproducción del clip de vídeo. Si se pasa como parámetro el valor true ésta permanecerá constantemente iluminada.
El siguiente código muestra un ejemplo de asignación de un vídeo a un control VideoView y de su posterior reproducción. Dicho código puede ser utilizado a modo de esqueleto en nuestra propia actividad. También podemos ver un ejemplo de uso de seekTo(), en este caso para avanzar hasta la posición intermedia del video.
En esta sección veremos en último lugar, tal como se ha indicado anteriormente, la manera de añadir archivos a la tarjeta de memoria de nuestro dispositivo virtual, de tal forma que podamos almacenar clips de vídeo y resolver los ejercicios propuestos para la sesión. Se deben seguir los siguientes pasos:
En primer lugar el emulador debe encontrarse en funcionamiento, y por supuesto, el dispositivo emulado debe hacer uso de una tarjeta SD.
DESARROLLO
DESARROLLO DE DE APLICACIONES APLICACIONES MÓVILES MÓVILES I I 154154
Gráficos 2D y Aplicaciones Multimedia Gráficos 2D y Aplicaciones Multimedia
Las librerías android.graphics.drawable y android.view.animation son proporcionadas por Android para dibujar y animar imágenes y formas 2D.
Drawables Drawables
Se refiere a todo aquello que se puede dibujar. Es la clase de la cual heredan una variedad de tipos de gráficos, incluyendo BitmapDrawable, ShapeDrawable, PictureDrawable, LayerDrawable y otros. Hay tres maneras distintas de instanciar una clase Drawable.
Utilizar una imagen almacenada en el directorio de recursos de nuestro proyecto. Utilizar un XML que define las propiedades del objeto para luego poder
recuperarlo mediante getDrawable() y el ID que se le asignó en el XML. o Utilizando los constructores propios de la clase.
Lxas librerías android.graphics.drawable y android.view.animation son proporcionadas por Android para dibujar y animar imágenes y formas 2D. ShapeDrawable
ShapeDrawable
Se utiliza para realizar gráficos simples en 2D y aplicarles estilos directamente Desde el código de nuestra aplicación.
Al ser una clase que hereda de Drawable, se puede utilizar en el mismo contexto que ésta. Se pueden realizar por lo tanto clases View que dibujen formas personalizadas gracias al método onDraw() que incluye la clase S hapeDr awable.
Crear un
Crear un reproductor mediaplayereproductor mediaplayerr
Crear una instancia de MediaPlayer y ejecutar el método start() pasando la referencia al recurso.
MediaPlayer mp= MediaPlayer.create(getApplicationContext (), R.raw.bundle); mp.start();
Reproducir desde Stream Reproducir desde Stream
Crear una instancia de MediaPlayer y usar el método setDataSource()wcon la cadena que contiene el path al sistema local o la URL.
Utilizar prepare() y después start()en la instancia. MediaPlayer mp = new MediaPlayer();
mp.setDataSource( PATH_TO_FILE); mp.prepare();
DESARROLLO
DESARROLLO DE DE APLICACIONES APLICACIONES MÓVILES MÓVILES I I 11 55 55
Grabar audio y video Grabar audio y video
DESARROLLO
DESARROLLO DE DE APLICACIONES APLICACIONES MÓVILES MÓVILES I I 156156
Publicación de Publicación de softwaresoftware
Para publicar nuestras aplicaciones primero tenemos que empaquetarlas. Antes de empaquetar debemos preparar el código y comprobar que todo esté correcto:
Nombre de la aplicación, icono y versión.
Deshabilitar debugging en el AndroidManifest.xml (atributo android:debuggable="false" del tag de application).
Eliminar cualquier mensaje de Log.
Pedir sólo los permisos que de verdad la aplicación use, y no más de los necesarios. • Por supuesto, haber probado la aplicación en terminales reales, a
ser posible en más de uno.
Antes de comenzar con nuestra publicación debemos aprender cómo funciona la herramienta de control de aplicaciones de google denominado “google play”
Google Play Services Google Play Services
Es una aplicación del sistema de Android que nos permitirá tener el resto de aplicaciones de nuestro terminal siempre actualizadas, ya que se encargará de comprobar que todas las apps instaladas están en la última versión disponible. Las funciones principales de Google Play Services son la autentificación de servicios de Google, la sincronización de contactos, el acceso a la última configuración de privacidad del usuario, y los servicios basados en la ubicación de mayor calidad y menor potencia.
DESARROLLO
DESARROLLO DE DE APLICACIONES APLICACIONES MÓVILES MÓVILES I I 11 55 77
Modo de control de li
Modo de control de licencias por google playcencias por google play
Una vez publicado la aplicación la licencia se valida con la librería de google play cliente y este se comunica con el servidor de google
Firmar la aplicación Android Firmar la aplicación Android
Para firmar la aplicación debes dar realizar el siguiente procedimiento Prepara tu APK
Prepara tu APK
Cuando estés listo para realizar cambios en el APK, asegúrate de actualizar también el Código de versión de la aplicación para que los usuarios existentes reciban la actualización.
Utiliza la siguiente lista de verificación para asegurarte de que el nuevo APK esté listo para actualizar a los usuarios existentes:
El nombre de paquete del archivo APK actualizado debe ser el mismo que el de la versión actual.
El código de versión debe ser superior al código de la versión actual. Obtén más información sobre cómo crear versiones de tu aplicación.
La firma del archivo APK actualizado debe coincidir con la firma de la versión actual. Para comprobar que el archivo APK utiliza la misma certificación que la versión anterior, puedes ejecutar el siguiente comando en ambos archivos APK y comparar los resultados:
$ keytool -genkey -v -keystore nombredenuestrakeystore.keystore -alias aliasdenuestrakeystore -keyalg RSA -keysize 2048 -validity 10000
Si los resultados son idénticos, significa que estás utilizando la misma clave y que puedes continuar. Si los resultados son diferentes, tendrás que volver a firmar el archivo APK con la clave correcta.
DESARROLLO
DESARROLLO DE DE APLICACIONES APLICACIONES MÓVILES MÓVILES I I 158158
Publicar Aplicaciones Publicar Aplicaciones
1. Ingresar a tu cuenta de Gmail
2. Ingresar a la consola de publicaciones de google play https://play.google.com/apps/publish/
1. Agregar un nombre
2. Dar click en Preparar Ficha de play store https://play.google.com/apps/publish/
3.
DESARROLLO
DESARROLLO DE DE APLICACIONES APLICACIONES MÓVILES MÓVILES I I 11 55 99
VII. BIBLIOGRAFÍA DEL CURSO VII. BIBLIOGRAFÍA DEL CURSO Básica
Básica
GIRONÉS, Jesús Tomas GIRONÉS, Jesús Tomas
2013 El gran libro de Android 3era Edición. México: Alfa y Omega.
GARGENTA, Marko GARGENTA, Marko
2011 Learning Android (245 pages)
United States of America: O’Reilly Media, Inc.
HODSON, Ryan HODSON, Ryan
2014 Android Programming Succinctle. United States of America:Syncfusion Inc. THOMAS, Erl
THOMAS, Erl
2010 Service Oriented Architecture: A field Guide to integrating XML and Web Services.
United States of America Canada: Prentice Hall SMYTH, Neil
SMYTH, Neil
2014 Android 4.4 App Development Essentials (47 pages). Lean Publishing Bibliografía Electrónica
Bibliografía Electrónica
SATYA, Komatineni y MACLEAN, Dave SATYA, Komatineni y MACLEAN, Dave
2012 Expert Android. (Consulta: 22 de enero 2015) United States of America: Apress Inc. Recuperado de:
http://androidbook.com/akc/display?url=ShowAttachmentsIMPURL&reportId=442 3&downerUserId=satya&order_by_format=name
ANDROID Developer ANDROID Developer
2014 Sitio web oficial de desarrollo Android. (Consulta: 27 de Diciembre 2014)(http://developer.android.com/index.html)
LÓPEZ, Victoria LÓPEZ, Victoria
2010 Introducción a Android (117 páginas). (Consulta: 25 de enero 2015) España: Grupo Tecnología CM (Universidad Complutense de Madrid) Recuperado de:
http://pendientedemigracion.ucm.es/info/tecnomovil/documentos/android.pdf
Complementaría Complementaría
MENG LEE, Wei MENG LEE, Wei
2013 Android Application Development Cookbook (385 pages). Indianápolis, Indiana EEUU: John Wiley & Sons, Inc. MENG LEE, Wei
MENG LEE, Wei
2012 Beginning Android™ 4 Application Development.
DESARROLLO
DESARROLLO DE DE APLICACIONES APLICACIONES MÓVILES MÓVILES I I 160160
2010 Beginning Android 4.
United States of America: Apress Inc. GARGENTA, Marco
GARGENTA, Marco
2011 Learning Android Building applications for be Android Market.
United States of America: O’Reilly Media,Inc. RETO, Meir RETO (2012)
RETO, Meir RETO (2012).
2012 Android™ 4 Application Development.