Utilizando multimedia en Android

La integración de contenido multimedia en nuestras aplicaciones resulta muy sencilla gracias a la gran variedad de facilidades que nos proporciona el API.

Concretamente podemos reproducir audio y vídeo desde orígenes distintos:

  • Desde un fichero almacenado en el dispositivo.
  • Desde un recurso que está incrustado en el paquete de la aplicación (fichero .apk).
  • Desde un stream que es leído desde una conexión de red. En este punto admite dos posibles protocolos (http:// y rstp://)

También resulta sencilla la grabación de audio y vídeo, siempre que el hardware del dispositivo lo permita.

En la siguiente lista se muestran las clases de Android que nos permitirán acceder a los servicios Multimedia:

MediaPayer: Reproducción de audio/vídeo desde ficheros o streams.

MediaControler: Visualiza controles estándar para  mediaPlayer (pausa, stop...).

VideoView: Vista que permite la reproducción de vídeo.

MediaRecorder: Permite grabar audio y vídeo.

AsyncPlayer: Reproduce lista de audios desde un thread secundario. 

AudioManager: Gestiona varias propiedades del sistema (volumen, tonos…).

AudioTrack: Reproduce un búfer de audio PCM directamente por hardware.

SoundPool: Maneja y reproduce una colección de recursos de audio.

JetPlayer: Reprocuce audio y video interactivo creado con JetCreator.

Camera: Cómo utilizar la cámara para tomar fotos y vídeo.

FaceDetector: Identifica la cara de la gente en un bitmap.

La plataforma Android soporta una gran variedad de formatos, muchos de los cuales pueden ser tanto decodificados como codificados. A continuación, mostramos una tabla con los formatos multimedia soportados. No obstante algunos modelos de móviles pueden soportar formatos adicionales que no se incluyen en la tabla, como por ejemplo DivX.

Cada desarrollador es libre de usar los formatos incluidos en el núcleo del sistema o aquellos que solo se incluyen en algunos dispositivos.
 

Tipo

Formato

Codifica

Decodifica

Detalles

fichero soportado

Audio

AAC LC/LTP

X

X

Mono/estéreo con cualquier combinación estándar de frecuencia > 160 Kbps y ratios de muestreo de 8 a 48kHz

3GPP (.3gp)
MPEG-4(.mp4)
No soporta raw AAC (.aac)
MPEG-TS (.ts)

HE-AACv1

a partir 4.1

X

HE-AACv2

X

AAC ELD

a partir 4.1

a partir 4.1

Mono/estéreo,
16-8kHz

AMR-NB

X

X

4.75 a 12.2 Kbps muestreada a @ 8kHz

3GPP (.3gp)

AMR-WB

X

X

9 ratios de 6.60 Kbps a 23.85 Kbps a @ 16kHz

3GPP (.3gp)

MP3

X

Mono/estéreo de 8 a 320 Kbps, bit rate constante (CBR) o variable (VBR)

MP3 (.mp3)

MIDI

X

MIDI tipo 0 y 1. DLS v1 y v2. XMF y XMF móvil. Soporte para tonos de llamada RTTTL / RTX, OTA y iMelody.

Tipo 0 y 1 (.mid, .xmf, .mxmf).
RTTTL / RTX
(.rtttl, .rtx),
OTA (.ota)
iMelody (.imy)

Ogg Vorbis

X

Ogg (.ogg)

Matroska (.mkv
a partir 4.0)

FLAC

a partir 3.1 mono/estereo
(no multicanal)

FLAC (.flac)

PCM/WAVE

a partir 4.1

X

8 y 16 bits PCM lineal (frecuencias limitadas por el hardware)

WAVE (.wav)

Imagen

JPEG

X

X

Base + progresivo

JPEG (.jpg)

GIF

X

GIF (.gif)

PNG

X

X

PNG (.png)

BMP

X

BMP (.bmp)

WEBP

a partir 4.0

a partir 4.0

WebP (.webp)

Video

H.263

X

X

3GPP (.3gp)

MPEG-4 (.mp4)

H.264 AVC

a partir 3.0

X

 Baseline Profile (BP)

3GPP (.3gp)
MPEG-4 (.mp4)

MPEG-4 SP

X

3GPP (.3gp)

VP8

a partir 4.3

a partir 2.3.3

 Streaming a partir 4.0

WebM (.webm)

Matroska (.mkv)

Formatos multimedia soportados en Android.

video[Tutorial]   Multimedia en Android

Preguntas de repaso : Multimedia