Publicado el 22 de Octubre del 2018
484 visualizaciones desde el 22 de Octubre del 2018
630,1 KB
30 paginas
Creado hace 9a (08/05/2014)
Clase:016
Agenda
Corrección de Error de Driver
Unidad V
Conocimiento de Librerías Especiales de Dispositivos
Corrección de Error de Driver
Este Error aparecerá solamente una vez cuando no se haya
instalado y referenciado el complemento de Sqlite
Note que la versión de Sqlite es 3,8,4,2
Corrección de Error de Driver
Observaremos un
warning en SQLite for
Windows Phone
Eliminaremos esta
referencia
Corrección de Error de Driver
Iremos al menu de Tools,
Extensions and Updates
Corrección de Error de Driver
Buscamos En online… chequeamos el SQLite(ultima versión…. 3.8.4.3)
Corrección de Error de Driver
Agregamos la nueva referencia(clic derecho, add reference)
Corrección de Error de Driver
Chequeamos en Windows Phone, Extensions, SQLite for Windows
Phone 3,8,4,3 y aceptamos
Error Corregido
Podemos ver en el arbol de referencias que ya esta en color negro(sin
Warnings) la referencia de SQLite for Windows Phone
Error Corregido
Demo de la aplicación
Unidad V
Conocimiento de librerías especiales
de Dispositivos
Multimedia(Audio y video)
Multimedia
(Audio y Video)
Multimedia(Audio y Video)
• Android provee soporte para diferentes tipos de medios de
audio y video, así mismo, provee de un API para la
reproducción de estos medios
• Por medio del MediaPlayer API tenemos la posibilidad de
reproducir medios almacenados en el dispositivo, archivos
almacenados en el proyecto en los recursos de la aplicación
(carpeta raw) o inclusive streaming desde la red.
• Para utilizar el MediaPlayer no es necesario un permiso, sin
embargo, existen casos especiales:
• Permiso INTERNET: Si la multimedia viene en forma de
streaming
• PERMISO WAKE_LOCK: Si deseamos especificar que la
pantalla no debe apagarse
Multimedia(Audio y Video)
• Android provee las siguientes clases para la
repoducción de audio y video:
• MediaPlayer: Esta es la API principal para la
ejecución de audio y video.
• AudioManager: esta clase ayuda en el manejo
de fuentes y salidas audio del dispositivo.
Multimedia(Audio y Video)
• AudioManager, permite la administración de
componentes y características de audio del aparato.
Principalmente: volumen y control de los timbres.
Como con otros servicios del sistema lo que hacemos
es solicitar una instancia de la clase, a través de
Context.getSystemService(Context.AUDIO_SERVICE)
• Métodos: adjustVolume(int direction, int flags),
isMicrophoneMute(), isSpeakerphoneOn(),
getRingerMode(), etc.
MediaPlayer
• El objeto MediaPlayer es uno de las clase más
•
importante del framework para reproducir
medios.
Se encarga de barrer, decodificar y reproducir
audio y video con un nivel mínimo de
configuración.
• Provee el entorno requerido para reproducir:
• Recursos raw
• Recursos locales que puedan ser obtenidos
mediante URI
Streamming
•
MediaPlayer
• Para una lista completa de los formatos
soportados consultemos:
• Android Supported Media Formats
me
plataforma Android son mostrados entre paréntesis.
http://developer.android.com/guide/appendix/
dia-formats.html
Aquellos formatos que no se garantiza estén
disponibles en todas las versiones de la
MediaPlayer
• Para reproducir un archivo guardado en la carpeta
raw de nuestro proyecto. Utilizamos:
• MediaPlayer mediaPlayer =
MediaPlayer.create(context, R.raw.sound_file_1);
mediaPlayer.start();
• Un archivo raw es un archivo que hemos
•
almacenado en el folder res/raw/ de nuestro
proyecto.
Los archivos raw se caracterizan porque Android
no trata de parsearlos, el contenido del archivo no
necesariamente esta en modo raw o sin procesar.
MediaPlayer
• En el ejemplo anterior estamos ocupando el
método estático create() para obtener una
instancia de MediaPlayer.
• Este método creará y prepara el archivo(decoding,
•
buffering, etc.) y lo deja listo para reproducción.
Si no utilizamos el método create(), será necesario
llamar a prepare()
MediaPlayer
•
•
Para reproducir un objeto del que tenemos un Uri y esta
local en el dispositivo utilizamos el siguiente método:
En este ejemplo, setDataSource() especifica el Uri y el
contexto del archivo de audio, llamamos a prepare para
decodificarlo y luego el método start() inicia la
reproducción.
MediaPlayer
• Para reproducir, el audio desde una ubicación de red es
bastante parecido:
• Para poder lograr el streamming el audio o video y el
servidor deben de soportar descarga progresiva, es decir,
deben de poder reproducirse sin tener el archivo completo.
MediaPlayer
• Nótese que el método Prepare() es el encargado de
realizar el buffer del audio desde la red cuando se
trata de un streaming, también es el encargado de
la decodificación de audio y video cuando el
recurso es local.
• El método onPrepara() es llamado sincrónicamente,
por lo tanto, puede producir un ANR si la
recuperación o decodificación de la media. No
deberiamos llamarlo desde UI thread.
MediaPlayer
• Dado lo común de este escenario y para solventar
esta situación el MediaPlayer contiene el método
prepareAsync() que realizar el proceso de
preparación asíncronamente.
• Cuando la Media esta lista para ser reproducida,
Android llama al método onPrepared() de un
MediaPlayer.OnPreparedListener que debe de ser
especificado al MediaPlayer mediante el método
setOnPreparedListener()
MediaPlayer
• Otro aspecto importante a tomar en cuenta cuando se
diseñan aplicaciones de Audio y Video, es tomar en cuenta
el estado del MediaPlayer.
• Un MediaPlayer tiene un ciclo de vida, razón por la cual en
ocasiones la operaciones que es posible realizar sobre este
dependen del estado del mismo, por ejemplo: no podemos
llamar a start() después de llamar a stop().
• En caso que no se respeten estas reglas se producirán
errores o exceptions.
• El siguiente diagrama ilustra mejor el ciclo de vida de un
reproductor, y que operaciones nos llevan de un estado a
otro.
Al crear un nuevo
MediaPlayer luego de
llamar reset() , su estado es
Idle.
2. Al llamar
setDataSource() el estado
sera Initialized
3.Luego es posible llamar a
prepare() o prepareAsync().
4.Al finalizar la preparación
o luego de llamar create()
su estado será Prepared().
Lo que significa que es
posible llamar a start().
5.Luego múltiples estados
(Started, Paused and
PlaybackCompleted) son
posibles dependiendo de
las operaciones que
solicitemos al MediaPlayer.
MediaPlayer
La reproducción de medios tiene implicaciones
graves en los recursos disponibles para el sistema,
por lo que, es recomendable que siempre que ya
no sea necesario mantener un MediaPlayer
cargado en memoria, liberemos los recursos para
que el sistema los pueda ocupar en otras
operaciones. Para liberar los recursos de un
reproductor, llamamos
mediaPlayer.release(); mediaPlayer = null; Esto es
especialmente recomendable para las ocasiones
que el MediaPlayer este reproduciendo Video.
Video
• Para reproducir video es necesario especificar a
Android un espacio adonde debe de mostrarse el
video.
• El espacio donde podemos mostrar video es un
SurfaceHolder que podemos acceder por medio de
un SurfaceView.
• Cuando el SurfaceView ya esta dibujado en nuestro
layout podemos especificarlo a nuestro MediaPlayer
por medio del método setDisplay(SurfaceHolder)
• Para obtener el SurfaceHolder de nuestro
SurfaceView utilizamos el método getHolder()
Video
•
Los SurfaceViews están diseñados para soportar cualquier
fuente para dibujarla en su superficie, por ejemplo la cámara.
• Android pone a nuestra disposición, una View especializada para
•
•
reproducir video.
Esta es la VideoView. Un VideoView esta compuesto de un
MediaPlayer y de un SurfaceView.
El MediaPlayer interno ya esta configurado para reproducir
video y por lo tanto solo es necesario especificarlo por el
método:
video = (VideoView) findViewById(R.id.video);
video.setVideoURI(videoUri);
•
Este View posee los métodos para iniciar la reproducción,
pausarla, etc.
Video
• Android también provee las clases necesarias
para que no sea necesaria controlar la
reproducción de medios de forma programática.
Esto se logra por medio de la clase
MediaController.
• Esta clase controla el estado del MediaPlayer.
• Para usarlo solo la instanciamos y la pasamos al
VideoView o MediaPlayer por setController()
desde el video view o setMediaPlayer desde el
MediaController
Audio
Demo
Comentarios de: Agenda - Programación para dispositivos móviles (0)
No hay comentarios