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.