PROGRAMACIÓN MULTIMEDIA
Y
DISPOSITIVOS MÓVILES
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MULTIMEDIA
© J.D.CABRERA
MULTIMEDIA
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MULTIMEDIA
© J.D.CABRERA
LA CLASE MEDIASTORE
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MULTIMEDIA
© J.D.CABRERA
MEDIA STORE
El comportamiento por defecto en Android
con respecto al acceso de contenido
multimedia es que los ficheros multimedia
generados u obtenidos por una aplicación
no podrán ser accedidos por el resto.
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MULTIMEDIA
© J.D.CABRERA
MEDIA STORE
Para que un fichero multimedia pueda ser
accedido desde el exterior deberemos
almacenarlo en el Media Store.
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MULTIMEDIA
© J.D.CABRERA
MEDIA STORE
Media Store mantiene una base de datos de
la metainformación de todos los ficheros
almacenados tanto en dispositivos externos
como internos del terminal telefónico.
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MULTIMEDIA
© J.D.CABRERA
MEDIA STORE
El Media Store es un proveedor de
contenidos, y por lo tanto utilizaremos
el mecanismo estándar para acceso a
dichos proveedores para acceder a la
información que contiene.
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MULTIMEDIA
© J.D.CABRERA
MediaStore.Video
MediaStore.MediaColumns
MediaStore.Images
MediaStore.Files
MEDIA STORE: CONTENIDOS
MediaStore.Audio
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MULTIMEDIA
© J.D.CABRERA
LOCALIZAR ELEMENTO
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MULTIMEDIA
© J.D.CABRERA
MEDIA STORE: CONSTRUCCIÓN
ASIGNA ORIGEN
SELECCIONA MEDIO LOCALIZA ELEMENTO DEL MEDIO
SELECCIONA CAMPO DEL ELEMENTO
IDENTIFICA ELEMENTOS DEL MEDIO
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MULTIMEDIA
© J.D.CABRERA
MEDIA STORE: CONSTRUCCIÓN
SELECCIONA MEDIO – ASIGNA ORIGEN
final Uri mediaSrc = MediaStore.Video.Media.EXTERNAL_CONTENT_URI;
getContentUri()
INTERNAL_CONTENT_URI
EXTERNAL_CONTENT_URI
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MULTIMEDIA
© J.D.CABRERA
MEDIA STORE: CONSTRUCCIÓN
SELECCIONA CAMPO DEL ELEMENTO
String[] titulo= {MediaStore.MediaColumns.TITLE};
ALTO IDENTIFICADOR
ANCHOLONGITUD
FORMATOFECHA MODIFICADO
FECHA AÑADIDOFECHA
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MULTIMEDIA
© J.D.CABRERA
MEDIA STORE: CONSTRUCCIÓN
IDENTIFICA ELEMENTOS
Cursor cursor = managedQuery(
mediaSrc,
null,
null,
null,
MediaStore.Audio.Media.TITLE);
ACTUAL
CursorLoader
ORDEN
URI
ARGUMENTOS
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MULTIMEDIA
© J.D.CABRERA
MEDIA STORE: CONSTRUCCIÓN
IDENTIFICA ELEMENTOS
Se pasan los datos obtenidos del
MediaStore a un objeto que los muestre.
SimpleCursorAdapter(contexto, layout, cursor, nombres, Ids)
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MULTIMEDIA
© J.D.CABRERA
MEDIA STORE: CONSTRUCCIÓN
IDENTIFICA ELEMENTOS
GRIDVIEW LISTVIEW LISTVIEW
ADAPTADOR
BASE DE DATOS
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MULTIMEDIA
© J.D.CABRERA
MEDIA STORE: CONSTRUCCIÓN
LOCALIZA ELEMENTO
Id=cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media._ID));
elementoUri = Uri.withAppendedPath(mediaSrc, id);
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MULTIMEDIA
© J.D.CABRERA
AÑADIR ELEMENTO
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MULTIMEDIA
© J.D.CABRERA
MEDIA STORE
La clase MediaScannerConnection permite
determinar automáticamente de qué tipo
de fichero se trata, para que se pueda
añadir sin necesidad de proporcionar
ninguna información adicional.
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MULTIMEDIA
© J.D.CABRERA
MEDIA STORE: MediaScannerConnection
Proporciona un método scanFile que
gestiona las tareas de identificación del
medio. Debe realizarse de una manera
asíncrona.
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MULTIMEDIA
© J.D.CABRERA
MEDIA STORE: MediaScannerConnection
REALIZAR CONEXIÓN (CONNECT)
CREAR MediaScannerConnectionClient COMPLETAR Y CERRAR CONEXIÓN
ESPERAR CONEXIÓN
REALIZAR ESCANEADO DEL MEDIO
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MULTIMEDIA
© J.D.CABRERA
MEDIA STORE: MediaScannerConnection
CREAR MediaScannerConnectionClient
MediaScannerConnectionClient mediaCliente = new MediaScannerConnectionClient {}
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MULTIMEDIA
© J.D.CABRERA
MEDIA STORE: MediaScannerConnection
CREAR CONEXIÓN: ARQUITECTURA DE LA CONEXIÓN
public void onScanCompleted(String path, Uri uri) {}
public void onMediaScannerConnected() {}
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MULTIMEDIA
© J.D.CABRERA
MEDIA STORE: MediaScannerConnection
REALIZAR CONEXIÓN
MediaScannerConnectionClient mediaCliente = new
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MULTIMEDIA
© J.D.CABRERA
MEDIA STORE: MediaScannerConnection
REALIZAR /ESPERAR CONEXIÓN
private MediaScannerConnection msc = null;
{
msc = new MediaScannerConnection(getApplicationContext(), this);
msc.connect();
}
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MULTIMEDIA
© J.D.CABRERA
MEDIA STORE: MediaScannerConnection
REALIZAR ESCANEO
public void onMediaScannerConnected() {
msc.scanFile("/mnt/sdcard/DCIM/fichero.mp4", null);
}
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MULTIMEDIA
© J.D.CABRERA
MEDIA STORE: MediaScannerConnection
COMPLETAR Y CERRAR CONEXIÓN
public void onScanCompleted(String path, Uri uri) {
// RESTO DE CÓDIGO ADICCIONAL
msc.disconnect();
}
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MULTIMEDIA
© J.D.CABRERA
PROGRAMACIÓN MULTIMEDIA
Y
DISPOSITIVOS MÓVILES
PROGRAMACIÓN ANDROID: MULTIMEDIA - MEDIASTORE

