Estou criando um aplicativo que reproduz arquivo gravado no Android para iphone e vice-versa.
agora estou usando
audioRecorder = new MediaRecorder();
audioRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
audioRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
audioRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
arquivo gravado usando este código com tamanho 85 kb / 15 seg e uma qualidade muito pobre.
se eu uso
audioRecorder = new MediaRecorder();
audioRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
audioRecorder.setOutputFormat(MediaRecorder.OutputFormat.AMR_NB);
audioRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
então o tamanho do arquivo é 25kb / 15 seg e qualidade muito melhor que aac. mas o problema é que AMR não é jogável no iPhone.
Então, por favor, sugira o esquema de gravação para o Android ter melhor qualidade, tamanho acessível e pode jogar no iPhone também.
Respostas:
14 para resposta № 1Aumente o recorder.setAudioEncodingBitRate (valor) se quiser alterar a qualidade.
recorder = new MediaRecorder();
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
recorder.setAudioEncoder(MediaRecorder.getAudioSourceMax());
recorder.setAudioEncodingBitRate(16);
recorder.setAudioSamplingRate(44100);
recorder.setOutputFile(path);
recorder.prepare();
recorder.start();
EDITAR:
Outra opção é adicionar um conversor ao seu aplicativo. Converta AMR para AAC.
2 para resposta № 2
este link é muito útil confira: formatos de mídia compatíveis com o Android
Esta seção nos dará mais informações sobre os formatos audio e viedo