Was gibt mir die Funktion getMaxAmplitude () von Android für den MediaRecorder eigentlich?

Android-MediaRecorder hat eine Funktion

.getMaxAmplitude ();

die, wie die API sagt mir, "Gibt die maximale absolute amplitude, die abgetastet wurde seit dem letzten Aufruf dieser Methode." aber ich kann nicht finden, was die amplitude dieser ist? Ist es in pascal oder Watt?

Gefunden habe ich mehrere Seiten auf dem web, können Sie einen Wert berechnen eng corelated Dezibel zu verwenden (wie vorgeschlagen hier).

double db = (20 * Math.log10(amplitude / REFERENCE)); 

denen würde lassen Sie mich davon ausgehen, dass der zurückgegebene Wert ist in einigen linearen Skala (wahrscheinlich so etwas wie milipascal...)

REFERENCE=0.1 (ich bin mir bewusst, dass dies so etwas wie 2*10^(-5) - Pascal - ((20 uPascal)), aber das gibt seltsame Werte... 0.1 komischerweise funktioniert besser).

Ich jetzt Messen Sie die MaxAmplitude() mit dem

getMaxAmplitude()

und setzen Sie diese in die variable amplitude.

Dies ist die Methode:

public double getNoiseLevel() 
{
    //Log.d("SPLService", "getNoiseLevel() ");
    int x = mRecorder.getMaxAmplitude();
    double x2 = x;
    Log.d("SPLService", "x="+x);
    double db = (20 * Math.log10(x2 / REFERENCE));
    //Log.d("SPLService", "db="+db);
    if(db>0)
    {
        return db;
    }
    else
    {
        return 0;
    }
}

Dies geschieht 5 mal in einer halben Sekunde, das wird ziemlich durchschnittlich

for(int i=0; i<5; i++)
{
    try 
    {
            Thread.sleep(100);
    } 
    catch (InterruptedException e) 
    {
            e.printStackTrace();
            return 0;
    }
    level = level+getNoiseLevel();
    if(level>0)
    {
        counter++;
    }
}
level=level/counter;
Log.d(LOG_TAG, "level="+level);

Bekomme ich etwas, das ein bisschen aussieht wie Dezibel, aber ich bin nicht sicher, ob seine wirklich Dezibel an alle...

So, könnte mir jemand helfen? Es scheint sehr seltsam, dass die API nicht specefy überhaupt was zurückgegeben...

InformationsquelleAutor der Frage Lukas Ruge | 2012-05-18

Schreibe einen Kommentar