À partir du 27 mars 2025, nous vous recommandons d'utiliser android-latest-release au lieu de aosp-main pour créer et contribuer à AOSP. Pour en savoir plus, consultez la section Modifications apportées à AOSP.
Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
La couche d'abstraction matérielle audio (HAL) d'Android connecte les API de framework de niveau supérieur spécifiques à l'audio dans les pilotes et le matériel audio sous-jacents android.media. Le HAL audio définit l'interface standard à laquelle les services audio appellent. Le HAL audio doit être implémenté pour que le matériel audio fonctionne correctement.
Cette page présente l'HAL Audio et fournit des informations détaillées sur son API et ses exigences d'implémentation.
Interface HAL audio
À partir d'Android 14, l'interface HAL audio est définie à l'aide d'AIDL. Pour les versions précédentes, l'interface HAL audio est définie à l'aide de HIDL.
Les partenaires et les fournisseurs de SoC sont invités à réimplémenter leur HAL audio pour fournir une interface AIDL.
Les nouvelles API HAL pour les fonctionnalités ajoutées dans Android 14 et versions ultérieures ne sont compatibles qu'avec l'implémentation de l'interface AIDL.
À partir d'Android 14, aucune nouvelle API n'est ajoutée à l'implémentation HIDL.
Le passage à AIDL, l'abandon et la suppression de la prise en charge des versions principales précédentes de l'HAL audio libère de l'espace disque et de la RAM sur les appareils. Cela permet d'améliorer l'expérience utilisateur et de proposer de nouvelles fonctionnalités visibles par les utilisateurs finaux.
Le Core HAL est l'API principale utilisée par AudioFlinger pour lire de l'audio et contrôler le routage audio.
L'API HAL Effects est utilisée par le framework d'effets pour contrôler les effets audio.
Vous pouvez également configurer des effets de prétraitement tels que la commande de gain automatique et la suppression du bruit via l'API HAL Effects.
L'API HAL commune est une bibliothèque de types de données courants utilisés par les API HAL Core et Effects. Le HAL commun n'a pas d'interfaces ni de tests VTS associés, car il ne définit que des structures de données.
En plus d'implémenter le HAL Audio et de créer le fichier de configuration des règles audio, vous devez respecter les exigences HAL suivantes:
Si la capture pour Sound Trigger (capture à partir du tampon DSP du mot clé) est prise en charge par un profil d'entrée, l'implémentation doit prendre en charge le nombre de flux actifs sur ce profil correspondant au nombre de sessions simultanées prises en charge par le HAL Sound Trigger.
Concurrency of voice call TX and capture from the app processor as
detailed on the Concurrent capture page.
Le contenu et les exemples de code de cette page sont soumis aux licences décrites dans la Licence de contenu. Java et OpenJDK sont des marques ou des marques déposées d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/07/26 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Il n'y a pas l'information dont j'ai besoin","missingTheInformationINeed","thumb-down"],["Trop compliqué/Trop d'étapes","tooComplicatedTooManySteps","thumb-down"],["Obsolète","outOfDate","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Mauvais exemple/Erreur de code","samplesCodeIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2025/07/26 (UTC)."],[],[],null,["# Audio HAL\n\nAndroid's Audio hardware abstraction layer (HAL) connects the higher-level,\naudio-specific framework APIs into\n[`android.media`](http://developer.android.com/reference/android/media/package-summary.html)\nthe underlying audio drivers and hardware. The Audio HAL defines the standard\ninterface that audio services call in to. The Audio HAL must be implemented for\nthe audio hardware to function correctly.\n\nThis page gives an overview of the Audio HAL and provides details of its API and\nimplementation requirements.\n\nAudio HAL interface\n-------------------\n\nStarting with Android 14, the Audio HAL interface is\ndefined using [AIDL](/docs/core/audio/aidl-implement). For past versions, the\nAudio HAL interface is defined using [HIDL](/docs/core/audio/hidl-implement).\nPartners and SoC vendors are encouraged to reimplement their\nAudio HAL to provide an AIDL interface.\n\nNew HAL APIs for features added in Android 14 and\nhigher are supported **only** with the implementation of the AIDL interface.\nStarting with Android 14, no new API is added to the\nHIDL implementation.\n\nSwitching to AIDL and deprecating and removing support for previous\nmajor Audio HAL versions frees up disk space and RAM on devices. This\nleads to a smoother UX and allows for newer user-visible features for end users.\n\nSee [AIDL and HIDL Audio HAL comparison](/docs/core/audio/aidl-hidl-comp)\nfor more information about the differences between the AIDL and HIDL Audio HAL.\n\n### Audio HAL API\n\nThe Audio HAL contains the following APIs:\n\n- The Core HAL is the main API used by AudioFlinger to play audio and control the audio routing.\n- The Effects HAL API is used by the effects framework to control audio effects.\n You can also configure [preprocessing effects](/devices/audio/implement-pre-processing)\n such as automatic gain control and noise suppression through the Effects HAL\n API.\n\n | **Note:** The Audio Effects HAL API is similar to the [framework effects APIs](https://developer.android.com/reference/android/media/audiofx/AudioEffect).\n- The Common HAL API is a library of common data types used by the Core and\n Effects HAL APIs. The Common HAL has no interfaces and no associated VTS\n tests as it defines only data structures.\n\nSee [AIDL Audio HAL](/docs/core/audio/aidl-implement) and\n[HIDL Audio HAL](/docs/core/audio/hidl-implement) for specific details\nrelated to AIDL and HIDL respectively.\n| **Note:** Starting with Android 13, Audio HAL is updated to version 7.1.\n\nRequirements\n------------\n\nIn addition to implementing the Audio HAL and creating the audio policy\nconfiguration file, you must adhere to the following HAL requirements:\n\n- If capture for Sound Trigger (capture from hotword DSP buffer) is supported\n by one input profile, the implementation must support the number of active\n streams on this profile corresponding to the number of concurrent sessions\n supported by Sound Trigger HAL.\n\n | **Note:** The implementation of the [Sound trigger HAL](/docs/core/audio/sound-trigger) is located at `/hardware/interfaces/soundtrigger` and is coupled with the Audio HAL.\n- Concurrency of voice call TX and capture from the app processor as\n detailed on the [Concurrent capture](/docs/core/audio/concurrent) page."]]