PROGRAMACIÓN ANDROID: MULTIMEDIA - MEDIASTORE

  • 2.
  • 4.
    PROGRAMACIÓN MULTIMEDIA YDISPOSITIVOS MÓVILES MULTIMEDIA © J.D.CABRERA MULTIMEDIA
  • 5.
    PROGRAMACIÓN MULTIMEDIA YDISPOSITIVOS MÓVILES MULTIMEDIA © J.D.CABRERA LA CLASE MEDIASTORE
  • 6.
    PROGRAMACIÓN MULTIMEDIA YDISPOSITIVOS MÓVILES MULTIMEDIA © J.D.CABRERA MEDIA STORE El comportamiento por defecto en Android con respecto al acceso de contenido multimedia es que los ficheros multimedia generados u obtenidos por una aplicación no podrán ser accedidos por el resto.
  • 7.
    PROGRAMACIÓN MULTIMEDIA YDISPOSITIVOS MÓVILES MULTIMEDIA © J.D.CABRERA MEDIA STORE Para que un fichero multimedia pueda ser accedido desde el exterior deberemos almacenarlo en el Media Store.
  • 8.
    PROGRAMACIÓN MULTIMEDIA YDISPOSITIVOS MÓVILES MULTIMEDIA © J.D.CABRERA MEDIA STORE Media Store mantiene una base de datos de la metainformación de todos los ficheros almacenados tanto en dispositivos externos como internos del terminal telefónico.
  • 9.
    PROGRAMACIÓN MULTIMEDIA YDISPOSITIVOS MÓVILES MULTIMEDIA © J.D.CABRERA MEDIA STORE El Media Store es un proveedor de contenidos, y por lo tanto utilizaremos el mecanismo estándar para acceso a dichos proveedores para acceder a la información que contiene.
  • 10.
    PROGRAMACIÓN MULTIMEDIA YDISPOSITIVOS MÓVILES MULTIMEDIA © J.D.CABRERA MediaStore.Video MediaStore.MediaColumns MediaStore.Images MediaStore.Files MEDIA STORE: CONTENIDOS MediaStore.Audio
  • 11.
    PROGRAMACIÓN MULTIMEDIA YDISPOSITIVOS MÓVILES MULTIMEDIA © J.D.CABRERA LOCALIZAR ELEMENTO
  • 12.
    PROGRAMACIÓN MULTIMEDIA YDISPOSITIVOS MÓVILES MULTIMEDIA © J.D.CABRERA MEDIA STORE: CONSTRUCCIÓN ASIGNA ORIGEN SELECCIONA MEDIO LOCALIZA ELEMENTO DEL MEDIO SELECCIONA CAMPO DEL ELEMENTO IDENTIFICA ELEMENTOS DEL MEDIO
  • 13.
    PROGRAMACIÓN MULTIMEDIA YDISPOSITIVOS MÓVILES MULTIMEDIA © J.D.CABRERA MEDIA STORE: CONSTRUCCIÓN SELECCIONA MEDIO – ASIGNA ORIGEN final Uri mediaSrc = MediaStore.Video.Media.EXTERNAL_CONTENT_URI; getContentUri() INTERNAL_CONTENT_URI EXTERNAL_CONTENT_URI
  • 14.
    PROGRAMACIÓN MULTIMEDIA YDISPOSITIVOS MÓVILES MULTIMEDIA © J.D.CABRERA MEDIA STORE: CONSTRUCCIÓN SELECCIONA CAMPO DEL ELEMENTO String[] titulo= {MediaStore.MediaColumns.TITLE}; ALTO IDENTIFICADOR ANCHOLONGITUD FORMATOFECHA MODIFICADO FECHA AÑADIDOFECHA
  • 15.
    PROGRAMACIÓN MULTIMEDIA YDISPOSITIVOS MÓVILES MULTIMEDIA © J.D.CABRERA MEDIA STORE: CONSTRUCCIÓN IDENTIFICA ELEMENTOS Cursor cursor = managedQuery( mediaSrc, null, null, null, MediaStore.Audio.Media.TITLE); ACTUAL CursorLoader ORDEN URI ARGUMENTOS
  • 16.
    PROGRAMACIÓN MULTIMEDIA YDISPOSITIVOS MÓVILES MULTIMEDIA © J.D.CABRERA MEDIA STORE: CONSTRUCCIÓN IDENTIFICA ELEMENTOS Se pasan los datos obtenidos del MediaStore a un objeto que los muestre. SimpleCursorAdapter(contexto, layout, cursor, nombres, Ids)
  • 17.
    PROGRAMACIÓN MULTIMEDIA YDISPOSITIVOS MÓVILES MULTIMEDIA © J.D.CABRERA MEDIA STORE: CONSTRUCCIÓN IDENTIFICA ELEMENTOS GRIDVIEW LISTVIEW LISTVIEW ADAPTADOR BASE DE DATOS
  • 18.
    PROGRAMACIÓN MULTIMEDIA YDISPOSITIVOS MÓVILES MULTIMEDIA © J.D.CABRERA MEDIA STORE: CONSTRUCCIÓN LOCALIZA ELEMENTO Id=cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media._ID)); elementoUri = Uri.withAppendedPath(mediaSrc, id);
  • 19.
    PROGRAMACIÓN MULTIMEDIA YDISPOSITIVOS MÓVILES MULTIMEDIA © J.D.CABRERA AÑADIR ELEMENTO
  • 20.
    PROGRAMACIÓN MULTIMEDIA YDISPOSITIVOS MÓVILES MULTIMEDIA © J.D.CABRERA MEDIA STORE La clase MediaScannerConnection permite determinar automáticamente de qué tipo de fichero se trata, para que se pueda añadir sin necesidad de proporcionar ninguna información adicional.
  • 21.
    PROGRAMACIÓN MULTIMEDIA YDISPOSITIVOS MÓVILES MULTIMEDIA © J.D.CABRERA MEDIA STORE: MediaScannerConnection Proporciona un método scanFile que gestiona las tareas de identificación del medio. Debe realizarse de una manera asíncrona.
  • 22.
    PROGRAMACIÓN MULTIMEDIA YDISPOSITIVOS MÓVILES MULTIMEDIA © J.D.CABRERA MEDIA STORE: MediaScannerConnection REALIZAR CONEXIÓN (CONNECT) CREAR MediaScannerConnectionClient COMPLETAR Y CERRAR CONEXIÓN ESPERAR CONEXIÓN REALIZAR ESCANEADO DEL MEDIO
  • 23.
    PROGRAMACIÓN MULTIMEDIA YDISPOSITIVOS MÓVILES MULTIMEDIA © J.D.CABRERA MEDIA STORE: MediaScannerConnection CREAR MediaScannerConnectionClient MediaScannerConnectionClient mediaCliente = new MediaScannerConnectionClient {}
  • 24.
    PROGRAMACIÓN MULTIMEDIA YDISPOSITIVOS MÓVILES MULTIMEDIA © J.D.CABRERA MEDIA STORE: MediaScannerConnection CREAR CONEXIÓN: ARQUITECTURA DE LA CONEXIÓN public void onScanCompleted(String path, Uri uri) {} public void onMediaScannerConnected() {}
  • 25.
    PROGRAMACIÓN MULTIMEDIA YDISPOSITIVOS MÓVILES MULTIMEDIA © J.D.CABRERA MEDIA STORE: MediaScannerConnection REALIZAR CONEXIÓN MediaScannerConnectionClient mediaCliente = new
  • 26.
    PROGRAMACIÓN MULTIMEDIA YDISPOSITIVOS MÓVILES MULTIMEDIA © J.D.CABRERA MEDIA STORE: MediaScannerConnection REALIZAR /ESPERAR CONEXIÓN private MediaScannerConnection msc = null; { msc = new MediaScannerConnection(getApplicationContext(), this); msc.connect(); }
  • 27.
    PROGRAMACIÓN MULTIMEDIA YDISPOSITIVOS MÓVILES MULTIMEDIA © J.D.CABRERA MEDIA STORE: MediaScannerConnection REALIZAR ESCANEO public void onMediaScannerConnected() { msc.scanFile("/mnt/sdcard/DCIM/fichero.mp4", null); }
  • 28.
    PROGRAMACIÓN MULTIMEDIA YDISPOSITIVOS MÓVILES MULTIMEDIA © J.D.CABRERA MEDIA STORE: MediaScannerConnection COMPLETAR Y CERRAR CONEXIÓN public void onScanCompleted(String path, Uri uri) { // RESTO DE CÓDIGO ADICCIONAL msc.disconnect(); }
  • 29.
    PROGRAMACIÓN MULTIMEDIA YDISPOSITIVOS MÓVILES MULTIMEDIA © J.D.CABRERA PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES