5

Attualmente sto scrivendo un'app che richiede la registrazione e l'elaborazione in tempo reale dei dati audio. Per questo, sto usando la classe AudioRecord. Funziona tutto bene, eccetto che l'impostazione predefinita per registrare l'audio sul mio dispositivo di test primario, un nesso di galassia, è quello di registrare dall'altoparlante posteriore. Suppongo che la maggior parte delle fonti di registrazione predefinite dei telefoni sia il retro o i microfoni in basso, perché quando si utilizza il telefono per chiamare, la bocca è vicina al fondo.Modifica record audio Android Ingresso predefinito Sorgente

Tuttavia, la mia app richiede che io registri dall'altoparlante sulla parte anteriore del telefono, quindi speravo che qualcuno potesse aiutarmi a cambiare la sorgente di ingresso di AudioRecord a livello di programmazione. Ho cercato ampiamente la risposta a questo.

Alcune cose che ho considerati sono:

  • Utilizzo della classe AudioManager e accendere il microfono, come ad esempio:

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

  • Cambiare il parametro AudioSource nella costruzione della mia AudioRecord oggetto:

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

  • Ho trovato che le API non sono troppo specifiche su quali formati AudioSource sono, quindi mi chiedevo se qualcun altro ha faticato con questo problema e potrebbe indicarmi la giusta direzione.

    Grazie in anticipo,

    +0

    provare questo MediaRecorder.AudioSource.VOICE_CALL .. – Sandeep

    +0

    Non sto utilizzando un oggetto MediaRecorder però .... – lbrendanl

    risposta

    0

    Android attualmente non supporta la registrazione di chiamata, quindi credo che non si può cambiare per registrare dal ricevitore. Tuttavia, non è necessario che il microfono nella parte inferiore del telefono sia in grado di registrare le cose alla piena capacità di cui hai bisogno. Per impostare l'AudioRecord al microfono, basta fare:

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

    Questo vi darà la migliore qualità di registrazione.

    Problemi correlati