KSPROPERTY_AUDIOLOOPBACK
La propriété KSPROPERTY_AUDIOLOOPBACK indique si le point de prélèvement en boucle est avant ou après le volume et la mise en sourdine.
À partir de Windows 11 24H2, la définition de la propriété KSPROPERTY_AUDIOLOOPBACK est une exigence.
Tableau récapitulatif d’utilisation
Get | Définir | Cible | Tableau récapitulatif d’utilisation | Type de valeur de propriété |
---|---|---|---|---|
Oui | Non | Épingler | KSATTRIBUTE_AUDIOLOOPBACK_TAPPOINT | Structure KSATTRIBUTE |
KSPROPERTY_AUDIOLOOPBACK est un enum de propriétés associées à KSPROPSETID_AudioLoopback, avec la propriété suivante implémentée.
typedef enum {
KSPROPERTY_AUDIOLOOPBACK_TAPPOINT_CAPS,
} KSPROPERTY_AUDIOLOOPBACK;
Le Windows AudioEndpointBuilder utilise KSPROPSETID_AudioLoopback avec KSPROPERTY_AUDIOLOOPBACK_TAPPOINT_CAPS pour récupérer le AUDIOLOOPBACK_TAPPOINT_CAPS_<*>
. Cela informe le système d’exploitation sur la capacité du point de terminaison audio à effectuer une boucle avant volume, après volume, ou les deux.
Ensuite, au moment de la création de la broche, le système d’exploitation fournit un attribut, KSATTRIBUTEID_AUDIOLOOPBACK_TAPPOINT avec un KSATTRIBUTE_AUDIOLOOPBACK_TAPPOINT, pour indiquer s’il faut créer la broche de boucle avant ou après le volume.
Les capacités du point de prélèvement sont définies comme suit.
#define AUDIOLOOPBACK_TAPPOINT_CAPS_PREVOLUMEMUTE (0x1)
#define AUDIOLOOPBACK_TAPPOINT_CAPS_POSTVOLUMEMUTE (0x2)
La structure KSATTRIBUTE_AUDIOLOOPBACK_TAPPOINT disponible dans ksmedia.h peut fournir un wrapper pour spécifier l’attribut AUDIO_LOOPBACK_TAPPOINT_TYPE sur l’endroit où prélever la boucle dans le graphe du flux.
Valeur de retour
Une requête de propriété KSPROPERTY_AUDIOLOOPBACK retourne STATUS_SUCCESS pour indiquer qu’elle a été exécutée avec succès. Sinon, la requête retourne un code d’erreur approprié.
Notes
Un système audio peut être résumé comme suit.
- Sortie de traitement du signal : La sortie du traitement du signal déchargé ou directement du fournisseur hôte.
- Volume : L’étape suivante dans le flux, où le volume du signal audio est ajusté.
- Muet : Cette étape met en sourdine le signal audio si nécessaire.
- EFX (Effets) : Ici, les effets sont appliqués au signal audio.
- Sortie : La dernière étape où le signal audio traité est sorti.
Les systèmes avec moteur audio matériel doivent implémenter une broche de boucle. La broche de boucle retourne la sortie audio mixée après que tout le traitement du signal a été appliqué.
Le flux de boucle est également affecté par le volume et la mise en sourdine du point de terminaison. Cette propriété permet aux applications de choisir si le flux de boucle doit être retourné avant ou après l’application du volume et de la mise en sourdine du point de terminaison.
Le pilote audio doit connecter la broche de sortie du moteur audio à la broche de boucle du filtre. La broche de boucle doit annoncer la catégorie comme KSNODETYPE_AUDIO_LOOPBACK. La boucle ne met pas en œuvre de modes de traitement du signal.
Le système d’exploitation peut interroger le pilote audio sur les capacités du point de prélèvement en boucle. Les capacités sont retournées sous forme de masque de bits de drapeaux.
Le flux créé sur la broche de boucle collecte la sortie mixée par DSP et la fournit en tant que flux de capture au système d’exploitation. Une manière pour le pilote d’obtenir des options du système d’exploitation est via des attributs de flux. Si aucun attribut n’est appliqué au flux de boucle, alors la boucle doit être collectée avant que le volume et la mise en sourdine ne soient appliqués sur la sortie du mélangeur.
Pour un client en mode utilisateur, le passage entre la boucle avant volume et la boucle après volume est effectué via AUDCLNT_STREAMOPTIONS_POST_VOLUME_LOOPBACK, passé en tant que AUDCLNT_STREAMOPTIONS (audioclient.h) lors de l’appel de SetClientProperties.
KSNODETYPE_AUDIO_LOOPBACK
KSNODETYPE_AUDIO_LOOPBACK représente les capacités de boucle audio. Il est défini dans ksmedia.h comme montré ici.
#define STATIC_KSNODETYPE_AUDIO_LOOPBACK\
0x8f42c0b2, 0x91ce, 0x4bcf, 0x9c, 0xcd, 0xe, 0x59, 0x90, 0x37, 0xab, 0x35
DEFINE_GUIDSTRUCT("8F42C0B2-91CE-4BCF-9CCD-0E599037AB35", KSNODETYPE_AUDIO_LOOPBACK);
#define KSNODETYPE_AUDIO_LOOPBACK DEFINE_GUIDNAMED(KSNODETYPE_AUDIO_LOOPBACK)
Spécifications
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 11 Version 24H2 |
En-tête | Ksmedia.h |