2009-09-17 25 views

Respuesta

18

Para grabar y monitorear: Puede usar la actividad del grabador de sonido. He aquí un fragmento de código:

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

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

mirada a las capturas de pantalla y se le mira el monitor

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

+0

¿cuál es el REQUEST_CODE_RECORD? –

+0

Constante local que utilizo para determinar qué resultado obtengo de la solicitud en onActivityResult(). –

30

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

El Rehearsal Assistant app hace esto para guardar el audio sin comprimir en un archivo WAV; eche un vistazo al código fuente de la clase RehearsalAudioRecord.

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).

+0

hola, Stjepan Rajko, en la aplicación Asistente de ensayo, no puedo encontrar el, org.urbanstew.VolumeEnvelopeView, ¿podría decirme dónde está? – pengwang

+0

Otros códecs también están disponibles en Android. Http://developer.android.com/reference/android/media/MediaRecorder.AudioEncoder.html#DEFAULT –

Cuestiones relacionadas