elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  JMF: No detecta la Cam
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: JMF: No detecta la Cam  (Leído 12,911 veces)
Amerikano|Cls


Desconectado Desconectado

Mensajes: 789


[Beyond This Life]


Ver Perfil WWW
JMF: No detecta la Cam
« en: 24 Marzo 2010, 17:31 pm »

Saludos a todos, esta vez tengo un pequeño problema a ver si me pueden ayudar  :xD

Resulta que quiero hacer algo con el JMF y lo que se me ocurrio pues es capturar una foto de la WebCam, buscando en google di con este ejemplo:

Código
  1. import javax.swing.*;
  2. import java.io.*;
  3. import javax.media.*;
  4. import javax.media.format.*;
  5. import javax.media.util.*;
  6. import javax.media.control.*;
  7. import java.awt.*;
  8. import java.awt.image.*;
  9. import java.awt.event.*;
  10. import com.sun.image.codec.jpeg.*;
  11.  
  12. public class SwingCapture extends Panel implements ActionListener
  13. {
  14.  public static Player player = null;
  15.  public CaptureDeviceInfo di = null;
  16.  public MediaLocator ml = null;
  17.  public JButton capture = null;
  18.  public Buffer buf = null;
  19.  public Image img = null;
  20.  public VideoFormat vf = null;
  21.  public BufferToImage btoi = null;
  22.  public ImagePanel imgpanel = null;
  23.  
  24.  public SwingCapture()
  25.  {
  26.    setLayout(new BorderLayout());
  27.    setSize(320,550);
  28.  
  29.    imgpanel = new ImagePanel();
  30.    capture = new JButton("Capture");
  31.    capture.addActionListener(this);
  32.  
  33.    String str1 = "vfw:Logitech USB Video Camera:0";
  34.    String str2 = "vfw:Microsoft WDM Image Capture (Win32):0";
  35.    di = CaptureDeviceManager.getDevice(str1);
  36.    ml = di.getLocator();
  37.  
  38.    try
  39.    {
  40.      player = Manager.createRealizedPlayer(ml);
  41.      player.start();
  42.      Component comp;
  43.  
  44.      if ((comp = player.getVisualComponent()) != null)
  45.      {
  46.        add(comp,BorderLayout.NORTH);
  47.      }
  48.      add(capture,BorderLayout.CENTER);
  49.      add(imgpanel,BorderLayout.SOUTH);
  50.    }
  51.    catch (Exception e)
  52.    {
  53.      e.printStackTrace();
  54.    }
  55.  }
  56.  
  57.  public static void main(String[] args)
  58.  {
  59.    Frame f = new Frame("SwingCapture");
  60.    SwingCapture cf = new SwingCapture();
  61.  
  62.    f.addWindowListener(new WindowAdapter() {
  63.      public void windowClosing(WindowEvent e) {
  64.      playerclose();
  65.      System.exit(0);}});
  66.  
  67.    f.add("Center",cf);
  68.    f.pack();
  69.    f.setSize(new Dimension(320,550));
  70.    f.setVisible(true);  
  71.  
  72.  }
  73.  
  74.  
  75.  public static void playerclose()
  76.  {
  77.    player.close();
  78.    player.deallocate();
  79.  }
  80.  
  81.  public void actionPerformed(ActionEvent e)
  82.  {
  83.    JComponent c = (JComponent) e.getSource();
  84.  
  85.    if (c == capture)
  86.    {
  87.      // Grab a frame
  88.      FrameGrabbingControl fgc = (FrameGrabbingControl)
  89.      player.getControl("javax.media.control.FrameGrabbingControl");
  90.      buf = fgc.grabFrame();
  91.  
  92.      // Convert it to an image
  93.      btoi = new BufferToImage((VideoFormat)buf.getFormat());
  94.      img = btoi.createImage(buf);
  95.  
  96.      // show the image
  97.      imgpanel.setImage(img);
  98.  
  99.      // save image
  100.      saveJPG(img,"c:\\test.jpg");
  101.    }
  102.  }
  103.  
  104.  class ImagePanel extends Panel
  105.  {
  106.    public Image myimg = null;
  107.  
  108.    public ImagePanel()
  109.    {
  110.      setLayout(null);
  111.      setSize(320,240);
  112.    }
  113.  
  114.    public void setImage(Image img)
  115.    {
  116.      this.myimg = img;
  117.      repaint();
  118.    }
  119.  
  120.    public void paint(Graphics g)
  121.    {
  122.      if (myimg != null)
  123.      {
  124.        g.drawImage(myimg, 0, 0, this);
  125.      }
  126.    }
  127.  }
  128.  
  129.  public static void saveJPG(Image img, String s)
  130.  {
  131.    BufferedImage bi = new BufferedImage(img.getWidth(null), img.getHeight(null), BufferedImage.TYPE_INT_RGB);
  132.    Graphics2D g2 = bi.createGraphics();
  133.    g2.drawImage(img, null, null);
  134.  
  135.    FileOutputStream out = null;
  136.    try
  137.    {
  138.      out = new FileOutputStream(s);
  139.    }
  140.    catch (java.io.FileNotFoundException io)
  141.    {
  142.      System.out.println("File Not Found");
  143.    }
  144.  
  145.    JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
  146.    JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(bi);
  147.    param.setQuality(0.5f,false);
  148.    encoder.setJPEGEncodeParam(param);
  149.  
  150.    try
  151.    {
  152.      encoder.encode(bi);
  153.      out.close();
  154.    }
  155.    catch (java.io.IOException io)
  156.    {
  157.      System.out.println("IOException");
  158.    }
  159.  }
  160.  
  161. }

