Routage de flux

Le routage de flux est la capacité d’une application multimédia à basculer des flux entre des appareils avec une interruption minimale de la lecture ou de la session de capture.

Un ordinateur peut avoir plusieurs appareils de rendu et de capture. Le système répertorie ces appareils dans le panneau de configuration Sons . Dans cette liste, un utilisateur peut définir un appareil comme appareil par défaut pour chaque rôle : lecture, enregistrement ou les quatre rôles de communication (rendu de console, capture de console, rendu de communication ou capture de communication). La liste des appareils peut être modifiée dynamiquement, car certains de ces appareils peuvent être disponibles temporairement, par exemple un casque USB. Lorsque plusieurs appareils sont disponibles, l’utilisateur peut remplacer la valeur par défaut par un autre appareil. L’utilisateur peut également modifier le format d’un appareil (taux d’échantillonnage, bits par échantillon, etc.) sous l’onglet Avancé des propriétés de l’appareil.

Prenons l’exemple d’un scénario dans lequel un utilisateur sélectionne Des haut-parleurs comme appareil par défaut pour le rendu des flux audio. L’utilisateur connecte ensuite un casque USB, sélectionne le casque comme nouvel appareil par défaut et modifie le taux d’échantillonnage de l’appareil de 44,1 kHz à 48 kHz. L’utilisateur souhaite lire le flux audio sur le casque à la nouvelle fréquence d’échantillonnage avec une interruption minimale de la session de streaming.

Dans ce scénario, l’application multimédia doit gérer deux cas :

  • Le flux doit être transféré vers le nouvel appareil par défaut avec une interruption minimale de la lecture.
  • Le nouvel appareil doit reprendre la lecture dans le nouveau format (autrement dit, l’utilisateur peut changer plus que le taux d’échantillonnage).

Dans Windows Vista, pour prendre en charge ce scénario, l’application multimédia devait fournir l’implémentation du routage de flux. L’application était responsable de l’arrêt des flux existants et du redémarrage des flux sur le nouvel appareil. Si l’utilisateur a modifié l’appareil par défaut ou son format de combinaison, toutes les sessions associées ont été fermées et l’application a dû gérer la récupération.

Dans Windows 7, une application peut transférer en toute transparence un flux d’un appareil par défaut existant vers un nouveau point de terminaison audio par défaut. Les ensembles d’API audio de haut niveau, tels que Media Foundation, DirectSound et LES API WAVE, implémentent la fonctionnalité de routage de flux. Les applications multimédias qui utilisent ces ensembles d’API pour lire ou capturer un flux à partir de l’appareil par défaut utilisent l’implémentation par défaut et n’auront pas à modifier l’application. Toutefois, si votre application multimédia utilise DIRECTEMENT MMDeviceAPI ou WASAPI, l’application doit fournir l’implémentation du routage de flux.

Notes

MMDeviceAPI et WASAPI sont des composants d’API audio de base qu’une application peut utiliser pour afficher ou capturer un flux sur un appareil. MMDeviceAPI découvre le nouveau périphérique de point de terminaison audio, et WASAPI gère le flux de données audio entre une application multimédia et l’appareil de point de terminaison audio.

 

Pour implémenter la fonctionnalité de routage de flux, l’application doit écouter les notifications envoyées par MMDeviceAPI et WASAPI dans les cas suivants :

  • L’appareil par défaut est modifié par l’utilisateur.
  • L’appareil par défaut existant est supprimé et un nouvel appareil par défaut est ajouté.
  • Le format de l’appareil est modifié.

En gérant ces notifications, une application peut effectuer les opérations de gestion de flux nécessaires lors du transfert du flux vers le nouvel appareil par défaut. En outre, l’application peut afficher ou capturer des flux existants à l’aide du nouveau format spécifié par l’utilisateur pendant qu’une session de rendu est active.

Cette section contient les rubriques suivantes :

Les exemples suivants, inclus dans le Kit de développement logiciel (SDK) Windows, montrent comment une application peut gérer les notifications de routage de flux.

Gestion des flux

À propos de l’API MMDevice

À propos de WASAPI