260 likes | 350 Views
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.
E N D
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. • La principal característica de medios basados en tiempo es que requieren procesamiento y entrega oportunos. • Son también conocidos como media stream.
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.
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.
¿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.
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).
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.
Arquitectura • Cualquier procedimiento con medios basados en el tiempo puede ser descrito por:
Arquitectura de Alto Nivel • La arquitectura de JMF puede ser dividida en capas, para nuestros requerimientos solo ocuparemos la última.
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.
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.
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.
Estados de Player • Normalmente bastará con invocar al método start() sobre el Player para que pase automáticamente por todos estos estados.
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.
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.
Processor • Etapas de processor
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.
Manager • Es una clase Final de javax.media • Contiene métodos estáticos para crear instancias de todas las interfaces y clases anteriores.
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.
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.
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.
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