Foros del Web » Programación para mayores de 30 ;) » Java »

Agregar vumetro y control de volumen a este applet

Estas en el tema de Agregar vumetro y control de volumen a este applet en el foro de Java en Foros del Web. Hola, tengo una consulta algo "atrevida", trabajo generalmente en php y mysql pero de tanto andar en los foros surgen ideas y con ellas ando ...
  #1 (permalink)  
Antiguo 22/03/2010, 15:56
 
Fecha de Ingreso: diciembre-2001
Ubicación: Mar del Plata
Mensajes: 203
Antigüedad: 22 años, 11 meses
Puntos: 0
Agregar vumetro y control de volumen a este applet

Hola, tengo una consulta algo "atrevida", trabajo generalmente en php y mysql pero de tanto andar en los foros surgen ideas y con ellas ando tratando de ponerlas en práctica, buscado logré dar con lo que mas o menos buscaba, crear un applet que pueda grabar el microfono del usuario en un browser y este pueda mandar el archivo del mismo (en este un .wav) al servidor esto "medianamente" lo logro, pero quiero mejorar dicho applet agregandole un control de volumen y un vumetro para que pueda ver si esta correcto el nivel de grabacion del microfono. Espero se entienda lo que quiero, lo que tengo es un applet con un boton grabar y parar que toma el audio del microfono del usuario y genera un archvo wav en la computadora del mismo usuario luego este adjuntaria ese archivo para enviarlo al server, pero me falta resolver lo del control de volumen y el vumetro!!!
Alguién puede darme un empujoncito, un tutorial una ayuda!!! Les aclaro que java no es lo mio, pero le pongo ganas!!!

Aqui les dejo el fuente de lo que tengo realizado.
Desde ya muchas gracias
Código PHP:
package CapturarMic;

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.sound.sampled.*;

public class 
CapturarMic extends JApplet{

  
AudioFormat audioFormat;
  
TargetDataLine targetDataLine;

  final 
JButton captureBtn = new JButton("Capturar");
  final 
JButton stopBtn = new JButton("Parar");

  final 
JPanel btnPanel = new JPanel();
  final 
ButtonGroup btnGroup = new ButtonGroup();
  final 
JRadioButton aiffBtn = new JRadioButton("AIFF");
  final 
JRadioButton waveBtn = new JRadioButton("WAV",true);

  public 
void initString args[]){
    new 
CapturarMic();

  }

  public 
CapturarMic(){
    
captureBtn.setEnabled(true);
    
stopBtn.setEnabled(false);

    
captureBtn.addActionListener(
      new 
ActionListener(){
        public 
void actionPerformed(
                                  
ActionEvent e){
          
captureBtn.setEnabled(false);
          
stopBtn.setEnabled(true);

          
captureAudio();
        }
      }
    );

    
stopBtn.addActionListener(
      new 
ActionListener(){
        public 
void actionPerformed(
                                  
ActionEvent e){
          
captureBtn.setEnabled(true);
          
stopBtn.setEnabled(false);

          
targetDataLine.stop();
          
targetDataLine.close();
        }
      }
    );

    
getContentPane().add(captureBtn);
    
getContentPane().add(stopBtn);

    
btnGroup.add(aiffBtn);
    
btnGroup.add(waveBtn);

    
btnPanel.add(aiffBtn);
    
btnPanel.add(waveBtn);

    
getContentPane().add(btnPanel);

    
getContentPane().setLayout(new FlowLayout());
    
setSize(300,220);
    
setVisible(true);
  }

  private 
void captureAudio(){
    try{
      
audioFormat getAudioFormat();
      
DataLine.Info dataLineInfo =
                          new 
DataLine.Info(
                            
TargetDataLine.class,
                            
audioFormat);
      
targetDataLine = (TargetDataLine)
               
AudioSystem.getLine(dataLineInfo);

      new 
CaptureThread().start();
    }catch (
Exception e) {
      
e.printStackTrace();
      
System.exit(0);
    }
  }

  private 
AudioFormat getAudioFormat(){
    
float sampleRate 44100.0F;
    
int sampleSizeInBits 16;
    
int channels 1;
    
boolean signed true;
    
boolean bigEndian false;
    return new 
AudioFormat(sampleRate,
                           
sampleSizeInBits,
                           
channels,
                           
signed,
                           
bigEndian);
  }

class 
CaptureThread extends Thread{
  public 
void run(){
    
AudioFileFormat.Type fileType null;
    
File audioFile null;

    if(
aiffBtn.isSelected()){
      
fileType AudioFileFormat.Type.AIFF;
      
audioFile = new File("prueba.aif");
    }else if(
waveBtn.isSelected()){
      
fileType AudioFileFormat.Type.WAVE;
      
audioFile = new File("c:/test1/testfermdp.wav");
    }

    try{
      
targetDataLine.open(audioFormat);
      
targetDataLine.start();
      
AudioSystem.write(
            new 
AudioInputStream(targetDataLine),
            
fileType,
            
audioFile);
    }catch (
Exception e){
      
e.printStackTrace();
    }
  }
}

__________________
:) Fernando Dichiera (:
[email protected]
  #2 (permalink)  
Antiguo 23/03/2010, 14:46
 
Fecha de Ingreso: diciembre-2001
Ubicación: Mar del Plata
Mensajes: 203
Antigüedad: 22 años, 11 meses
Puntos: 0
Respuesta: Agregar vumetro y control de volumen a este applet

Alguna ayuda? Algún tutorial? no logro dar con algo que me ayude!

Desde ya gracias!!!
__________________
:) Fernando Dichiera (:
[email protected]
  #3 (permalink)  
Antiguo 01/04/2010, 16:28
 
Fecha de Ingreso: diciembre-2001
Ubicación: Mar del Plata
Mensajes: 203
Antigüedad: 22 años, 11 meses
Puntos: 0
Respuesta: Agregar vumetro y control de volumen a este applet

Sigo preguntando e investigando! Pero es un tema complicado parece, alguien tendra algo de info al respecto y experiencia trabajando con sonido?

Desde ya muchas gracias!
__________________
:) Fernando Dichiera (:
[email protected]

Etiquetas: applet, control, volumen
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:37.