Pour utiliser la sélection manuelle de flux

[La fonctionnalité associée à cette page, le Kit de développement logiciel (SDK) Windows Media Format 11, est une fonctionnalité héritée. Il a été remplacé par le lecteur source et l’enregistreurrécepteur. Le lecteur source et l’enregistreur récepteur ont été optimisés pour Windows 10 et Windows 11. Microsoft recommande vivement que le nouveau code utilise le lecteur source et l’enregistreur récepteur au lieu du Kit de développement logiciel (SDK) Windows Media Format 11, lorsque cela est possible. Microsoft suggère que le code existant qui utilise les API héritées soit réécrit pour utiliser les nouvelles API si possible.]

Lorsque vous fournissez des exemples non compressés avec l’objet lecteur, vous pouvez les remettre uniquement par numéro de sortie. Dans le cas de flux mutuellement exclusifs, cela signifie que vous ne pouvez recevoir des échantillons qu’à partir d’un seul flux de l’exclusion mutuelle à la fois. Le processus de choix du flux qui s’exclut mutuellement est appelé sélection de flux.

Pour l’exclusion mutuelle à débit binaire, le lecteur effectue automatiquement des sélections de flux en fonction des conditions sur l’ordinateur hôte lors de la lecture. Pour les autres types d’exclusion mutuelle, le lecteur remet des exemples à partir du flux par défaut, sauf si vous sélectionnez manuellement un autre flux vous-même. Il peut également y avoir des cas où vous souhaitez sélectionner un flux manuellement à partir d’une exclusion mutuelle de débit binaire.

La sélection manuelle du flux est activée ou désactivée pour l’ensemble du fichier. Si un fichier contient une exclusion mutuelle à débit binaire et un autre type d’exclusion mutuelle, vous devez sélectionner manuellement les flux basés sur le débit binaire.

Pour sélectionner manuellement un flux mutuellement exclusif, vous devez effectuer les étapes suivantes.

  1. Récupérez un pointeur vers l’interface IWMReaderAdvanced de l’objet reader en appelant IWMReader::QueryInterface.
  2. Activez la sélection manuelle de flux en appelant IWMReaderAdvanced::SetManualStreamSelection.
  3. Pour savoir si un flux particulier est sélectionné, appelez IWMReaderAdvanced::GetStreamSelected. Vous devez passer un pointeur vers une variable du type d’énumération WMT_STREAM_SELECTION . Lorsque l’appel est retourné, la valeur dans la variable décrit le type de sélection actuel du flux.
  4. Pour sélectionner un flux, appelez IWMReaderAdvanced::SetStreamsSelected. Cette méthode vous permet de spécifier plusieurs flux en même temps pour le basculement de flux synchronisé.

Lecture de fichiers avec le lecteur asynchrone