el actionPerformance que llama al Jframe:
Código:
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:
public VentanaWebCam() {
initComponents();
VideoPanel.add(video.Componente());
}
La clase que maneja la webCam:
Código:
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