Pregunta

¿Hay alguna forma de grabar audio en alta calidad?

¿Y cómo puedo leer la información de que el usuario dice algo? En la aplicación de grabación de audio puede ver dicho indicador (no sé el nombre correcto para él).

¿Fue útil?

Solución

Para grabación y monitoreo: puede usar la actividad de la grabadora de sonido. Aquí hay un fragmento de código:

Intent recordIntent = new Intent(
                MediaStore.Audio.Media.RECORD_SOUND_ACTION);
            startActivityForResult(recordIntent, REQUEST_CODE_RECORD);

Para un ejemplo perfecto de cómo grabar audio que incluye un monitor de entrada, descargue el proyecto Ringdroid de código abierto: https://github.com/google/ringdroid

Mira las capturas de pantalla y verás el monitor.

Para hacer que el audio sea de mayor calidad, necesitarías un micrófono mejor. El micrófono incorporado solo puede capturar tanto (que no es tan bueno). Nuevamente, mire el proyecto ringdroid, obtenga información de allí. En ese punto, podría implementar algunas rutinas de normalización y amplificación para mejorar el sonido.

Otros consejos

Por el momento, una de las principales razones de la mala calidad de grabación de audio en Android es el códec utilizado por la clase MediaRecorder (el códec AMR-NB). Sin embargo, puede obtener acceso a audio sin comprimir a través de la clase AudioRecord y grabarlo directamente en un archivo.

La la aplicación Asistente de ensayo hace esto para guardar audio sin comprimir en un archivo WAV: eche un vistazo a RehearsalAudio > código fuente de la clase.

La clase RehearsalAudioRecord también proporciona un método getMaxAmplitude, que puede usar para detectar el nivel de audio máximo desde la última vez que llamó al método (MediaRecorder también proporciona este método).

scroll top