Exploration du moteur audio Windows Vista
Cette rubrique présente une vue d’ensemble du moteur audio Windows Vista. Il se concentre sur les concepts qui vous aideront à comprendre comment les API et les SPO fonctionnent ensemble.
Le diagramme suivant présente une disposition simplifiée de la structure interne du moteur audio.
Comme le montre le diagramme, les APO et les SPO fournis par le système sont les composants de base du moteur audio. Le moteur audio configure les API et les SPO fournis par le système dans des composants appelés canaux. Il existe deux types de canaux dans le moteur audio :
Les canaux de flux sont constitués d’APO et de SPO qui effectuent un traitement audio numérique local au flux à partir d’une seule application. L’objet sAPO dans ce type de canal est appelé sAPO à effets locaux (LFX sAPO).
Les canaux d’appareil sont constitués d’APO et de sPO qui effectuent un traitement audio numérique qui affecte tous les flux à l’échelle mondiale. L’objet sAPO dans ce type de canal est appelé sAPO à effets globaux (GFX sAPO).
Le tableau suivant montre les SPO disponibles dans le moteur audio Windows Vista et le type d’effets système qu’ils appliquent.
SAPO Windows Vista | Effet système |
---|---|
Bass Boost |
LFX |
Gestion des basses |
LFX |
Péréquation du bruit |
LFX |
Protection à basse fréquence |
LFX |
Remplissage de l’orateur |
LFX |
Fantôme de l’orateur |
LFX |
Surround virtuel |
LFX |
Surround virtualisé sur casque |
LFX |
Son amélioré pour les ordinateurs portables |
GFX |
Correction de salle |
GFX |
Lorsqu’une application audio lance le traitement audio, le moteur audio configure les API fournies par le système et les sAPOs dans un graphique audio pour traiter les données audio numériques. Le mécanisme utilisé par le moteur audio pour créer le graphe audio est un détail système et ne sera pas abordé.
L’application audio peut lancer la connexion en mode partagé ou en mode exclusif. Bien qu’un ensemble par défaut de sAPOs soit installé avec Windows Vista, les SPO ne sont pas considérés comme des composants système et sont donc personnalisables.
Mode partagé
En mode partagé, une application audio partage le matériel audio avec d’autres applications audio qui s’exécutent dans d’autres processus. Le moteur audio mixe les flux de ces applications et lit le mix résultant via le matériel. Toute application qui ouvre un flux en mode partagé doit sélectionner le format de mixage utilisé par le moteur audio. L’avantage de l’utilisation du mode partagé est que le moteur audio Windows Vista fournit un objet de traitement audio (APO) intégré pour fournir les fonctionnalités de prise en charge nécessaires. L’inconvénient de l’utilisation du mode partagé est que la latence du flux audio est plus élevée qu’en mode exclusif. L’exemple de code suivant montre la syntaxe d’initialisation d’un flux audio en mode partagé.
hResult = pAudioClient->Initialize(
AUDCLNT_SHAREMODE_SHARED,
0,
0,
0,
pWfx,
&m_SubmixGuid);
Mode exclusif
En revanche, lorsqu’une application ouvre un flux en mode exclusif, l’application dispose d’un accès exclusif au matériel audio. Dans ce mode, l’application peut sélectionner n’importe quel format audio pris en charge par le point de terminaison. L’avantage de l’utilisation du mode exclusif est que la latence du flux audio est inférieure à celle du mode partagé. L’inconvénient de l’utilisation du mode exclusif est que vous devez fournir votre propre APO pour gérer les fonctionnalités de prise en charge du moteur audio. Seul un petit nombre d’applications de niveau professionnel nécessitent ce mode de fonctionnement. L’exemple de code suivant montre la syntaxe d’initialisation d’un flux audio en mode exclusif.
hResult = pAudioClient->Initialize(
AUDCLNT_SHAREMODE_EXCLUSIVE,
0,
0,
0,
pWfxEx,
&m_SubmixGuid);
Une fois qu’une application a lancé le traitement audio, le générateur de graphique configure les sAPOs dans un graphique audio et initialise également les sAPOs. Le service audio négocie ensuite avec l’APO LFX pour établir le format des données audio à l’entrée et à la sortie de l’APO. Pour plus d’informations, consultez Format de négociation.