Ab dem 27. März 2025 empfehlen wir, android-latest-release
anstelle von aosp-main
zu verwenden, um AOSP zu erstellen und Beiträge dazu zu leisten. Weitere Informationen finden Sie unter Änderungen am AOSP.
Audio in hoher Auflösung
Mit Sammlungen den Überblick behalten
Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
Die Android 10-Version enthält die folgenden Verbesserungen für hochauflösendes Audio:
- Float:WAV-, FLAC-Codecs und ‑Extractor werden aktualisiert, um Float (über 24 Bit verlustfreie Genauigkeit) zu unterstützen. Downmix- und Virtualizer-Effekte werden auf „Float“ aktualisiert.
Die aktualisierte Genauigkeit wird von MediaPlayer (NuPlayer) unterstützt.
- Hohe Frequenz:WAV-, FLAC-Codecs und ‑Extractor wurden aktualisiert, um 192 kHz zu unterstützen.
Die standardmäßigen von Android bereitgestellten Effekte werden auf Unterstützung von 192 kHz bei Standardfrequenzen getestet.
Zulässig sind die Standardfrequenzen 88,2 kHz, 96 kHz, 176,4 kHz und 192 kHz.
- Mehrere Kanäle:Die standardmäßigen Wiedergabeeffekte von Android werden auf Unterstützung für bis zu acht Kanäle getestet.
- Timing:Timinginformationen sind im gesamten Audio-Framework enthalten.
Ab Android 9 sind für die folgenden Verbesserungen keine Implementierungen durch Partner erforderlich:
- Die Anzahl der gleichzeitigen Client-Ausgabetracks steigt von 14 auf 40, da begrenzte Clientinstanzen von
AudioTrack
ein Problem für Apps unter Android 8.x waren.
- Der maximale Client-/Serverspeicher wird von 4 MB auf 32 MB erhöht (je nach Gesamtspeicher des Geräts), um mehr gleichzeitige Audiotracks in hoher Auflösung zu ermöglichen.
- Die Gesamtzahl der gemischten Tracks wurde von 32 auf 256 erhöht, um Ressourcenkonflikte zwischen Apps und der System-UI zu vermeiden.
Änderungen am Ausgabeeffekt
Informationen zu Änderungen im Android 11-Release finden Sie unter Audioeffekte.
Vor der Veröffentlichung von Android 9 wurde die Verarbeitung von Effektketten im Stereo-int16-Stichprobenformat implementiert. Das hatte mehrere Einschränkungen:
- Bei allen Ausgabeeffekten wurde eine erzwungene Umwandlung von Audiodaten im Gleitkommaformat in int16 durchgeführt, was zu einer geringeren Genauigkeit führte.
- Ausgabeeffekte wurden von Ausgabe-Sinks mit mehr als zwei Kanälen abgelehnt.
In der Android 9-Version wurde die Pipeline zur Verarbeitung von Effektketten aktualisiert, um das mehrkanalige Float-Format zu unterstützen. Wichtige Punkte:
- Android-Softwareeffekte wurden bereits zu Stereo-Float migriert.
- Ältere Effekte werden mit Formatadaptern unterstützt, die nach Bedarf Float in int16 umwandeln.
Ausgabeeffekte implementieren
Eine Referenzimplementierung für Ausgabeeffekte findest du unter frameworks/av/media/libeffects
.
Partner, die eigene benutzerdefinierte Ausgabeeffekte implementieren, müssen für die Android 10-Version Folgendes tun:
- Aktualisiere die Ausgabeeffekte, um das mehrkanalige Float-Format zu unterstützen:
- Die Unterstützung der Verarbeitung von Int16 ist nicht mehr erforderlich.
- Unterstützt werden Ausgabekanalzahlen von 2–8 (für zukünftige Kompatibilität sollten Zahlen von 1–30 verwendet werden).
- Unterstützung der Anzahl der Eingabekanäle, die mit der Anzahl der Ausgabekanäle für Einfügeeffekte übereinstimmt. Für Hilfseffekte wird weiterhin eine Eingangskanalanzahl von 1 (Mono) verwendet.
- Es werden sowohl Kanalpositionsmasken (kanonisch) als auch Kanalindexmasken von
(1 << n) - 1
unterstützt.
- Wenn Sie weiterhin alte Anbieter-Ausgabeeffekte unterstützen müssen und sie nicht aktualisieren können, bestätigen Sie den alten Code so:
- Bei älteren Ausgabeeffekten (Einfügen) müssen nicht unterstützte Konfigurationen in
EFFECT_CMD_SET_CONFIG
abgelehnt werden.
- Prüfen Sie, ob das Format „int16“ ist.
- Prüfen Sie, ob die Eingabe- und Ausgabekanalmasken Stereo sind.
- Wenn eine der Prüfungen fehlschlägt, gib
-EINVAL
zurück.
- Legacy-Ausgabeeffekte (Hilfseffekte) werden von AudioFlinger mit einer Mono-Eingabekanalmaske und möglicherweise mit Mehrkanal-Ausgabekanalmasken konfiguriert, je nachdem, ob der Ausgabe-Sink mehrkanalig ist.
Nicht unterstützte Konfigurationen in
EFFECT_CMD_SET_CONFIG
müssen abgelehnt werden.
- Prüfen Sie, ob das Format „int16“ ist.
- Prüfen Sie, ob die Eingangskanalmaske Mono und die Ausgangskanalmaske Stereo ist.
- Wenn eine der Prüfungen fehlschlägt, gib
-EINVAL
zurück.
- Prüfen Sie den alten Code. Gehen Sie nicht davon aus, dass es funktioniert.
Alle Inhalte und Codebeispiele auf dieser Seite unterliegen den Lizenzen wie im Abschnitt Inhaltslizenz beschrieben. Java und OpenJDK sind Marken oder eingetragene Marken von Oracle und/oder seinen Tochtergesellschaften.
Zuletzt aktualisiert: 2025-07-27 (UTC).
[[["Leicht verständlich","easyToUnderstand","thumb-up"],["Mein Problem wurde gelöst","solvedMyProblem","thumb-up"],["Sonstiges","otherUp","thumb-up"]],[["Benötigte Informationen nicht gefunden","missingTheInformationINeed","thumb-down"],["Zu umständlich/zu viele Schritte","tooComplicatedTooManySteps","thumb-down"],["Nicht mehr aktuell","outOfDate","thumb-down"],["Problem mit der Übersetzung","translationIssue","thumb-down"],["Problem mit Beispielen/Code","samplesCodeIssue","thumb-down"],["Sonstiges","otherDown","thumb-down"]],["Zuletzt aktualisiert: 2025-07-27 (UTC)."],[],[],null,["# High-resolution audio\n\nThe Android 10 release includes the following\nimprovements for high-resolution audio:\n\n- **Float:** WAV, FLAC codecs, and extractors are updated to support float (24+ bits of lossless precision). Downmix and Virtualizer effects are updated to float. Updated precision is allowed by MediaPlayer (NuPlayer).\n- **High-frequency:** WAV, FLAC codecs, and extractors are updated to support 192 kHz. The default Android supplied effects are tested for 192 kHz support at standard frequencies. The standard frequencies permitted are 88.2 kHz, 96 kHz, 176.4 kHz, and 192 kHz.\n- **Multichannel:** Default Android playback effects are tested for multichannel support to eight channels.\n- **Timing:** Timing information is included throughout the audio framework.\n\nStarting in Android 9, the following improvements\ndon't require any partner implementation:\n\n- The number of simultaneous client output tracks increases from 14 to 40, as limited client instances of `AudioTrack` have been an issue for apps in Android 8.x.\n- Maximum client/server memory increases from 4 MB to 32 MB (depending on total device memory) to allow more simultaneous high-resolution audio tracks.\n- Total mixed tracks increases from 32 to 256 to prevent resource contention between apps and the System UI.\n\nOutput effect changes\n---------------------\n\nSee [Audio\neffects](/docs/core/audio/audio-effects) for Android 11 release changes.\n\nPrior to the Android 9 release, effect chain processing\nwas implemented in stereo int16 sample format. This had several limitations:\n\n- All output effects forced conversion from floating point audio data to int16, causing loss of precision.\n- Output effects were rejected from output sinks with a channel count greater than two.\n\nIn the Android 9 release, the effect chain processing\npipeline is upgraded to support the multichannel float format. Key points:\n\n- Android software effects are already migrated to stereo float.\n- Legacy effects are supported with format adapters, which convert float to int16 as needed.\n\nImplement output effects\n------------------------\n\nA reference implementation for output effects is available under\n`frameworks/av/media/libeffects`.\n\nPartners implementing their own custom output effects should do the\nfollowing for the Android 10 release:\n\n- Update output effects to support the multichannel float format:\n - Int16 processing support is no longer required.\n - Support output channel counts from 2--8 (for future compatibility consider counts from 1--30).\n - Support input channel counts matching output channel counts for insert effects. Auxiliary effects continue to see an input channel count of 1 (mono).\n - Support both channel position masks (canonical) and channel index masks of `(1 \u003c\u003c n) - 1`.\n- If you must continue to support legacy vendor output effects and can't update them, then verify legacy code as follows:\n - Legacy output (insert) effects **must reject** unsupported configurations in `EFFECT_CMD_SET_CONFIG`.\n - Check that the format is int16.\n - Check that the input and output channel masks are stereo.\n - If either check fails, return `-EINVAL`.\n - Legacy output (auxiliary) effects are configured by AudioFlinger with a mono input channel mask and potentially multichannel output channel masks, depending on whether the output sink is multichannel. They **must reject** unsupported configurations in `\n EFFECT_CMD_SET_CONFIG`.\n - Check that the format is int16.\n - Check that the input channel mask is mono and the output channel mask is stereo.\n - If either check fails, return `-EINVAL`.\n - Verify legacy code. Don't assume that it works!"]]