Pero el problema es que al compilarlo y ejecutarlo me lanza una excepcion: NullPointerException, pues al parecer no detecto la cam y devolvio null, en la siguiente linea:

Código
  1. ml = di.getLocator();

El problema no es con la cam porque el programa que trae el JMF por defecto para hacer las pruebas si la detecta correctamente y me muestra imagen, pero en este ejmplo no. A ver si me ayudan con esto, de antemano gracias  ;D


En línea





Mi blog:
http://amerikanocls.blogspot.com
Amerikano|Cls


Desconectado Desconectado

Mensajes: 789


[Beyond This Life]


Ver Perfil WWW
Re: JMF: No detecta la Cam
« Respuesta #1 en: 24 Marzo 2010, 17:32 pm »

Tambien probe obteniendola con "vfw:Microsoft WDM Image Capture (Win32):0" y na de na  :-[


En línea





Mi blog:
http://amerikanocls.blogspot.com
Leyer


Desconectado Desconectado

Mensajes: 786


leyer@elhacker.net


Ver Perfil WWW
Re: JMF: No detecta la Cam
« Respuesta #2 en: 24 Marzo 2010, 19:20 pm »

Esto siempre da esos problemas a mi tambien me paso hace mucho y no lo pude resolver :xD supongo que tendras que buscar el nombre de tu dispositivo y colocarlo no se me ocurre otra, intenta con javax.media.cdm.CaptureDeviceManager.getDeviceList(); te ayudara mas pero no uso windows y esto en linux si que es un problema :xD

Un Saludo.
En línea

Amerikano|Cls


Desconectado Desconectado

Mensajes: 789


[Beyond This Life]


Ver Perfil WWW
Re: JMF: No detecta la Cam
« Respuesta #3 en: 24 Marzo 2010, 20:07 pm »

Tambien tengo un ejemplo que hace uso de lo que me cuentas pero no tampoco rula  :-[
En línea





Mi blog:
http://amerikanocls.blogspot.com
Debci
Wiki

Desconectado Desconectado

Mensajes: 2.021


Actualizate o muere!


Ver Perfil WWW
Re: JMF: No detecta la Cam
« Respuesta #4 en: 24 Marzo 2010, 21:31 pm »

Esto siempre da esos problemas a mi tambien me paso hace mucho y no lo pude resolver :xD supongo que tendras que buscar el nombre de tu dispositivo y colocarlo no se me ocurre otra, intenta con javax.media.cdm.CaptureDeviceManager.getDeviceList(); te ayudara mas pero no uso windows y esto en linux si que es un problema :xD

Un Saludo.
yo lo he hecho correr en linux xD

Saludos
En línea

Amerikano|Cls


Desconectado Desconectado

Mensajes: 789


[Beyond This Life]


Ver Perfil WWW
Re: JMF: No detecta la Cam
« Respuesta #5 en: 24 Marzo 2010, 22:44 pm »

Esto siempre da esos problemas a mi tambien me paso hace mucho y no lo pude resolver :xD supongo que tendras que buscar el nombre de tu dispositivo y colocarlo no se me ocurre otra, intenta con javax.media.cdm.CaptureDeviceManager.getDeviceList(); te ayudara mas pero no uso windows y esto en linux si que es un problema :xD

Un Saludo.
yo lo he hecho correr en linux xD

Saludos

El mismo ejemplo que puse?
En línea





Mi blog:
http://amerikanocls.blogspot.com
Debci
Wiki

Desconectado Desconectado

Mensajes: 2.021


Actualizate o muere!


Ver Perfil WWW
Re: JMF: No detecta la Cam
« Respuesta #6 en: 25 Marzo 2010, 18:32 pm »

Esto siempre da esos problemas a mi tambien me paso hace mucho y no lo pude resolver :xD supongo que tendras que buscar el nombre de tu dispositivo y colocarlo no se me ocurre otra, intenta con javax.media.cdm.CaptureDeviceManager.getDeviceList(); te ayudara mas pero no uso windows y esto en linux si que es un problema :xD

Un Saludo.
yo lo he hecho correr en linux xD

Saludos

El mismo ejemplo que puse?
No lo vi en sun

Salu2
En línea

Amerikano|Cls


Desconectado Desconectado

Mensajes: 789


[Beyond This Life]


Ver Perfil WWW
Re: JMF: No detecta la Cam
« Respuesta #7 en: 27 Marzo 2010, 04:30 am »

Postealo pls  ;)
En línea





Mi blog:
http://amerikanocls.blogspot.com
Debci
Wiki

Desconectado Desconectado

Mensajes: 2.021


Actualizate o muere!


Ver Perfil WWW
Re: JMF: No detecta la Cam
« Respuesta #8 en: 27 Marzo 2010, 10:28 am »

Postealo pls  ;)
Lo busco y os lo pongo.

