Java Media Framework. Sergio Catalán Osorio & Christian Nievas Grondona. Programación de Sistemas...

36
Java Media Framework. Sergio Catalán Osorio & Christian Nievas Grondona. Programación de Sistemas 2003.

Transcript of Java Media Framework. Sergio Catalán Osorio & Christian Nievas Grondona. Programación de Sistemas...

Page 1: Java Media Framework. Sergio Catalán Osorio & Christian Nievas Grondona. Programación de Sistemas 2003.

Java Media Framework.

Sergio Catalán Osorio & Christian Nievas Grondona.Programación de Sistemas 2003.

Page 2: Java Media Framework. Sergio Catalán Osorio & Christian Nievas Grondona. Programación de Sistemas 2003.

Tópicos.

Introducción a los datos en tiempo real. Presentación de Java Media Framework

(JMF). Captura, Procesamiento y Entrega de

Medios con JMF. Ejemplo.

Page 3: Java Media Framework. Sergio Catalán Osorio & Christian Nievas Grondona. Programación de Sistemas 2003.

Datos en Tiempo Real.

Page 4: Java Media Framework. Sergio Catalán Osorio & Christian Nievas Grondona. Programación de Sistemas 2003.

Datos en Tiempo Real.

Son los datos que pueden cambiar considerablemente con respecto al tiempo.

Estos medios pueden ser obtenidos de diversas fuentes, como archivos locales o remotos, cámaras, micrófonos y difusiones en vivo.

Ej: Sistemas Multimedia. (Audio, Video)Animaciones.Video - Conferencia.

Page 5: Java Media Framework. Sergio Catalán Osorio & Christian Nievas Grondona. Programación de Sistemas 2003.

Datos en Tiempo Real.

Streaming Media:

La característica principal de este medio es que requiere de un tiempo de entrega y de procesamiento, y por esto se debe controlar, ya que una vez iniciado el flujo de datos, se deben satisfacer ciertos limites de tiempo.

Page 6: Java Media Framework. Sergio Catalán Osorio & Christian Nievas Grondona. Programación de Sistemas 2003.

Etapas.

Page 7: Java Media Framework. Sergio Catalán Osorio & Christian Nievas Grondona. Programación de Sistemas 2003.

Captura :

Estos pueden ser capturados desde una fuente en vivo para procesarla y reproducirla o puede ser adquirida de un archivo de forma remota.

Page 8: Java Media Framework. Sergio Catalán Osorio & Christian Nievas Grondona. Programación de Sistemas 2003.

Procesamiento :

En muchas instancias, la información contenida en un medio es manipulada antes de ser presentado al usuario, ya sea multiplexándola, filtrándola, comprimiéndola, o convirtiéndola en otro tipo de medio.

Page 9: Java Media Framework. Sergio Catalán Osorio & Christian Nievas Grondona. Programación de Sistemas 2003.

Presentación :

La mayoría de estos medios pueden ser presentados a través de dispositivos de salida tales como parlantes y monitores, u otras destinaciones (Ej.: a la red).

Page 10: Java Media Framework. Sergio Catalán Osorio & Christian Nievas Grondona. Programación de Sistemas 2003.

Java Media Framework.

Page 11: Java Media Framework. Sergio Catalán Osorio & Christian Nievas Grondona. Programación de Sistemas 2003.

Java Media Framework.

Herramienta (API) que permite la adquisición, procesamiento y entrega de información en tiempo real.

Contiene interfaces basados en Java que permiten el manejo de streaming media.

Page 12: Java Media Framework. Sergio Catalán Osorio & Christian Nievas Grondona. Programación de Sistemas 2003.

Arquitectura JMF.

Dos niveles de desarrollo:Alto nivel y Bajo nivel.

Page 13: Java Media Framework. Sergio Catalán Osorio & Christian Nievas Grondona. Programación de Sistemas 2003.

Analogía.

Page 14: Java Media Framework. Sergio Catalán Osorio & Christian Nievas Grondona. Programación de Sistemas 2003.

Captura. Un dispositivo de captura multimedia

puede actuar como una fuente de entrega de medios basados en el tiempo. Algunos dispositivos entregan múltiples flujos de datos que pueden ser separados mediante el procesamiento.

Page 15: Java Media Framework. Sergio Catalán Osorio & Christian Nievas Grondona. Programación de Sistemas 2003.

Procesamiento.

Page 16: Java Media Framework. Sergio Catalán Osorio & Christian Nievas Grondona. Programación de Sistemas 2003.

Presentación (Player).

Page 17: Java Media Framework. Sergio Catalán Osorio & Christian Nievas Grondona. Programación de Sistemas 2003.

