26
Introducción a Java Media Frameworks Rodrigo Loyola A. Gustavo Valdés A.

Introducción a Java Media Frameworks

Embed Size (px)

DESCRIPTION

Introducción a Java Media Frameworks. Rodrigo Loyola A. Gustavo Valdés A. Medios Basados en el tiempo. Se conoce como medio basado en el tiempo a todo dato que cambie significativamente en el tiempo. - PowerPoint PPT Presentation

Citation preview

Page 1: Introducción a Java Media Frameworks

Introducción a Java Media Frameworks

Rodrigo Loyola A.Gustavo Valdés A.

Page 2: Introducción a Java Media Frameworks

Medios Basados en el tiempo

• Se conoce como medio basado en el tiempo a todo dato que cambie significativamente en el tiempo.

• La principal característica de medios basados en tiempo es que requieren procesamiento y entrega oportunos.

• Son también conocidos como media stream.

Page 3: Introducción a Java Media Frameworks

Medios basados en el tiempo

• Una vez que comienza el flujo de datos, existen plazos terminantes que deben cumplirse, en términos de recibir y de presentar los datos.

• Por esta razón se debe recibir y procesar dentro de un timeframe particular para producir resultados aceptables.

Page 4: Introducción a Java Media Frameworks

Medios basados en el tiempo

• Por estas razones se debe utilizar una herramienta que permita tratar estos flujos de datos de manera confiable. Respetando la calidad de los datos y con tiempos de procesamiento de estos.

• Por esta razón nace JMF.

Page 5: Introducción a Java Media Frameworks

¿Qué es JMF?

• JMF (“Java Media Framework”) proporciona herramientas para la captura, procesamiento y almacenamiento de datos multimedia.

• Permite su transmisión y recepción a través de Internet.

• Más concretamente permite:– Reproducir ficheros multimedia en applets y

aplicaciones.– Reproducir flujos multimedia recibidos en tiempo real a

través de la red.– Capturar audio y vídeo de un micrófono y una cámara

de vídeo.

Page 6: Introducción a Java Media Frameworks

Arquitectura de JMF

• En todo tratamiento que se pueda hacer con los datos multimedia siempre existen tres pasos, estos son: – La adquisición de datos (captura desde un dispositivo

físico, lectura de un fichero o recepción desde la red), – Procesado (aplicación de efectos como filtrado o

realces, compresión y/o descompresión, conversión entre formatos)

– La salida de datos (presentación, almacenamiento en fichero o transmisión a través de la red).

Page 7: Introducción a Java Media Frameworks

Arquitectura de JMF

Page 8: Introducción a Java Media Frameworks

Formatos soportados por JMF

• Existe una gran variedad de formatos de audio, imagen y video. Entre los cuales podemos destacar: AIFF, AU, AVI, GSM, MIDI, MPEG, QuickTime, RMF, and WAV.

Page 9: Introducción a Java Media Frameworks

Arquitectura

• Cualquier procedimiento con medios basados en el tiempo puede ser descrito por:

Page 10: Introducción a Java Media Frameworks

Arquitectura de Alto Nivel

• La arquitectura de JMF puede ser dividida en capas, para nuestros requerimientos solo ocuparemos la última.

Page 11: Introducción a Java Media Frameworks

Clase Datasource

• Clase de javax.media.protocol

• Representa el origen de datos multimedia.

• Encapsula información sobre su ubicación, el protocolo para su transferencia al reproductor y el software para tratarlos.

• Soporta todo tipo de contenido multimedia.

Page 12: Introducción a Java Media Frameworks

Interfase Player

• Interfase de javax.media

• Actúa como gestor de datos multimedia.

• Asegura que lleguen adecuadamente al dispositivo de salida.

• No hace falta un Player específico para cada tipo de datos.

Page 13: Introducción a Java Media Frameworks

Player

• Tiene asociados controles para actuar sobre los datos multimedia que está procesando:

• Antes de que el fragmento pueda reproducirse, el Player debe pasar por una serie de estados.

Page 14: Introducción a Java Media Frameworks

Estados de Player

• Normalmente bastará con invocar al método start() sobre el Player para que pase automáticamente por todos estos estados.

Page 15: Introducción a Java Media Frameworks

Estados de Player

• Unrealized: instanciado.• Realizing: determinando y obteniendo los

recursos necesarios.• Realized: ha determinado los recursos

necesarios.• Prefetching: preparándose para presentar,

obteniendo los datos de la fuente.• Prefetched: preparado para empezar.• Started: reproducción empezada.

Page 16: Introducción a Java Media Frameworks

Processor

• Es un tipo de Player, subinterfaz de javax.media.Player

• Aporta dos características suplementarias:– Puede volcar los datos procesados en un

DataSource, en lugar de en un dispositivo de salida.

– Puede cambiar de formato lo datos.

Page 17: Introducción a Java Media Frameworks

Processor

Page 18: Introducción a Java Media Frameworks

Processor

• Etapas de processor

Page 19: Introducción a Java Media Frameworks

Estados del processor

Page 20: Introducción a Java Media Frameworks

DataSink

• Es una interfaz de javax.media

• Envía los datos a un destino distinto de los dispositivos de salida, como un fichero o un flujo de salida RTP.

Page 21: Introducción a Java Media Frameworks

Manager

• Es una clase Final de javax.media

• Contiene métodos estáticos para crear instancias de todas las interfaces y clases anteriores.

Page 22: Introducción a Java Media Frameworks

Format

• Es una clase de javax.media• Modela el formato de los datos multimedia.• Tiene dos subclases:

– AudioFormat: Encapsula información sobre el formato de datos de audio:

– Frecuencia de muestreo.– Número de bits por muestra.– Número de canales.– VideoFormat: Encapsula información sobre el

formato de datos de vídeo.

Page 23: Introducción a Java Media Frameworks

Otras Clases

• Por último queda por comentar otras clases importantes que, aunque no son las que hacen la parte más importante del sistema son necesarias para definirlo o controlarlo. Estas clases son, por ejemplo MediaEvent, EventListener, Controls, ProcessorModel, MediaLocator, MediaError, MediaException, Control, TimeBase, etc.

Page 24: Introducción a Java Media Frameworks

Otras Clases

• MediaEvent es la clase padre de todos los eventos lanzados por los componentes JMF.

• ProcessorModel es una clase capaz de definir internamente un Processor.

• MediaError y MediaException son los padres de todos los errores y las excepciones que los objetos JMF pueden lanzar cuando ocurre un error.

Page 25: Introducción a Java Media Frameworks

Otras Clases

• Control es una clase diseñada para controlar las características del flujo de datos de un track al procesarse.

• TimeBase representa la base de tiempos que tienen todos los objetos Clock, la modificación de la velocidad o el momento de comienzo y final se obtiene respecto a esta base temporal

Page 26: Introducción a Java Media Frameworks

Ejemplos