Ich baue eine Android-Anwendung, die die Aufnahme von Audio beginnen sollte, wenn der aufgenommene Sound über einem bestimmten Schwellenwert ist.Wie analysiert man den Wert von der MediaRecorder.getMaxAmplitude() in Android
Ich recherchierte und fand heraus, dass die Methode getMaxAmplitude() der MediaRecorder-Klasse eine Schätzung der Lautstärke des Rauschens als Maß für den Schalldruck gibt. Es gibt einen Wert zwischen 0 und +32767 zurück.
Hier ist der Code, den ich geschrieben habe.
MediaRecorder mediaRecorder = new MediaRecorder();
while(True){
if (mediaRecorder.getMaxAmplitude() > THRESHOLD)
System.out.println("Recording sound");
else
System.out.println("Sound recording not above the threshold level);
}
Ich habe Probleme den THRESHOLD-Wert herauszufinden, da es keine Standard-Einheit für den Wert der getMaxAmplitude() Funktion zurückgegeben wird. Es wäre vorzuziehen, wenn jemand eine Umwandlung von dem Wert vorschlagen könnte, der von der Funktion getMaxAmplitude() an Dezibel (dB) oder irgendeine andere nützliche Einheit zurückgegeben wird.
Auch ich versuche eine Antwort auf diese Frage zu finden. Wenn ich mir eins ausdenke, werde ich es als Antwort posten. – aditya