No se, es todo muy raro, ahora me sigue dando el mismo error pero parece que traga con él, se abre el JFrame que se tiene que abrir pero en el Jpanel que añado el componente aparece una pantalla rosa. Cuando minimizo el JFrame, en la parte que estaba al Jpanel y sobre cualquier tipo de ventana (escritorio, navegador, otras ventanas, el propio NetBean) aparece una captura de la webCam correspondiente al momento de minimizar la ventana... Dejo el código por si sirviese de ayuda para solucionar esto que me trae ya de cabeza...:
el actionPerformance que llama al Jframe:
la parte del JFrame implicada:
La clase que maneja la webCam:
Saludos
el actionPerformance que llama al Jframe:
Código [Seleccionar]
private void VideoCamActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
//Se pide el nombre del nuevo directorio. Y se crean los directorios de las
//distintas emociones en él.
IODialog entradaSalida = new IODialog();
String pathBaseDD;
String directorioFuente = entradaSalida.readLine("Introduce el \n"
+ "nombre de la nueva base de datos");
pathBaseDD = CreaDirectoriosBaseDatos(directorioFuente);
// Se crea el objeto
VentanaWebCam h1 = new VentanaWebCam();
// se añade al jDesktopPane
jDesktopPane1.add(h1);
h1.SetPath(pathBaseDD);
//se muestra en pantalla
h1.setVisible(true);
}
la parte del JFrame implicada:
Código [Seleccionar]
public VentanaWebCam() {
initComponents();
VideoPanel.add(video.Componente());
}
La clase que maneja la webCam:
Código [Seleccionar]
public class VideoJMF {
//Controlador universal de windows
private String dispositivo = "vfw:Microsoft WDM Image Capture (Win32):0";
private Player player = null;
public Component Componente(){
Component componente_video;
try {
// Se obtiene el dispositivo
MediaLocator localizador = new MediaLocator("vfw:\\Device\\0000008b");
player = Manager.createRealizedPlayer(localizador); //Aqui sale la ventana //que me pregunta por el dispositivo de captura de video y da el error //java.io.IOException: Could not connect to capture device sin embargo ya solo //sale una vez y la aplicacion sigue su curso. Salvo por el problema de la pantallita //rosa :S
player.start();
} catch (IOException ex) {
Logger.getLogger(VideoJMF.class.getName()).log(Level.SEVERE, null, ex);
} catch (NoPlayerException ex) {
Logger.getLogger(VideoJMF.class.getName()).log(Level.SEVERE, null, ex);
} catch (CannotRealizeException ex) {
Logger.getLogger(VideoJMF.class.getName()).log(Level.SEVERE, null, ex);
}
//Si se pudo crear el PLAYER, se obtiene el componente de video
if ((componente_video = player.getVisualComponent()) != null) {
//se da un tamaño al componente
//componente_video.setSize(320, 240);
return componente_video;
} else {
JOptionPane.showMessageDialog(null,"No se pudo crear el video...");
return null;
}
}
}
Saludos