Audioaufwärmphase

Die Audio-Aufwärmzeit ist die Zeit, die vergeht, bis die Audioverstärkerschaltung Ihres Geräts vollständig eingeschaltet ist und den normalen Betriebsstatus erreicht. Die wichtigsten Beiträge bis zur Audio-Aufwä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.

Ausgabevorwärmung 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. Während der Aufwärmphase ruft FastMixer write() wiederholt auf, bis die Zeit zwischen zwei write()s der erwarteten entspricht. 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 für jedes Ausgabegerät unterschiedlich und direkt nach dem Starten des Geräts:

  1. Prüfen Sie, ob FastMixer aktiviert ist.
  2. Aktivieren Sie Töne bei Berührung, indem Sie Einstellungen > Ton > Töne bei Berührung auf dem Gerät.
  3. Das Audio muss mindestens drei Sekunden lang stummgeschaltet 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.