A partire dal 27 marzo 2025, ti consigliamo di utilizzare android-latest-release
anziché aosp-main
per compilare e contribuire ad AOSP. Per ulteriori informazioni, vedi Modifiche ad AOSP.
Audio ad alta risoluzione
Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
La release di Android 10 include i seguenti
miglioramenti per l'audio ad alta risoluzione:
- Float: i codec e gli estrattori WAV e FLAC sono stati aggiornati per supportare il formato float (più di 24 bit di precisione senza perdita di dati). Gli effetti Downmix e Virtualizer sono aggiornati al formato float.
La precisione aggiornata è consentita da MediaPlayer (NuPlayer).
- Alta frequenza:i codec e gli estrattori WAV e FLAC sono aggiornati per supportare 192 kHz.
Gli effetti forniti per impostazione predefinita da Android sono testati per il supporto di 192 kHz alle frequenze standard.
Le frequenze standard consentite sono 88,2 kHz, 96 kHz, 176,4 kHz e
192 kHz.
- Multicanale: gli effetti di riproduzione predefiniti per Android sono testati per il supporto multicanale fino a otto canali.
- Tempi: le informazioni sui tempi sono incluse nell'intero framework audio.
A partire da Android 9, i seguenti miglioramenti
non richiedono l'implementazione da parte dei partner:
- Il numero di canali di output client simultanei aumenta da 14
a 40, poiché le istanze client limitate di
AudioTrack
hanno rappresentato un problema per
le app in Android 8.x.
- La memoria massima del client/server aumenta da 4 MB a 32 MB (a seconda della memoria totale del dispositivo) per consentire più tracce audio ad alta risoluzione simultanee.
- Il numero totale di tracce miste aumenta da 32 a 256 per evitare la contesa delle risorse tra le app e l'interfaccia utente di sistema.
Modifiche all'effetto di output
Consulta la sezione Effetti sonori per conoscere le modifiche apportate alla versione di Android 11.
Prima della release di Android 9, l'elaborazione della catena di effetti era implementata in formato di sample stereo int16. Questo approccio presentava diversi limiti:
- Tutti gli effetti di output forzano la conversione dei dati audio in virgola mobile in int16, causando una perdita di precisione.
- Gli effetti di output sono stati rifiutati dai canali di destinazione con un numero di canali superiore a due.
Nella release di Android 9, la pipeline di elaborazione della catena di effetti viene aggiornata per supportare il formato float multicanale. Punti chiave:
- Per gli effetti software Android è già stata eseguita la migrazione a formato float stereo.
- Gli effetti precedenti sono supportati con gli adattatori di formato, che convertono i valori float in int16 in base alle esigenze.
Implementa gli effetti di output
Un'implementazione di riferimento per gli effetti di output è disponibile in
frameworks/av/media/libeffects
.
I partner che implementano i propri effetti di output personalizzati devono svolgere quanto segue per la release di Android 10:
- Aggiorna gli effetti di output per supportare il formato float multicanale:
- Il supporto dell'elaborazione Int16 non è più necessario.
- Supporta conteggi dei canali di output da 2 a 8 (per la compatibilità futura, considera conteggi da 1 a 30).
- Supporta i conteggi dei canali di input corrispondenti ai conteggi dei canali di output per
gli effetti di inserimento. Gli effetti ausiliari continuano a vedere un canale di input
con un conteggio pari a 1 (mono).
- Supporta sia le maschere di posizione del canale (canonica) sia le maschere di indice del canale
(1 << n) - 1
.
- Se devi continuare a supportare gli effetti di output dei fornitori precedenti e non riesci
ad aggiornarli, verifica il codice precedente come segue:
- Gli effetti di output (inserimento) precedenti devono rifiutare
le configurazioni non supportate in
EFFECT_CMD_SET_CONFIG
.
- Verifica che il formato sia int16.
- Verifica che le maschere dei canali di input e di output siano stereo.
- Se uno dei controlli non va a buon fine, restituisci
-EINVAL
.
- Gli effetti di output (ausiliari) precedenti vengono configurati da AudioFlinger
con una maschera del canale di input mono e maschere del canale di output potenzialmente multicanale, a seconda che la destinazione di output sia multicanale.
Devono rifiutare le configurazioni non supportate in
EFFECT_CMD_SET_CONFIG
.
- Verifica che il formato sia int16.
- Verifica che la maschera del canale di ingresso sia mono e la maschera del canale di output sia stereo.
- Se uno dei controlli non va a buon fine, restituisci
-EINVAL
.
- Verifica il codice precedente. Non dare per scontato che funzioni.
I campioni di contenuti e codice in questa pagina sono soggetti alle licenze descritte nella Licenza per i contenuti. Java e OpenJDK sono marchi o marchi registrati di Oracle e/o delle sue società consociate.
Ultimo aggiornamento 2025-07-27 UTC.
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Mancano le informazioni di cui ho bisogno","missingTheInformationINeed","thumb-down"],["Troppo complicato/troppi passaggi","tooComplicatedTooManySteps","thumb-down"],["Obsoleti","outOfDate","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Problema relativo a esempi/codice","samplesCodeIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 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!"]]