Dopo una ricerca dettagliata, io stesso e alcune università siamo giunti a questa conclusione. Le risposte a queste domande non erano ancora complete, perciò scrivo la mia risposta a questa domanda.
La funzione MediaRecorder.getMaxAmplitude() restituisce valori interi a 16 bit senza segno (0-32767). Questi valori sono probabilmente calcolati usando abs() su -32768 ... +32767, simile ai normali valori di esempio di qualità CD. Le ampiezze negative sono solo speculari e quindi l'ampiezza è sempre positiva.
I valori NON SONO CORRELATI a nessuna proprietà fisica calibrata concreta. I valori sono quindi solo digitalizzazione a 16 bit dell'uscita elettrica da 0-100% (intervallo di tensione massimo di quel microfono).
I microfoni convertono la pressione sonora (Pascal) linearmente in tensione. Pertanto, i valori riportati dall'API sono correlati alla pressione sonora, ma sono diversi su ciascun dispositivo utilizzato e dipendono fortemente dalla marca, dal modello e dal dispositivo specifico (circuiti, amplificatore, ecc.) Ciò significa che è estremamente difficile giudicare i valori senza calibrando il microfono del telefono su un affidabile misuratore di pressione sonora.
Immagino che sia arbitrario; Dubito che sia calibrato su qualsiasi unità particolare. –
Anche così, ma spero che non lo sia! Sto ancora cercando ma finora non ha avuto successo. Spero che questa domanda abbia un po 'più di attenzione. – Future2020