Buena ya que da menos que antes, ánimos …. Esperamos que este último post os ayude a entender mejor sobre jmf(que por sí sóla parece un mundo…jeje), nos a costado un poco entenderlo; pero viendo apuntes y y recordando las prácticas de servidores(para quienes la tengan ), ayuda entenderlo mejor.
JMF(Java Media Framework)
Introducción:
Los paquetes principales que debemos tener presente en JMF son aquellos de los que haremos uso de sus clases principales , por ejemplo para data source que es una clase del paquete de javax.media.protocol, clases Player y Processor que son interfaces de javax.media, clase Data Sink que es una clase del paqiuete javax.media.
Las clases principales del JMF 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) y la salida de datos (presentación, almacenamiento en fichero o transmisión a través de la red). :
Clase DataSource.- Esta clase se encarga de encapsular la localización, el protocolo de transferencia y el software necesarios para la adquisición. Por lo tanto una vez obtenido un DataSource no se puede asociar a otra fuente de datos.
Player.- Un Player es un objeto encargado de procesar cierto flujo de datos multimedia y presentarlo en su preciso momento.
DataSink.- La función de este objeto es obtener el media stream y almacenarlo en un fichero local, a través de la red o transmitirlo mediante RTP.
EJERCICIO 1 Y 2
Ponemos los 2 ejercicios juntos ya que lo único que había que poner en el ejercicio 2 era un botón que hace que si se pulsa una vez, cuando finaliza el video se para la reproducción y al pulsarle de nuevo, cuando finaliza el video se repite una y otra vez.
Hemos creado una clase que implemente ControllerListener para poder crear el reproductor y el ActionListener para los eventos del JButton. Lo que hemos necesitado para crearlo a sido un Player, JButton y un Componente.
Para crear el player lo hemos hecho a través de una URL que carga el archivo pasándole el nombre del fichero como un String. El player se crea a través del Manager.createPlayer(URL url) y luego le añadimos su escuchador: addControllerListener(this) (this porque lo creamos en la misma clase).
Implementamos el método ActionPerformed, que simplemente nos cambiará un boolean para que se repita o no la reproducción cuando se detecte un evento de ratón sobre el botón.
También implementamos el método controllerUpdate y utilizamos los eventos RealizeCompleteEvent para poder añadir los componentes, ya que solo se pueden añadir cuando el player esta realizado; y el evento de EndOfMediaEvent para que se repita o no cuando finaliza la reproducción.
Os añadimos nuestro código para aquellos que os interese:



Hey Hey Hey!!! el último comentario del curso!!!jejje, que puedo decir, habéis conseguido llegar hasta el final sin tirar la toalla como muchos de nuestros compañeros han hecho ya.
En relación a esta práctica, vosotras andáis con ventaja ya que en segundo esto se da jejje, pero muy bien explicado todo, y muy clarito para las personas que no entiendan nada de JMF!
un saludo y suerte para el examen!!