/ / Aumentar a qualidade do som gravado no android [duplicado] - android, gravação de áudio

Aumentando a qualidade do som gravado no Android [duplicado] - android, gravação de áudio

Duplicar Possível:
Melhorar a qualidade da gravação de áudio no android?

Quero gravar áudio em um arquivo 3GP. Eu posso fazer isso sem nenhum problema e posso ouvir a voz. Mas a voz que ouço é muito lenta e não clara. Para aumentar a qualidade da voz, escrevi um programa, mas obtive java.lang.RuntimeException: start failed

public void onClick(View arg0)
{
root=Environment.getExternalStorageDirectory();
audiofile=new File(root,"sound.3gp");
if(!audiofile.exists())
{
Log.w(TAG, "File doesn"t exists");
try
{
audiofile.createNewFile();

} catch (IOException e)
{
Log.w(TAG, "Unable to create audio file",e);
}
}

recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
recorder.setOutputFile(audiofile.getAbsolutePath());

try
{
recorder.setAudioSamplingRate(10);
recorder.setAudioEncodingBitRate(20);
recorder.prepare();

} catch (IllegalStateException e)
{
Log.w(TAG, "This is IllegalStateException");
} catch (IOException e)
{
Log.w(TAG, "This is IoException");
}
recorder.start();
}

o que está errado no meu código? obrigado.

Respostas:

1 para resposta № 1

Conforme meu Resposta existente no Stackoverflow Forneci o código abaixo para melhorar sua qualidade de som.

recorder = new MediaRecorder();
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
recorder.setAudioEncoder(MediaRecorder.getAudioSourceMax());
recorder.setAudioEncodingBitRate(16);
recorder.setAudioSamplingRate(44100);
recorder.setOutputFile(path);
recorder.prepare();
recorder.start();

0 para resposta № 2

eu escrevi um programa, mas obter java.lang.RuntimeException: iniciar falhou

Você se certificou de, na primeira execução do seu aplicativo, que você ligou no onStop

recorder.stop();
recorder.reset();
recorder.release();

Tenho certeza que o gravador já está sendo usado quandovocê está tentando executar este programa. é por isso que você está recebendo esse erro. sempre certifique-se de chamar os métodos acima no onStop. O mesmo vale para a câmera também.