Share via


Enregistrement de bouclage

En mode bouclage, un client de WASAPI peut capturer le flux audio lu par un appareil de point de terminaison de rendu. Pour ouvrir un flux en mode bouclage, le client doit :

  • Obtenez une interface IMMDevice pour l’appareil de point de terminaison de rendu.
  • Initialisez un flux de capture en mode bouclage sur l’appareil de point de terminaison de rendu.

Après avoir suivi ces étapes, le client peut appeler la méthode IAudioClient::GetService pour obtenir une interface IAudioCaptureClient sur le périphérique de point de terminaison de rendu.

WASAPI fournit le mode bouclage principalement pour prendre en charge l’annulation d’écho acoustique (AEC). Toutefois, d’autres types d’applications audio peuvent trouver le mode bouclage utile pour capturer le mix système lu par le moteur audio.

Dans l’exemple de code de Capture d’un flux, la fonction RecordAudioStream peut être facilement modifiée pour configurer un flux de capture en mode bouclage. Les modifications requises sont les suivantes :

Dans les versions de Windows antérieures à Windows 10 1703, le client de capture en mode extraction ne reçoit aucun événement lorsqu’un flux est initialisé avec la mise en mémoire tampon pilotée par les événements et qu’il est activé en mode bouclage. Pour contourner ce problème, initialisez un flux de rendu en mode piloté par les événements. Chaque fois que le client reçoit un événement pour le flux de rendu, il doit signaler au client de capture qu’il exécute le thread de capture qui lit l’ensemble d’exemples suivant à partir de la mémoire tampon du point de terminaison de capture. Dans Windows 10 versions 1703 et ultérieures, les clients de bouclage piloté par événement sont pris en charge et n’ont plus besoin de la solution de contournement impliquant le flux de rendu.

Un client peut activer le mode bouclage uniquement pour un flux en mode partagé (AUDCLNT_SHAREMODE_SHARED). Les flux en mode exclusif ne peuvent pas fonctionner en mode bouclage.

L’implémentation du bouclage par WASAPI dépend des fonctionnalités du matériel. Si le matériel prend en charge une broche de bouclage sur le point de terminaison de rendu, WASAPI utilise l’audio fourni sur cette broche pour le flux de bouclage. Lorsque le matériel ne prend pas en charge une broche de bouclage, WASAPI copie le flux de sortie du moteur audio dans la mémoire tampon de capture de l’application de bouclage, en plus de copier les données audio dans la broche de rendu du matériel.

Certains fournisseurs de matériel implémentent des périphériques de bouclage (au lieu d’épingler des instances sur des périphériques de rendu) dans leurs cartes audio. Bien que les périphériques de bouclage matériel fonctionnent de manière similaire au mode bouclage WASAPI, ils peuvent être plus difficiles à utiliser.

Les périphériques de bouclage matériel présentent les inconvénients suivants pour les applications audio :

  • Tous les adaptateurs audio n’ont pas d’appareils de bouclage. Ainsi, les applications qui en dépendent ne fonctionnent pas sur tous les systèmes.
  • Avant qu’une application puisse enregistrer à partir d’un appareil de bouclage, l’utilisateur doit identifier l’appareil de bouclage et l’activer pour l’utiliser.

Différents fournisseurs attribuent des noms différents à leurs appareils de bouclage matériel. Les noms suivants sont des exemples :

  • Mix stéréo
  • Waveout Mix
  • Sortie mixte
  • Ce que vous entendez

En raison de l’absence de noms standardisés, les utilisateurs peuvent avoir des difficultés à identifier un appareil de bouclage dans une liste de noms d’appareils.

Un appareil de bouclage matériel est un appareil de capture. Ainsi, si un adaptateur prend en charge un périphérique de bouclage, une application audio peut enregistrer à partir de l’appareil de la même façon qu’elle enregistre à partir de n’importe quel autre périphérique de capture.

Par exemple, si vous sélectionnez un périphérique de bouclage matériel comme périphérique de capture par défaut, vous pouvez utiliser la fonction RecordAudioStream (sans modification) dans l’exemple de code de Capture d’un flux pour capturer le flux à partir de l’appareil. (Vous pouvez également utiliser une API audio héritée, telle que les fonctions multimédias Windows waveInXxx , pour capturer le flux à partir de l’appareil.)

Si votre carte audio contient un périphérique de bouclage matériel, vous pouvez utiliser le panneau de configuration multimédia Windows, Mmsys.cpl, pour désigner l’appareil comme périphérique de capture par défaut. La procédure comporte trois étapes :

  1. Pour exécuter Mmsys.cpl, ouvrez une fenêtre d’invite de commandes et entrez la commande suivante :

    control mmsys.cpl
    

    Vous pouvez également exécuter Mmsys.cpl en cliquant avec le bouton droit sur l’icône du haut-parleur dans la zone de notification, qui se trouve sur le côté droit de la barre des tâches, puis en sélectionnant Périphériques d’enregistrement.

  2. Une fois la fenêtre Mmsys.cpl ouverte, cliquez avec le bouton droit n’importe où dans la liste des périphériques d’enregistrement et vérifiez que l’option Afficher les appareils désactivés est cochée. (Sinon, si l’appareil de bouclage est désactivé, il n’apparaîtra pas dans la liste.)

  3. Parcourez la liste des périphériques d’enregistrement pour localiser l’appareil de bouclage (s’il existe). Si l’appareil de bouclage est désactivé, activez-le en cliquant avec le bouton droit sur l’appareil et en cliquant sur Activer.

  4. Enfin, pour sélectionner l’appareil de bouclage comme périphérique de capture par défaut, cliquez avec le bouton droit sur l’appareil, puis cliquez sur Définir en tant qu’appareil par défaut.

WASAPI prend en charge l’enregistrement de bouclage, que le matériel audio contienne un appareil de bouclage ou que l’utilisateur ait activé l’appareil.

Windows Vista fournit la gestion des droits numériques (DRM). Les fournisseurs de contenu s’appuient sur la gestion des droits numériques (DRM) pour protéger leur musique propriétaire ou tout autre contenu contre toute copie non autorisée et d’autres utilisations illégales. De même, un pilote audio approuvé ne permet pas à un périphérique de bouclage de capturer des flux numériques qui contiennent du contenu protégé. Windows Vista autorise uniquement les pilotes approuvés à lire du contenu protégé. Pour plus d’informations sur les pilotes approuvés et drm, consultez la documentation windows DDK.

Le bouclage WASAPI contient la combinaison de tout l’audio lu, quelle que soit la session Terminal Services d’où provient l’audio. Par exemple, vous pouvez exécuter un client de bouclage dans un service s’exécutant dans la session 0 et capturer l’audio de toutes les sessions utilisateur, ainsi que l’audio lu à partir de la session 0.

Le Bureau à distance permet de rediriger l’audio vers le client. Cela est implémenté en créant de nouveaux périphériques audio qui apparaissent uniquement pour cette session.

Gestion des flux