package reproductorjava;
import java.io.IOException;
import java.net.URL;
import java.util.Enumeration;
import java.util.Vector;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.DefaultListModel;
import javax.swing.JFileChooser;
import javax.swing.filechooser.FileNameExtensionFilter;
/**
* @web http://jc-mouse.blogspot.com/
* @author Mouse
*/
public class playlistclass {
private Vector urlCompleto;
private Vector name;
private static FileNameExtensionFilter filter = new FileNameExtensionFilter("Archivo de video","mpg","mpeg");
public playlistclass(){
//se crea dos vectores para almacenar la "url completa" y el "nombre" del archivo de video
// los vectores tienen una capacidad inicial de 10 y un incremento de 2
urlCompleto = new Vector(10,2);
name = new Vector(10,2);
}
/* Añade a los vectores la url y el nombre de un archivo
*/
public void setVideo(URL u, String s){
urlCompleto.addElement(u);
name.addElement(s);
}
/* Dado el nombre de un archivo de video, este es buscado en el vector y si
es encontrado y removido de "ambos vectores" */
public void removervideo(String s){
name.removeElement(s);
Enumeration n = name.elements();
while(n.hasMoreElements()){
String elemento=(String)n.nextElement();
if(elemento.equals(s)){
urlCompleto.remove(elemento);
break;
}
}
}
/* Dado un string con el nombre de un video, se busca su posicion en el vector
* y luego se retorna la posicion de la URL completa
*/
public URL getURL(String s){
Enumeration n = name.elements();
URL turl=null;
int d = 0;
while(n.hasMoreElements()){
String elemento=(String)n.nextElement();
if(elemento.equals(s)){
turl = (URL) urlCompleto.elementAt(d);
break;
}
d++;
}
return turl;
}
/* devuelve la url dado la posicion del mismo */
public URL getLastURL(int d){
URL turl = (URL) urlCompleto.elementAt(d);
return turl;
}
/* Metod que muestra una ventana de dialgo para añadir "archivos" al playlist
* hace uso del metodo anterior "setvideo"
*/
public void Dialog(DefaultListModel modelo){
JFileChooser fileChooser = new JFileChooser();
fileChooser.setFileFilter(filter);
int result = fileChooser.showOpenDialog(null);
if ( result == JFileChooser.APPROVE_OPTION ){
try {
//se asigna a mediaURL el archivo de video seleccionado
URL url = fileChooser.getSelectedFile().toURL();
String namefile = fileChooser.getSelectedFile().getName();
//coloca video
setVideo(url, namefile);
//añade a playlist
modelo.addElement(namefile);
}
catch (IOException ex) {
Logger.getLogger(playlistclass.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
}
ENJOY!!!
20 comentarios:
me encantaron tus tutoriales
estan geniales gracias por
ayudar a entender un poco de
la programacion orientada a objetos
Te agradezco un monton, te repasaste!! eres muy buena persona y un MASTER!! Gracias!!!!
gracias por los tutoriales pero podria hacerme un favor. podrias subir el link a otro gestor de descargas es que frakeshare no me permite hacer la descarga
hey hpombre le agradesco por todos sus tutoriales aprecio mucho que haya programadores tan buenos que difundan sus conocimientos sim embargo en este ejemplo tengo un problema
importjavax.media.CannotRealizeException;
import javax.media.Manager;
import javax.media.NoPlayerException;
import javax.media.Player;
en las clase paneldevideo.java me dice que no se encuentra javax.media
la cosa esque ya instale el jmf
mi correo es lee_general@hotmail.com
gracias
Gracias por quitarme lo ignorante y tu pag esta de primera dejame felicitarte y claro que no sere una rata pondre lo agradecimientos correspondientes creeme y pues un saludo att. Gato universidad ITSSMT
gracias por el tutorial estan excelente pero te agradeceria si lo treparas a otro servidor ya que ese en el que esta no me deja bajarlo si no es mucho la molestia claro
hola el tutorial esta excelente pero podrias volverlo a subir o treparlo a otro servidor porque en el que esta no medeja vajarlo te lo agradeceria mucho
Hola andaba buscando info sobre como crear un reproductor mp3 en java y vi el tema de reproductor de video, quisiera saber si puedes publicar una entrada donde expliques como se realiza el reproducto wno si se puede claro. seria de mucha aiuda ia que recien me inicio en el mundo de java ^^... gracias.
eii ola me ayudaste muchoo... pero ps nose si puedas aser lo mismo pero con musica.. el detalle es que no m sale con una lista.. y staba viendo stee.. pero no se aplicarlo soy nuevoo pliss
muy bueno el reproductor seria interessante que hicieras un reproductor de java que reproduzca archivos swf
Hola q tal esta sabes esta chevere esta aplicación, pero tengo una duda al momento de reproducir el video en formato mpg una vez q la minimizas y vuelves a ver la aplicación, el video desaparece pero sigue sonando el sonido del video, q solucion le puedes dar??...
ah utilizas convertidor para pasar de un formtato a formato mpg... : )
Mi correo: reneguido_18@hotmail.com
GRACIAS POR SU INFORMACIÓN
LA VERDAD SE BE QUE ES UNA PERSONA QUE SI CONOCE DE ESTO
ESPERO PODER PONERME EN CONTACTO DIRECTO CON USTED PARA PODER APRENDER
MAS AQUÍ DE JO MI CORREO
romeo1_cid@hotmail.com
si yo tambien aqui esta mi correo carlosmanuel635@yahoo.com
esta roto el link de descarga podrian subirlo de nuevo
me podrian ayudar con el codigo para los botones agragar y remover,
videos al reproductor en java.... tengo q entrgar un proyecto hoy, les agradeceria mucho su ayuda.!!!
Hola mouse que tal, primero que todo genial tu blog, super util, mi duda es con los codigos del reproductor, ya que el que hice con los videos tutoriales, y los que descargue (modificado y sin modificar) me dan todos el siguiente error:
Unable to handle format: MPEG, 320x240, FrameRate=25.0, Length=115200
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at reproductorjava.paneldevideo.(paneldevideo.java:35)
at reproductorjava.reproductor.jButton2ActionPerformed(reproductor.java:246)
at reproductorjava.reproductor.access$400(reproductor.java:10)
at reproductorjava.reproductor$6.actionPerformed(reproductor.java:135)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6504)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
at java.awt.Component.processEvent(Component.java:6269)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4860)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4686)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2713)
at java.awt.Component.dispatchEvent(Component.java:4686)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:707)
at java.awt.EventQueue.access$000(EventQueue.java:101)
at java.awt.EventQueue$3.run(EventQueue.java:666)
at java.awt.EventQueue$3.run(EventQueue.java:664)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:680)
at java.awt.EventQueue$4.run(EventQueue.java:678)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:677)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
si le puedes arrojar algo de luz al asunto genial, muchas gracias
ATT: Fabian
mi correo: Fabian_nav01@_hotmail.com
tengo problemas con lo del model llevo dias hacienmi propio reprducctor cn esto tutos pero solo teng oese problema
y rl de la url dela GUI
excelente aporte... estoy haciendo algo similar con tu proyecto lo he modificado para poder realizar otro similar para mostrar un listado de expedio de fichas..
de tal modo el sistema ya puede almacenar una lista extensa de videos, mostrar las fichas correspondientes, mensajes.
Esto por una parte.. pero encontre mi duda cuando quise reproducir toda mi lista de videos lo cual no me lo hace... no encontre un metodo el cual me tome todo el array de tipo url[] y este pueda reproducir una despues del otro sin tener q estar presionando play play play etc...
eso podria ser una solucion.. eh pensado en otro que controlar en la clase "videopanel" el tiempo de un video y al finalizar... comenzar con el otro.. en fin.. eso en teoria quisiera q me dieras una mano tan solo en como poder reproducir una lista de videos
mi email: superayoria@yahoo.com
un saludo de mi parte jcmouse y espero respuesta =)
si la API de JM tiene es opcion perfecto, si no la tiene, pues si, habria que controlar la duraccion de las canciones para ir reproduciendo una despues de otra
Publicar un comentario