La mia applicazione sta misurando il volume dell'audio catturato in funzione dell'ampiezza assoluta dei campioni.Modifica della sensibilità del microfono Android dopo la telefonata
Ho notato e comportamento imprevisto in android.media.AudioRecord
di Android SDK. Supponiamo seguente flusso:
- applicazione viene avviata
- del volume audio viene misurata
- Telefonata risposta/composto
- del volume audio viene misurata
Il rumore intorno al microfono è prodotto dalla TV con impostazione del volume costante. I valori misurati per il punto 2 sono nel range [55-65] ei valori misurati per il punto 4 sono nel range [15-25] (si veda la visualizzazione audio per 2. e 4. sotto).
Capisco che ci deve essere una regolazione del volume in corso quando si verifica una telefonata. È possibile monitorare queste regolazioni o eliminarle?
Ho provato AutomaticGainControl ma non è supportato sul mio Nexus 5 e non voglio usarlo poiché i dispositivi di destinazione potrebbero non supportarlo.
regolazione Aggiornamento Questo volume sta accadendo non solo dopo telefonata. Ho appena notato lo stesso comportamento quando il telefono si trovava sul tavolo per misurare il volume.
Hai assolutamente ragione di fare attenzione con risorse condivise come il microfono. Cosa intendi esattamente in 1.? Calcolo il volume per ciascun campione registrato, non è un'impostazione dell'interfaccia utente. L'altra preoccupazione che ho è che il guadagno non conserverà la qualità del suono. –
Per 1 - salva tutte le impostazioni del microfono necessarie per ogni registrazione e ripristinala quando l'app torna in primo piano. – FunkSoulBrother
Grazie per le tue idee @FunkSoulBrother.Questi sono suggerimenti validi ma il problema principale per me è evidenziato in una parte ** Aggiornamento **. Il cambiamento di sensibilità mi è venuto in mente senza un evento di chiamata telefonica: l'app era in primo piano e il telefono non aveva nemmeno la scheda SIM. Devo fornire un suono di qualità costante durante la registrazione. –