Yo lo tengo así, y me reproduce el video en la misma pantalla. Creo un método con todos los componentes y despues los mando llamar por medio de un botón.
El único error que le he encontrado es que si intento reproducir un video y luego reproduzco el otro, el audio se ejecuta simultaneamente.
Código:
public void m(){
txturl.setText("" + mediaURL);
//se obtiene el tamaño del panel de video
Dimension dp = new Dimension(pantalla.getWidth(), pantalla.getHeight());
//se crea el reproductor pasando como parametros
// el archivo y dimensiones
mediaPanel = new videopanel( mediaURL ,dp );
pantalla.add(mediaPanel);
pantalla.setVisible(true);
//se obtiene dimensiones del contenedor de los controles
// y se pasa como parametro para crear los controles de reproduccion
Dimension d = new Dimension(control.getWidth(),control.getHeight());
control.add(mediaPanel.controles(d));
control.setVisible(true);
}
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
if ( jRadioButton1.isSelected()==true ){
try {
//se asigna a mediaURL el archivo de video seleccionado
java.net.URL u = new File("src/Videos/x.mpg").toURL();
mediaURL = u;
m();
}
catch (IOException ex) {
Logger.getLogger(reproductor.class.getName()).log(Level.SEVERE, null, ex);
}
}
else{
dispose();
}
}
URL mediaURL = null;
videopanel mediaPanel;