Lo que es bueno setAudioEncodingBitRate en voz de grabación

Hola, quiero usar mediaRecorder para grabar voz. Quiero guardar el formato es amr.

this.mediaRecorder = new MediaRecorder(); this.mediaRecorder.setAudioChannels(1); this.mediaRecorder.setAudioSamplingRate(8000); this.mediaRecorder.setAudioEncodingBitRate(16); this.mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC); this.mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.RAW_AMR); this.mediaRecorder.setOutputFile(this.file.getAbsolutePath()); this.mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); 

I used this.mediaRecorder.setAudioEncodingBitRate (16), algún dispositivo está bien

MediaRecorder.setAudioEncodingBitRate (12500), somedevice está bien

Pero elimino el mediaRecorder.setAudioEncodingBitRate algunos dispositivos están bien

Por lo que mi pregunta cómo obtener el valor predeterminado de AudioEncodingBitRate. ¿Qué parámetro necesito usar?

Se establece el AudioEncodingBitRate demasiado bajo. Cometí el mismo error 🙂

Esto parece funcionar:

 MediaRecorder recorder = new MediaRecorder(); recorder.setAudioSource(MediaRecorder.AudioSource.MIC); if (Build.VERSION.SDK_INT >= 10) { recorder.setAudioSamplingRate(44100); recorder.setAudioEncodingBitRate(96000); recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4); recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC); } else { // older version of Android, use crappy sounding voice codec recorder.setAudioSamplingRate(8000); recorder.setAudioEncodingBitRate(12200); recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); } recorder.setOutputFile(file.getAbsolutePath()); try { recorder.prepare(); } catch (IOException e) { throw new RuntimeException(e); } 

La idea viene de aquí

Además: lea los documentos. Los documentos de setAudioSamplingRate dicen lo siguiente:

La velocidad de muestreo depende realmente del formato para la grabación de audio, así como de las capacidades de la plataforma. Por ejemplo, la tasa de muestreo soportada por los estándares de codificación de audio AAC oscila entre 8 y 96 kHz, la tasa de muestreo soportada por AMRNB es 8kHz, y la tasa de muestreo soportada por AMRWB es de 16kHz.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.