Saludos
En línea

jezu00

Desconectado Desconectado

Mensajes: 53


Ver Perfil
Re: JMF: No detecta la Cam
« Respuesta #9 en: 25 Abril 2010, 15:00 pm »

Lo resolvisteis? porque yo lo he intentado instalar en ubuntu y solo me detecta el microfono , y esta claro que la webcam funciona.

Esto del jmf es una basura la verda. he mirado los .java y no los modifican desde 2001 o 2003 ya les vale como si no hubiese avanzao la cosa  


EDITADO :

He llegado a un proyecto alternativo a jmf , se llama fmj : http://fmj-sf.net/

Freedom for Media in Java es una alternativa a jmf de codigo abierto con , en teoria, las mismas funcionalidades que jmf captura de video ,transmisión multimedia..

lo intentare probar

EDITADO2:

Si en terminal poneis  gstreamer-properties

podeis ver la configuracion del micro ,cam etc hay me he dado cuenta de que tengo la camra como v4l2 que es una versión nueva de v4l y creo que jmf no es compatible con v4l2

Sigo probando cosas

EDITADO3:

La unica solución es :
http://code.google.com/p/v4l4j/

lo he compilado y en principio parece que funciona sus tests

EDITADO4:

al final lo he conseguido con v4l4j

/usr/lib/jvm/java-6-sun/jre/lib/i386 en ese directorio libv4l4j.so
/usr/lib/jvm/java-6-sun/jre/lib/ext en este v4l4j.jar junit-4.8.2.jar

leer el readme para instalarlo según ellos ponen pero al final he tenido que hacer eso a mano para hacerlo funcionar
« Última modificación: 25 Abril 2010, 23:04 pm por jezu00 » En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
BlackSheep – Detecta Usuarios Con FireShip En La Red
Hacking
juh 0 4,449 Último mensaje 30 Noviembre 2010, 03:20 am
por juh
No detecta la red
Redes
Darioxhcx 2 1,951 Último mensaje 17 Noviembre 2011, 00:43 am
por Darioxhcx
No detecta la GPU
Hardware
Mandrake&Mandriva 5 799 Último mensaje 5 Marzo 2024, 02:43 am
por Songoku
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines