Boa tarde, comunidade java.
Necessito da seguinte ajuda.
Estou criando uma aplicação stand-alone onde tenho a necessidade de capturar uma foto através de uma webcam.
Em minhas pesquisas, descobri que a API utilizada para este fim é a JMF.
Então galera, preciso de ajuda para entender como contruir um Jframe ou JDialog, que irá exibir a imagem de minha webcam e permitir que eu grave o arquivo em disco.
Acredito que esta não seja uma operação muito fácil, por isso necessito da contribuição de quem puder me ajudar…
Agradeço.
Não consegui fazê-los funcionarem…aff
preciso de ajuda
A
Andre_Menegussi
java.filipe:
Não consegui fazê-los funcionarem…aff
preciso de ajuda
Você já instalou a JMF ?
Uma vez tudo instalado, se vc quiser eu tenho um código que mostra a imagem da WebCam em um JPanel, só não tenho a parte de capturar e gravar a imagem em sí.
Sds
André
:?
java.filipe
Instalei já …velho…
Me mande este código…por favor!!!Tem como!!!
Depois daí eu vejo como funciona este framework…
Estou no aguardo…
Qualquer coisa pode me mandar no email… [email removido]…
abraços
A
Andre_Menegussi
java.filipe:
Instalei já ....velho...
Me mande este código...por favor?!?!?!??!Tem como?!?!
Depois daí eu vejo como funciona este framework.....
Estou no aguardo...
Qualquer coisa pode me mandar no email....
[email removido]....
abraços
Segue o código:
packagecaptura;/** * * @author André */importjava.awt.*;importjavax.media.*;importjavax.media.format.AudioFormat;importjavax.media.format.VideoFormat;importjavax.swing.*;importjava.awt.event.*;publicclassMain{publicstaticPlayerplayer=null;publicstaticCaptureDeviceInfodi=null;publicstaticMediaLocatorml=null;//-------- Iniciopublicstaticvoidmain(String[]args){//CaptureDeviceInfo deviceInfo =//CaptureDeviceManager.getDevice("vfw:Microsoft WDM Image Capture (Win32):0");//------------// Busca de informações dos dispositivos de captura registradosjava.util.VectordeviceListVector=CaptureDeviceManager.getDeviceList(null);if(deviceListVector==null){System.out.println("... error: media device list vector is null, program aborted");System.exit(0);}if(deviceListVector.size()==0){System.out.println("... error: media device list vector size is 0, program aborted");System.exit(0);}for(intx=0;x<deviceListVector.size();x++){// display device nameCaptureDeviceInfodeviceInfo=(CaptureDeviceInfo)deviceListVector.elementAt(x);StringdeviceInfoText=deviceInfo.getName();System.out.println("device "+x+": "+deviceInfoText);// display device formatsFormatdeviceFormat[]=deviceInfo.getFormats();for(inty=0;y<deviceFormat.length;y++){// serach for default video deviceif(deviceFormat[y]instanceofVideoFormat){System.out.println(">>> capture video device = "+deviceFormat[y].toString());}if(deviceFormat[y]instanceofAudioFormat){System.out.println(">>> capture audio device = "+deviceFormat[y].toString());}}}System.out.println("fim da listagem ");// --------// Inicialização dos componentes para viusalizaçãoJFrameframe1=newJFrame("Primeiro teste de captura");// JFrame de Teste JButtonbotao_stop=newJButton("Sair");//container onde serão adicionados todos componentes Containercontainer1=frame1.getContentPane();JPanelpanel1=newJPanel();container1.add(botao_stop,BorderLayout.EAST);botao_stop.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){player.close();player.deallocate();System.exit(0);}});Stringstr1="vfw:Microsoft WDM Image Capture (Win32):0";di=CaptureDeviceManager.getDevice(str1);ml=di.getLocator();try{player=Manager.createRealizedPlayer(ml);System.out.println("Valor de time base: "+player.getTimeBase().getTime());player.start();Componentcomp,compcontrol;if((comp=player.getVisualComponent())!=null){compcontrol=player.getControlPanelComponent();panel1.add(comp,BorderLayout.SOUTH);container1.add(compcontrol,BorderLayout.SOUTH);}}catch(Exceptione){e.printStackTrace();}container1.add(panel1,BorderLayout.NORTH);frame1.pack();frame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// fecha a aplicaçãoframe1.setVisible(true);}}
Verifique no JMF Registry na Aba "Capture Device" se nos itens listados à esquerda aparece algo como "vfw".
Se sim, clique em cima dele e verifique na listagem da direita se existe a linha "NAME=vfw:Microsoft WDM Image Capture (Win32):0"
Se vc encontrar, mas se a descrição não bater com a que está acima, você deverá substituir a linha do programa por esta que está listada.
Nela o JMF Registry mostra como a sua webcam é referenciada pela JMF.