Presentación (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 18: Java Media Framework. Sergio Catalán Osorio & Christian Nievas Grondona. Programación de Sistemas 2003.

Clases e Interfaces.

Interfaz Manager. Interfaz DataSource. Interfaz Controller. Interfaz Player. Interfaz Processor. Clase Time. (Interfaz Clock, TimeBase.)...

Page 19: Java Media Framework. Sergio Catalán Osorio & Christian Nievas Grondona. Programación de Sistemas 2003.

Paquetes JMF.javax.media javax.media.bean.playerbean javax.media.control javax.media.datasink javax.media.format javax.media.protocol javax.media.renderer javax.media.rtp javax.media.rtp.event javax.media.rtp.rtcp javax.media.util

Page 20: Java Media Framework. Sergio Catalán Osorio & Christian Nievas Grondona. Programación de Sistemas 2003.

Ejemplo:

Video-Conferencia con JMF.

Page 21: Java Media Framework. Sergio Catalán Osorio & Christian Nievas Grondona. Programación de Sistemas 2003.

Video-Conferencia usando JMF Se mostrará un programa en java de video

conferencia usando las librerías de JMF. Se explicarán los aspectos más

importantes del programa. La idea es conocer de mejor manera

algunas de las funciones mas importantes de JMF mediante un ejemplo práctico.

Page 22: Java Media Framework. Sergio Catalán Osorio & Christian Nievas Grondona. Programación de Sistemas 2003.

Clases

El programa se divide en diez clases. Cada clase tiene una función especifica

dentro del programa. Se mostrarán con detalle sólo las clases

que implementan las librerías de JMF.

Page 23: Java Media Framework. Sergio Catalán Osorio & Christian Nievas Grondona. Programación de Sistemas 2003.

Clase “Config”

Esta clase se utiliza para cargar y guardar la configuración del programa principal y no tener que estar introduciéndola de nuevo cada vez que se inicie.

Page 24: Java Media Framework. Sergio Catalán Osorio & Christian Nievas Grondona. Programación de Sistemas 2003.

Clase “Target”

Esta clase se utiliza para guardar la configuración de puertos y direcciones IP del programa principal y utilizarlos en el resto de clases.

Page 25: Java Media Framework. Sergio Catalán Osorio & Christian Nievas Grondona. Programación de Sistemas 2003.

Clase “Misc”

Esta clase se utiliza para albergar los métodos que dan formato al log de la consola del programa.

Page 26: Java Media Framework. Sergio Catalán Osorio & Christian Nievas Grondona. Programación de Sistemas 2003.

Clase “Comunicador”

Esta clase principal del programa, es la que contiene el método main().

Se encarga de construir el entorno gráfico, detectar los dispositivos de captura, y lanzar los transmisores y los receptores cuando el usuario lo indique.

Page 27: Java Media Framework. Sergio Catalán Osorio & Christian Nievas Grondona. Programación de Sistemas 2003.

Clase “Transmisor”

Esta clase se utiliza para ser heredada por otra clase que implemente una transmisión RTP ya que implementa los métodos necesarios y que son independientes de las particularidades de cada transmisor (origen, destino, tipo de datos).

Page 28: Java Media Framework. Sergio Catalán Osorio & Christian Nievas Grondona. Programación de Sistemas 2003.

Clase “TransmisorAudio”

Esta clase se utiliza para transmitir el audio proveniente de un dispositivo de captura y enviarlo a través de una comunicación RTP.

Esta clase hereda de la clase “Transmisor”, en la cual se encuentran todas las variables miembro que utiliza.

Page 29: Java Media Framework. Sergio Catalán Osorio & Christian Nievas Grondona. Programación de Sistemas 2003.

Clase “TransmisorVideo”

Esta clase se utiliza para transmitir el video proveniente de un dispositivo de captura y enviarlo a través de una comunicación RTP.

Esta clase hereda de la clase “Transmisor”, en la cual se encuentran todas las variables miembro que utiliza.

Page 30: Java Media Framework. Sergio Catalán Osorio & Christian Nievas Grondona. Programación de Sistemas 2003.

Subclase “StateListener”

Esta subclase de la clase “Transmisor” se utiliza para mantener un escucha del estado del procesador.

Page 31: Java Media Framework. Sergio Catalán Osorio & Christian Nievas Grondona. Programación de Sistemas 2003.

Clase “Receptor”

Esta clase se utiliza para ser heredada por otra clase que implemente una recepción RTP ya que implementa los métodos necesarios y que son independientes de las particularidades de cada receptor (origen, destino, tipo de datos).

Page 32: Java Media Framework. Sergio Catalán Osorio & Christian Nievas Grondona. Programación de Sistemas 2003.

Clase “ReceptorAudio”

Esta clase se utiliza para recibir y reproducir el audio proveniente de la comunicación RTP.

Esta clase hereda de la clase “Receptor”, en la cual se encuentran todas las variables miembro que utiliza.

Page 33: Java Media Framework. Sergio Catalán Osorio & Christian Nievas Grondona. Programación de Sistemas 2003.

Clase “ReceptorVideo”

Esta clase se utiliza para recibir y reproducir el video proveniente de la comunicación RTP.

Esta clase hereda de la clase “Receptor”, en la cual se encuentran todas las variables miembro que utiliza.

Page 34: Java Media Framework. Sergio Catalán Osorio & Christian Nievas Grondona. Programación de Sistemas 2003.

Subclase “PlayerWindow”

Esta subclase de la clase “Receptor” se utiliza para mostrar una ventana de reproducción.

Page 35: Java Media Framework. Sergio Catalán Osorio & Christian Nievas Grondona. Programación de Sistemas 2003.

Subclase “PlayerPanel”

Esta subclase de la clase “Receptor” se utiliza para mantener un panel de reproducción.

Page 36: Java Media Framework. Sergio Catalán Osorio & Christian Nievas Grondona. Programación de Sistemas 2003.

FIN