Título: Manejar WebCam o camaraWeb desde JAVA Publicado por: cyberserver en 15 Mayo 2010, 20:32 pm Hola amigos, veran e buscado mucho al respecto y se que se puede hacer con JMF (Java Media Framework) pero no e podido encontrar ejemplos de como hacerlo, las instrucciones que se dan se me hacen muy confusas ya que son pasa manejar aspectos de la camara mas elavorados. pero yo lo unico que quiero es poder ver la camara desde java!!!!
miren aqui esta una de las paginas que le comento, http://www.google.com.mx/imgres?imgurl=http://cmop17.files.wordpress.com/2010/01/snag-0000.png&imgrefurl=http://cmop17.wordpress.com/2010/01/14/&usg=__4c2Xe_PJ3zHynQfT3e07bK2MrA4=&h=631&w=521&sz=256&hl=es&start=1&um=1&itbs=1&tbnid=AiPAP_vE_OvEMM:&tbnh=137&tbnw=113&prev=/images%3Fq%3Dwebcam%2Bdesde%2Bjava%2Bjmf%26um%3D1%26hl%3Des%26safe%3Doff%26sa%3DN%26tbs%3Disch:1 (http://www.google.com.mx/imgres?imgurl=http://cmop17.files.wordpress.com/2010/01/snag-0000.png&imgrefurl=http://cmop17.wordpress.com/2010/01/14/&usg=__4c2Xe_PJ3zHynQfT3e07bK2MrA4=&h=631&w=521&sz=256&hl=es&start=1&um=1&itbs=1&tbnid=AiPAP_vE_OvEMM:&tbnh=137&tbnw=113&prev=/images%3Fq%3Dwebcam%2Bdesde%2Bjava%2Bjmf%26um%3D1%26hl%3Des%26safe%3Doff%26sa%3DN%26tbs%3Disch:1) pero yo apenas comienzo a saber que es JMF y eso me revuelve Alguien tiene un ejemplo sencillo pero funcional de como hacerlo!!! les agradecere mucho su ayuda!!! De anetamo gracias ;-) Título: Re: Manejar WebCam o camaraWeb desde JAVA Publicado por: biribau en 15 Mayo 2010, 21:24 pm Has probado este code?
http://forums.sun.com/thread.jspa?threadID=247253 (http://forums.sun.com/thread.jspa?threadID=247253) Título: Re: Manejar WebCam o camaraWeb desde JAVA Publicado por: cyberserver en 15 Mayo 2010, 21:51 pm Sip ya lo havia provado pero me manda 3 errores
Citar --------------------Configuration: <Default>-------------------- C:\Users\Los_flais\Desktop\Camara\SwingCapture.java:151: warning: com.sun.image.codec.jpeg.JPEGImageEncoder is Sun proprietary API and may be removed in a future release JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out); ^ C:\Users\Los_flais\Desktop\Camara\SwingCapture.java:151: warning: com.sun.image.codec.jpeg.JPEGCodec is Sun proprietary API and may be removed in a future release JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out); ^ C:\Users\Los_flais\Desktop\Camara\SwingCapture.java:152: warning: com.sun.image.codec.jpeg.JPEGEncodeParam is Sun proprietary API and may be removed in a future release JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(bi); ^ 3 warnings Process completed. me manda un error en los codecs o algo asi pero como lo puedo corregir :S Título: Re: Manejar WebCam o camaraWeb desde JAVA Publicado por: cyberserver en 15 Mayo 2010, 23:13 pm Listoooo ya pude.....eaea uff mi cabezita tuve k entenderle mazo al temaaaa :rolleyes: y buscar muchos codigos relacionados para armar uno pequeño y simple...
Código: import javax.media.Manager; Saludosssss Título: Re: Manejar WebCam o camaraWeb desde JAVA Publicado por: josco en 16 Mayo 2010, 05:17 am me parece muy interesante tu proyecto, yo estoy haciendo una biblioteca y me gustaria tomar fotos de usuarios desde la camara web de mi lap, podrias subir tu proyecto para echarle un vistaso??? ;D ;D ;D
Título: Re: Manejar WebCam o camaraWeb desde JAVA Publicado por: cyberserver en 16 Mayo 2010, 22:46 pm Eaea. que honda amigos pues ya me aplique y cree una api por decirlo asi muy sencilla de usar :P funciona asi:
Citar Leame.txt VIVA atlacomulco Para poder hacer uso de la api CamaraWeb necesitas tener instalado JMF y tener los .jar en la ruta \Java\jdk1.6.0_17\jre\lib\ext para poder usarlo desde Jcreator o cualquir otro IDE. Los Metodos dentro son public Component VerCamara(int x,int y,int alto,int ancho){ Los parametros de este metodo son para colocar el componente resultante en un Jframe public int Fotografiar(String Carpeta,Boolean NombreAutomatico,String NombreValoNull){ Los parametros son: Carpeta: Carpeta donde se crearan las imagenes si no existe la crea si existe la respeta NombreAutomatico: false si no quieres colocar un nombre automatico true si quieres un nombre automatico(dia-Hora) NombreValoroNull: Nombre de la imagen SIN extensión en el caso que se aya dado false en el parametro anterior, de lo contrar se rellena con null El codigo de la api es el siguiente Código: //Paquetes para guardar imagen (Es necesario tener las apis _JMF_) Y si no quieres saber de codigo y solo usar el api que tiene que estar adjunto a tu proyecto ya que es un .class aqui descargalo... http://cybercerver.webcindario.com/APICamara%20Web.zip (http://cybercerver.webcindario.com/APICamara%20Web.zip) Saludos y viva Atlacomulco:P atte: CyberServer Título: Re: Manejar WebCam o camaraWeb desde JAVA Publicado por: josco en 17 Mayo 2010, 02:53 am hola cyberserver, entonces como puedo hacer para que se vea la cam en un frame, mira uso netbeans, cree un nuevo proyecto agregue tu clase y un jframe puse un boton y en el codigo le puse:
Código: private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { cuando corro el programa le doy al boton y prende la camara, pero que tengo que hacer para que me muestre lo que esta viedno la camara?? me sale el error: java.io.IOException: Could not connect to capture device Título: Re: Manejar WebCam o camaraWeb desde JAVA Publicado por: cyberserver en 17 Mayo 2010, 04:15 am ;D ;D ;D Bien Facil men mira.
Esta es la firma del metodo para ver la camara... Código: public Component VerCamara(int x,int y,int alto,int ancho){ Si ves nos retorna un valor tipo Component..... esto quiere decir que nos retorna un objeto asi como si fuera un Jcommand, un JText etc ;D lo que tendriamos que hacer es agregarlo al Jframe o Jpanel como si fuera otro objeto. entonces el codigo para agregar el componente es: Código: JFrame.setlayout(null); Claro no esperes que te agregue el panel completo para modificar aspectos visuales, solo te va a agregar el componente de la CamaraWeb y tu ya con las cordenadas que le des pues puedes colocarlo en un lugar para que se vea padre. mira aqui esta el mio con el unico uso de mi clase. :P espero que te aya servido y cualquier duda hasme saber atte: CyberServer (http://r.i.elhacker.net/cache?url=http://cybercerver.webcindario.com/FOTODEBICHO.jpg) Título: Re: Manejar WebCam o camaraWeb desde JAVA Publicado por: josco en 17 Mayo 2010, 19:49 pm que tal cyberserver, ahora si ya pude hacer que se muestre la camara en un jtext ;D ;D ;D pero ahora quisiera tomar una foto, ya lo intente pero me sale un error :-( :-( :-( :-( mira te explico lo que hago:
en un jframe agregue un jtext y dos botones, a un boton le agregue la funcion para que me muestre la camara en el jtext asi: Código: private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { y al otro boton, segun yo le puse el siguiente codigo para que tomara la foto: Código: private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) { pero al darle a este boton me sale este error: Código: error de comunicacion con la webcam javax.media.noplayerexception: error instantiating class: com.sun.media.protocol.vfw.datasource: java.io.IOexception: capture device in use ahora la pregunta es, como le hago para tomar una foto y guardarla. gracias por tu ayuda saludosss ;-) ;-) ;-) Título: Re: Manejar WebCam o camaraWeb desde JAVA Publicado por: cyberserver en 17 Mayo 2010, 23:20 pm ;D ;D facil, mira para entender este error tenemos que ir al codigo en esta parte.
Código: CamaraWeb(){ Si nos damos cuenta es un contructor. Contructor segun wikipedia: Citar En java es un método especial dentro de una clase, que se llama automáticamente cada vez que se crea un objeto de esa clase. Posee el mismo nombre de la clase a la cual pertenece y no puede regresar ningún valor (ni siquiera se puede especificar la palabra reservada void). Por ejemplo si añadiéramos a la clase SSuma un constructor, tendríamos que llamarlo también SSuma. Cuando en una clase no se escribe propiamente un constructor, java asume uno por defecto. Constructor por defecto [editar] Un constructor por defecto es un constructor sin parámetros que no hace nada. Sin embargo será invocado cada vez que se construya un objeto sin especificar ningún argumento, en cuyo caso el objeto será iniciado con los valores predeterminados por el sistema (los atributos numéricos a ceros, los alfanuméricos a nulos, y las referencias a objetos a null). Esto quiere decir que en este se definen e inacializan las variables y metodos que vamos a utilizar a lo largo de la clase. En nuestro caso dentro de nuestro constructor CamaraWeb() se inicializa la conexión de la CamaraWeb para con el metodo de VerCamara() se proyecte en un componente. Entonces ese error aparece por que estas instanciando 2 veces la Clase "CamaraWeb" y en la segunda ves estas tratando de cargar la camaraweb cuando esta ya esta cargada, es por eso que el error te dice; Citar capture device in use La solucion seria mandar a llamar VerCamara() y Fotografias() en la misma clase.!!! :P y instanciando una sola ves!!!!!! :P NOTA: con relacio a tu codigo creo que estas tratando de matar moscas a cañonazos en cuestion de los eventos de los botones mira Tu codigo: Código: private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { Cuando podrias sintetisarlo asi: Código: clase ejemplo implements ActionListener{ y asi ya utilizas los dos metodos de la clase CamaraWeb instanciadola una sola ves Saludos y espero que aya sido claro... saludos atte: CyberServer Título: Re: Manejar WebCam o camaraWeb desde JAVA Publicado por: josco en 19 Mayo 2010, 05:18 am bueno, sigo en las mismas :rolleyes: :rolleyes:, como en la escuela solo nos ensenan a programar en java con netbeans, y no nos ensenan a crear botones desde cero, tengo dudas respecto al ultimo codigo :-\ :-\, ya le intente de muchas maneras pero no lo puedo hacer jalar.
bueno te explico las dudas: 1.- no se donde poner exactamente este codigo: Código: clase ejemplo implements ActionListener{ donde dice: Código: clase ejemplo implements ActionListener{ no es en clase class?? este codigo va en la misma clase CamaraWeb?? o en el jframe?? o donde?? bueno te dejo un video para que veas lo que hago puedes adelantarle al minuto 7:30 es la parte donde termino de matar moscas a canonazos jaja, y empiezo a intentar con tu codigo: el video lo puedes descargar de aqui: http://www.megaupload.com/?d=3KPBBLV1 pesa como 27 MB espero no te moleste, ojala y me puedas ayudar saludosss ;D ;D ;D ;D Título: Re: Manejar WebCam o camaraWeb desde JAVA Publicado por: cyberserver en 19 Mayo 2010, 06:08 am OK MEN ya entendi lo siento si te confundi. por cierto estuvo chido el video se ve que ya te dominas el NetBeans!!!!
Mira segun lo que yo pude ver (corrigeme si me equivoco). Tus metodos para los eventos del boton los genera automaticamente el IDE pero estos se van agregarndo a tu clase que se llama ventana.java dentro esta tambien el public static void main (String[] args). Mira el error que te manda mi clase es por k estas instanciando dos veces( instancias es cuando crear un objeto de tipo de la clase CamaraWeb objeto=new CamaraWeb()), por decirlo de otro cuando ases esto automaticamente la clase por medio del constructor inicializa la camaraweb sin que tu te des cuenta pero tu no puedes verla asta que llames al evento VerCamara(), entonces si instancias 2 veces estas cargando una camara web que ya en uso la primera ves.!!! es por eso que te marca ese error de Citar capture device in use Entonces para solucionar este error y juntarlo con tu codigo tenemos que declarar una variable GLOBAL(esta se declara fuera de cualquier metodo y su funcion es k pueda ser accesible desde cualquier metodo de la clase). Declarar una Variable global: Código: class ventana{ en el codigo de arriva declaramos a Ver de tipo CamaraWeb como Variable GLOBAL entonces podremos acceder y hacer uso de ella desde cualquier metodo que este dentro de la clase ventana. ahora pues. para resolver el problema de tu codigo tendremos que hacer esto. Código: class ventana{ Y Bingo, con esto resolvimos el dilema de instanciar dos veces a la clase...... viste que solo lo hisimos una ves con el objeto o variable "Ver"..... ;D Espero haber sido lo mas claro posible, y cualquier duda hasmela saber. atte: CyberServer Título: Re: Manejar WebCam o camaraWeb desde JAVA Publicado por: josco en 19 Mayo 2010, 21:39 pm gracias men. ya funciona a la perfeccion este es el codigo de la ventana: me sale un warning el declarar:
Código: public CamaraWeb Ver = new CamaraWeb(); aqui esta todo el codigo de la ventana: Código:
y dejo tambien el proyecto en netbeans. lo pueden descargar de aca: http://www.4shared.com/get/293555022/a77f647f/camara_web_netbeans_proyect.html (http://www.4shared.com/get/293555022/a77f647f/camara_web_netbeans_proyect.html) gracias por la ayuda cyberserver. ahora si va a quedar bien chido mi proyecto de la biblioteca jaja ;D ;D ;D Título: Re: Manejar WebCam o camaraWeb desde JAVA Publicado por: cyberserver en 19 Mayo 2010, 22:18 pm Orale compa ya estas!! que bueno que te aya servidor :P saludos desde Atlacomulco ;-) ;-) ;-)
Título: Re: Manejar WebCam o camaraWeb desde JAVA Publicado por: gochiman en 9 Febrero 2011, 06:42 am Amigo esta muy bien tu clase... te cuento que yo estoy desarrollando un aplicacion y basicamente hago lo mismo que tu ..pero mi aplicacion difiere un tanto.. yo uso (o pretento usar) varias webcam o fuenets de capturas... el problema viene con JMF registry
Código: CamaraWeb(){ Manager.setHint( Manager.LIGHTWEIGHT_RENDERER, true ); try{ ml = new MediaLocator("vfw://0"); p = Manager.createRealizedPlayer(ml); video = p.getVisualComponent(); p.start(); if ( video != null ){ componente=video; } }catch(Exception e){ JOptionPane.showMessageDialog(null,"Error de Comunicacion con la WebCam " + e); } } pues bien... para manejar varios dispositvos no hago esa asigancion fija al MediaLocator.. sino uso el metodo getDeviceList(Format).... bien esto me funciona pasando como formtao el RGB, pero solo me devuelve una posicion al vector... es decir ; solo ve una camara; y desde el JMF registry al agregar dispositivos y ponerlo a detectar solo me detecta uno-... y claro lo llama vfw:.......:0 = vfw://0 yo necesitaria poder usar el vfw://1 //2 // 3 no se si me he explicado.... yo estoy convencido que el codigo no es el problema sino lo es el hecho que el registry solo me muestra cualquier webcam como un dispositivo vfw://0 en resumidas cuentas... como harias tu para manejar varias camaras? ¿han tenido ese problema antes? ¿como se puede solucionar? A: las camaras las reconoce y son compatibles ya que he probado la aplicacion corriendo una sola camara y lo hace a la perfecccion indistintamente de cual este conectada... Si me pueden ayudar lo agradeceria mill veces he visto cualqueir cantidad de foros y de verdad ya no se como solucionar esto... Título: Re: Manejar WebCam o camaraWeb desde JAVA Publicado por: Nakatsukasa Itero en 23 Marzo 2012, 21:12 pm he estado viendo su post y a mi jefe le gustó y descargo e implementó la captura de la fotografía con camaras web y java pero dice que en un futuro quiere implementar los sistemas que creamos de tal forma que el cliente no deba hacer pasos extras de instalacion, simplemente el del sistema, entonces se encontró que cada vez que debemos de instalar un sistema tenemos que fijarnos en el sistema operativo para tener los componentes/librerias necesarios, entonces surge la duda en que si hay alguna libreria ue sea multiplataforma :D que no tenga que instalarse, sino que ya vaya (o podamos) empaquetada con el proyecto y que incluso si eso se puede, por medio de un asistene que nosotros empezamos a implementar (como un instalador) solo descargue la aplicacion de la pagina de la empresa y el asistente mismo le instala la aplicacion ya "compilada".
dijo que encontro una libreria con un nombre que no recuerdo que tenia una "L" que segun el leyó la susodicha letra es por Linux, pero no ha encontrado nada parecido o su homónima para Ventanas alguien tiene alguna idea. por su ayuda en ambas o alguna de las preguntas se los agradezco Título: Re: Manejar WebCam o camaraWeb desde JAVA Publicado por: Proteus1989 en 24 Marzo 2012, 07:32 am Sabéis porque me puede dar este error cuando se lanza el hilo?
Código
Título: Re: Manejar WebCam o camaraWeb desde JAVA Publicado por: Iwan en 1 Mayo 2012, 18:28 pm Hola, tenía un código muy parecido al tuyo cyberserver pero me aparecía el error "java.io.IOException: Could not connect to capture device" así que he probado a copiar el tuyo literalmente, el caso es que en el momento de la llamada p = Manager.createRealizedPlayer(ml); sigo teniendo exactamente el mismo problema: me salta una ventana con titulo "Origen de video" y dentro una pestaña que dice "origen de la captura". En ella selecciono la única opción que es el nombre de mi webcam me da la excepción y entonces me salta nuevamente la ventana me vuelve a dar la excepcion y ya salta a la excepción propia del contructor. He consultado ya en mil sitios pero no encuentro solución... alguna sugerencia??
Un saludo y gracias de antemano Título: Re: Manejar WebCam o camaraWeb desde JAVA Publicado por: josco en 1 Mayo 2012, 18:47 pm Descarga el proyecto que esta para netbeans lo hice yo josco mas arriiva esta. ese deberia funcionar
Título: Re: Manejar WebCam o camaraWeb desde JAVA Publicado por: Iwan en 1 Mayo 2012, 20:09 pm 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: Código: private void VideoCamActionPerformed(java.awt.event.ActionEvent evt) { la parte del JFrame implicada: Código: public VentanaWebCam() { La clase que maneja la webCam: Código: public class VideoJMF { Saludos |