Boa Tarde Galera estou precisando gravar video com o DSJ mas não estou conseguindo,já consegui implementar um frame que grave foto,gostaria de ajuda para implementar o video.desde já obrigado.
segue abaixo o codigo :
package capturarfotos;
//Bibliotecas necessárias para a execução do programa.
import de.humatic.dsj.*;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.io.File;
import java.awt.image.BufferedImage;
import java.awt.image.RenderedImage;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.*;
//Classe para a captura da foto, utilizando a API DirectShow
public class CapturarFotos implements java.beans.PropertyChangeListener
{
private DSCapture graph;
public static void main (String args[]){
new CapturarFotos();
}
public CapturarFotos()
{
createGraph();
}
//Método que inicializa a webcam e configura a mesma em frame.
public void createGraph()
{
final javax.swing.JDialog frame = new JDialog();
frame.setTitle("Capturar Fotos");
DSFilterInfo[][] dsi = DSCapture.queryDevices(DSCapture.SKIP_AUDIO);
graph = new DSCapture(DSFiltergraph.DD7,dsi[0][0],false,DSFilterInfo.doNotRender(),this);
frame.add(java.awt.BorderLayout.CENTER,graph.asComponent());
final javax.swing.JButton btnCapture = new javax.swing.JButton("Capturar");
//Configurando o botão de captura;
btnCapture.addActionListener(new java.awt.event.ActionListener() {
@Override
public void actionPerformed(ActionEvent e)
{
if((graph.getState() == DSCapture.PREVIEW))
{
BufferedImage gravar = graph.getImage();
Image img = gravarImagem(gravar);
frame.dispose();
graph.dispose();
}
else
{
graph.setPreview();
}
}
});
frame.add(java.awt.BorderLayout.NORTH,btnCapture);
frame.setModal(true);
frame.pack();
frame.setVisible(true);
frame.setDefaultCloseOperation(javax.swing.JFrame.DISPOSE_ON_CLOSE);
}
public void propertyChange(java.beans.PropertyChangeEvent pe)
{
switch(DSJUtils.getEventType(pe)){}
}
//Método que grava o dado capturado pela webcam.
public Image gravarImagem(BufferedImage imagem)
{
JFileChooser fc = new JFileChooser();
fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
String caminho = "";
if(fc.showOpenDialog(null) == JFileChooser.APPROVE_OPTION){
caminho = fc.getSelectedFile().getAbsolutePath();
try
{
ImageIO.write((RenderedImage) imagem, "jpg", new File(caminho+"/fotoTeste.jpg"));
JOptionPane.showMessageDialog(null, "Imagem Capturada com Sucesso!");
return imagem.getScaledInstance(100, 100, Image.SCALE_DEFAULT);
}
catch (IOException e)
{
JOptionPane.showMessageDialog(null, "Não foi possivel encontrar " +
"o dispositivo para a captura da imagem.");
return null;
}
}else{
return null;
}
}
}