Audioaufwärmphase

Die Audioaufwärmphase ist die Zeit, die der Audioverstärker in Ihrem Gerät benötigt, um voll aufgeladen sein und sich in den normalen Betriebszustand versetzen. Die wichtigsten Beiträge zur Audioaufwärmzeit sind die Energieverwaltung Logik zur Stabilisierung den Stromkreislauf durch.

In diesem Dokument wird beschrieben, wie Sie die Aufwärmzeit von Audio messen und mögliche Möglichkeiten zum Reduzieren der Aufwärmzeit.

Aufwärmphase der Ausgabe messen

Der FastMixer-Thread von AudioFlinger misst automatisch die Aufwärmphase der Ausgabe. und als Teil der Ausgabe des Befehls dumpsys media.audio_flinger ausgegeben. Beim Aufwärmen ruft FastMixer write() auf wiederholt, bis der Zeitraum zwischen zwei write()s der erwartete Wert ist. FastMixer ermittelt, wie lange eine Hardware-Abstraktion dauert, Layer (HAL) write() zur Stabilisierung benötigt.

Wenn Sie die Audioaufwärmung messen möchten, folgen Sie dieser Anleitung für den integrierten Lautsprecher und die kabelgebundenen Kopfhörer und zu unterschiedlichen Zeiten nach dem Start. Die Aufwärmzeiten sind in der Regel je nach Ausgabegerät unterschiedlich. und direkt nach dem Starten des Geräts:

  1. Stellen Sie sicher, dass FastMixer aktiviert ist.
  2. Aktivieren Sie die Töne beim Tippen, indem Sie Einstellungen > Ton > Töne bei Berührung auf dem Gerät.
  3. Der Ton muss mindestens drei Sekunden lang ausgeschaltet sein. Fünf Sekunden oder mehr sind besser, kann die Hardware selbst über eine eigene Leistungslogik verfügen, die über die drei Sekunden von AudioFlinger hinausgeht.
  4. Drücken Sie die Startbildschirmtaste. Sie sollten einen Klickton hören.
  5. Führen Sie den folgenden Befehl aus, um das gemessene Warmup zu empfangen:
    adb shell dumpsys media.audio_flinger | grep measuredWarmup
    

    Die Ausgabe sollte in etwa so aussehen:

    sampleRate=44100 frameCount=256 measuredWarmup=X ms, warmupCycles=X
    

    measuredWarmup=X entspricht einer Anzahl von X Millisekunden es dauerte, bis der erste Satz von HAL-write()s abgeschlossen war.

    warmupCycles=X gibt an, wie viele HAL-Schreibanfragen benötigt wurden. bis die Ausführungszeit von write() den Erwartungen entspricht.

  6. Nimm fünf Messungen vor und notiere sie alle sowie den Mittelwert. Wenn sie nicht alle annähernd gleich sind, ist es wahrscheinlich, dass eine Messung falsch ist. Wenn Sie beispielsweise nicht lange genug warten, erhalten Sie eine niedrigere Aufwärmzeit als der Mittelwert.

Eingabe-Aufwärmphase messen

Derzeit sind keine Tools für die Messung der Aufwärmphase der Audioeingabe verfügbar. Die Eingabeaufwärmzeit kann jedoch geschätzt werden, indem die für startRecording() erforderliche Zeit zurück.

Aufwärmzeit verkürzen

Die Aufwärmzeit kann in der Regel durch eine Kombination aus Folgendem verkürzt werden:

  • Gutes Schaltkreisdesign
  • Exakte Zeitverzögerungen im Kernel-Gerätetreiber
  • Unabhängige Aufwärmvorgänge gleichzeitig statt sequenziell ausführen
  • Schaltkreise eingeschaltet lassen oder Uhren nicht neu konfigurieren (erhöht den Stromverbrauch bei Inaktivität)
  • Berechnete Parameter im Cache speichern

Seien Sie jedoch vorsichtig, wenn Sie zu viele Optimierungen vornehmen. Möglicherweise stellen Sie fest, zwischen kurzer Aufwärmzeit und dass bei Machtübergängen keine Probleme auftreten.