5

Actualmente estoy escribiendo una aplicación que solicita la grabación y el procesamiento en tiempo real de datos de audio. Para esto, estoy usando la clase AudioRecord. Esto funciona muy bien, excepto que la configuración predeterminada para grabar audio en mi dispositivo de prueba principal, un galaxy nexus, es grabar desde el altavoz trasero. Supongo que la mayoría de los teléfonos de la fuente de grabación predeterminada serán los micrófonos de fondo o de fondo, porque cuando usa el teléfono para llamar, su boca está cerca de la parte inferior.Cambiar la entrada de audio de Android Fuente de entrada predeterminada

Sin embargo, mi aplicación requiere que grabe desde el altavoz en la parte frontal del teléfono, por lo que esperaba que alguien me pudiera ayudar a cambiar la fuente de entrada de AudioRecord mediante programación. He buscado extensamente la respuesta a esto.

Algunas cosas que he consideradas son:

  • Uso de la clase AudioManager y encender el altavoz del teléfono, tales como:

    AudioManager am = (AudioManager)getSystemService(Context.AUDIO_SERVICE); 
    am.setSpeakerphoneOn(true);

  • Cambiar el parámetro AudioSource en la construcción de mi AudioRecord objeto:

    AudioRecord ar = new AudioRecord(AudioSource.????, ..., ..., ..., ...);

  • He descubierto que las API no son demasiado específicas sobre qué formatos de AudioSource son los que, por lo que me preguntaba si alguien más ha tenido problemas con este problema y podría apuntarme en la dirección correcta.

    Gracias de antemano,

    +0

    intente esto MediaRecorder.AudioSource.VOICE_CALL .. – Sandeep

    +0

    Aunque no estoy usando un Objeto MediaRecorder ... – lbrendanl

    Respuesta

    0

    Android no es compatible actualmente con la grabación de llamadas, por lo que cree que no puede cambiarlo a grabar desde el auricular. Sin embargo, en realidad no debería necesitar, el micrófono en la parte inferior del teléfono debería poder grabar cosas con la capacidad total que necesita. Para configurar el AudioRecord en el micrófono, solo haga lo siguiente:

    AudioRecord ar = new AudioRecord(AudioSource.MIC, ..., ..., ..., ...); 
    

    Esto le dará la mejor calidad de grabación.

    Cuestiones relacionadas