En esta práctica vamos a seguir viendo JMF, en esta práctica nos piden que simulemos un reproductor de un video, como ejercicios avanzados nos piden que implementemos una casilla de verificación para controlar su reproducción y unas ventanas para poder ir a una secuencia concreta simulando un reproductor de DVD,.
Igual que dice la práctica de que no será muy guiada este comentario intentará ser breve y conciso.
Vamos primero a responder a las primeras preguntas sobre el API :
Javax.media.format, tiene una serie de clases para tratar los diferentes formatos de audio y video que pueden soportar los player, Javax.media.util, tiene dos métodos para convertir un video en una imagen awt y poder tratarla. Desde nuestro punto de vista nos parecen más relevantes las siguientes clases del API, con los métodos que comentamos de cada clase, Manager ( createPlayer), Player (start), getControlcomponent, getVisualComponent), Controller (getControll, close deallocate).
EJERCICO DE LA PRÁCTICA
Para realizar el reproductor los primero, tienes que importar una serie de clases, a parte de las de javax.swing.*, deberás importar bastantes de javax.media.*, y algunas para capturar Excepciones (java.net.*, java.io.*), sino cuando intentes compilar te lo irá recordando.
La parte del frame, el contenedor y que tipo de layout utilizar los obviamos, solo comentar que deberemos añadir dos “Component” el visualComponent y el controlPanelComponent.
Para crear el Player podemos hacerlo de dos formas:
1ª. Con un URL.
URL url = new URL (http://www.it.uc3m.es/tsioca/practica12/video/video.mpg);
URL url = new URL (“file:video.mpeg”);
(cualquiera de estos dos parámetros son válidos),
Player player = Manager.createPlayer (url);
“ A continuación debemos capturar las excepciones oportunas”
2ª. Con un objeto DataSource:
MediaLocator ml = new Medialocator (“file:video.mpeg”);
DataSource dt = new DataSource (ml);
Player player = Manager.createPlayer (dt);
“ A continuación debemos capturar las excepciones oportunas”
Siempre después de crear el player deberemos llamar al método player.start();
Acordaros de añadirle al player el escuchador de eventos ( .addControllerListener( )).
El método que recibe estos eventos nos deberá comprobar al menos, cuando recibimos un evento de tipo “RealizeCompleteEvent” porque este será el momento de pedirle los componentes de control y visual y añadirlos a la ventana, tras añadirlos a la ventan debemos poner este método validate ( ), es un método de Jframe que hereda de la clase Container y es necesario invocarlo siempre que se actualicen los componentes de un contenedor.
Con poco más deberíamos conseguir reproducir el video. Para poner una casilla de verificación podemos utilizar un JCheckBox, el cual nos genera eventos a ser marcado que son capturados por .addItemListener.
Por último podemos añadirle dos botones en ellos aparecerán las imágenes que nos dan y que tenemos que asociarlas a dos intervalos del video, no se si habrá una manera más fácil de empezar la reproducción del video en un punto determinado con algún método que le pases un entero y te empieze a reproducir el video en ese instante, nosotros hemos utilizado el método player.getDuration(), para obtener la duración del player y con el método mapTimeToFrame(t) de la clase FramePositioningControl, asociamos el tiempo de duración del video a un número de frames, con el método seek(int), saltamos al número de frame que le pasamos.
Mucha suerte a todos en el examen y sobre todo a los que están en 5ª, a por todas..
Mayo 30, 2008 a las 12:23 pm
gracias por la aportación chicos. me habeis ayudado a aprender sobre algunas cosas que no sabía. Muy organizado.
saludos.