sábado, 29 de octubre de 2011

Continuación de la segunda revisión


Aqui continuando con el segundo avance mostraremos informacion de softwares no terminados que detectan movimiento con un webcam y lenguaje java encontramos 2 sitios se los dejaremos marcados con la respectiva descarga del codigo fuente aqui:



  • http://joelbecker.net/





  • Java – JMF – Detección de Movimiento (Motion Detect)





  • sábado, 22 de octubre de 2011

    Avance proyecto (Segunda revisión)


    Esta es el siguiente avance que tenemos referente a nuestro proyecto que es la reproducción un tipo de formato de audio los formatos que logramos reproducir son WAV OGG y aquí se muestra el código que utilizamos para la reproducción de un sonido WAV que es un platillo de batería todo código referente al audio es sacado es de este sitio código reproducción de audio y como al principio mostramos el main que llama la clase para la reproduccion de el audio "wav2.wav".


    Codigo que se utilizo para la reproducción del audio



    public class Main {

    /**
    * @param args the command line arguments
    */
    public static void main(String[] args) {
    // TODO code application logic here
    new AePlayWave("wav2.wav").start();
    }
    }

    Esta es la clase que llamad en el main para la reproduccion


    package soundex;

    import java.io.File;
    import java.io.IOException;
    import javax.sound.sampled.AudioFormat;
    import javax.sound.sampled.AudioInputStream;
    import javax.sound.sampled.AudioSystem;
    import javax.sound.sampled.DataLine;
    import javax.sound.sampled.FloatControl;
    import javax.sound.sampled.LineUnavailableException;
    import javax.sound.sampled.SourceDataLine;
    import javax.sound.sampled.UnsupportedAudioFileException;

    public class AePlayWave extends Thread {

    private String filename;

    private Position curPosition;

    private final int EXTERNAL_BUFFER_SIZE = 524288; // 128Kb

    enum Position {
    LEFT, RIGHT, NORMAL
    };

    public AePlayWave(String wavfile) {
    filename = wavfile;
    curPosition = Position.NORMAL;
    }

    public AePlayWave(String wavfile, Position p) {
    filename = wavfile;
    curPosition = p;
    }

    public void run() {

    File soundFile = new File(filename);
    if (!soundFile.exists()) {
    System.err.println("Wave file not found: " + filename);
    return;
    }

    AudioInputStream audioInputStream = null;
    try {
    audioInputStream = AudioSystem.getAudioInputStream(soundFile);
    } catch (UnsupportedAudioFileException e1) {
    e1.printStackTrace();
    return;
    } catch (IOException e1) {
    e1.printStackTrace();
    return;
    }

    AudioFormat format = audioInputStream.getFormat();
    SourceDataLine auline = null;
    DataLine.Info info = new DataLine.Info(SourceDataLine.class, format);

    try {
    auline = (SourceDataLine) AudioSystem.getLine(info);
    auline.open(format);
    } catch (LineUnavailableException e) {
    e.printStackTrace();
    return;
    } catch (Exception e) {
    e.printStackTrace();
    return;
    }

    if (auline.isControlSupported(FloatControl.Type.PAN)) {
    FloatControl pan = (FloatControl) auline
    .getControl(FloatControl.Type.PAN);
    if (curPosition == Position.RIGHT)
    pan.setValue(1.0f);
    else if (curPosition == Position.LEFT)
    pan.setValue(-1.0f);
    }

    auline.start();
    int nBytesRead = 0;
    byte[] abData = new byte[EXTERNAL_BUFFER_SIZE];

    try {
    while (nBytesRead != -1) {
    nBytesRead = audioInputStream.read(abData, 0, abData.length);
    if (nBytesRead >= 0)
    auline.write(abData, 0, nBytesRead);
    }
    } catch (IOException e) {
    e.printStackTrace();
    return;
    } finally {
    auline.drain();
    auline.close();
    }

    }
    }


    miércoles, 5 de octubre de 2011

    Avance del proyecto (Primera revision)


    Informacion sobre JMF

    Sobre JMF la informacion fue bastante escasa ya que manuales para el uso del framework no hay ademas de ser antiguo y tener pocas actualizaciones que lo hacen incompatible con algunos codecs en lo que es reproduccion de audio pero si hay foros en la que publican el uso que le dieron al framework orientado a la utilizacion de webcam y publican los codigos la pagina que fue abstante util fue jc-mouse(Captura de video con webcam) en la que utilizamos arios codigos para nuestro proyecto.


    Codigos que se utilizaron para conectar la webcam


    import java.util.logging.Level;
    import java.util.logging.Logger;
    import javax.media.*;
    import javax.media.cdm.CaptureDeviceManager;
    import java.io.*;
    import java.awt.*;
    import javax.swing.JOptionPane;
    /**
    * @web http://jc-mouse.blogspot.com/
    * @author Mouse
    */
    public class jmfVideo {
    //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
    CaptureDeviceInfo device = CaptureDeviceManager.getDevice(dispositivo);
    //se obtiene la fuente de datos de captura
    MediaLocator localizador = device.getLocator();
    //El localizador es del tipo "vfw://0" video para windows
    //se crea el PLAYER y se ejecuta
    player = Manager.createRealizedPlayer(localizador);
    player.start();
    } catch (IOException ex) {
    Logger.getLogger(jmfVideo.class.getName()).log(Level.SEVERE, null, ex);
    } catch (NoPlayerException ex) {
    Logger.getLogger(jmfVideo.class.getName()).log(Level.SEVERE, null, ex);
    } catch (CannotRealizeException ex) {
    Logger.getLogger(jmfVideo.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;
    }
    }

    }

    public class video extends javax.swing.JFrame {
    jmfVideo b = new jmfVideo();
    /** Creates new form video */
    public video() {
    initComponents();
    this.setTitle("WebCam - by Mouse");
    //formulario al centro de la pantalla
    this.setLocationRelativeTo(null);
    //se da un tamaño al jFrame
    this.setSize(320, 240);
    //se coloca un layout tipo CAJA
    getContentPane().setLayout(new javax.swing.BoxLayout(getContentPane(), javax.swing.BoxLayout.LINE_AXIS));
    //se añade el componente de video
    this.add( b.Componente());
    }

    Video de captura de video con jmf