Our Country Sites: Argentina|Brazil|Chile|Mexico|Peru

Grabación de Audio

Versão para impressãoVersão para impressãoSend by emailSend by email

Buenos días a todos, por si alguien deseara grabar audio en su aplicación J2ME y luego tratarlo en un arreglo de bytes, este pedazo de código les podría ayudar:

private ByteArrayOutputStream output = null;
private RecordControl recordControl = null;
private Player player = null;

public void graba() {
 try {
  detienePlayer();
  player = Manager.createPlayer("capture://audio?encoding=amr");
  player.realize();
  recordControl = (RecordControl)player.getControl("RecordControl");
  output = new ByteArrayOutputStream();
  recordControl.setRecordStream(output);
  player.start();            
  recordControl.startRecord();
  }
  catch (IOException e) {
  }
  catch (MediaException e) {
  }
}

public void detienePlayer() {
  if (recordControl != null) {
   try {
    recordControl.stopRecord();
    recordControl.commit();
   }
   catch (IOException ex) {
   }
  }
  if(player != null){
    try {
     player.stop();
     player.close();
    }
    catch (MediaException ex) {
    }
   }
  player = null;
  recordControl = null;
}

public ByteArrayOutputStream getOutput() {
  return output;
}

Obviamente lo mostrado es el "corazón", ya habría que usar threads, flags y demás para controlar tiempos de grabación, se podría dar nombres y grabar en memoria, etc, etc.

Espero les sirva en algo,
Slds!

Juan Carlos

Juan Carlos como sugerencia

Juan Carlos como sugerencia te diria que crees un ejemplo simple pero completo y lo subas al Blog del Desarrollador, con los datos de las librerias que usaste. Eso seria de mucha utilidad.

Es necesario contar con algun

Es necesario contar con algun permiso adicional para poder usarlo? No necesita firma, no?

Si necesita darle el permiso

Si necesita darle el permiso javax.microedition.media.control.RecordControl para que funcione debidamente.

Slds!
Juan Carlos