Partager via


Lecture audio multicanal

[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 lecteur source et enregistreur ré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.]

Le codec Windows Media Audio 9 Professionnel peut encoder l’audio multicanal (plus de deux canaux). Lors de la lecture d’un fichier avec audio multicanal, vous devez configurer la sortie correctement, sinon l’audio sera fourni à une qualité inférieure et en stéréo. Pour définir une sortie pour la distribution audio multicanal, vous devez définir deux paramètres de sortie : g_wszEnableDiscreteOutput et g_wszSpeakerConfig.

La définition de g_wszEnableDiscreteOutput sur TRUE définit le codec pour fournir une sortie audio haute définition. L’audio haute définition est encodé par le codec Windows Media Audio 9 avec des exemples 24 bits en stéréo ou plusieurs canaux. Si ce paramètre est FALSE, seule la sortie stéréo 16 bits est fournie.

Le nombre de haut-parleurs sur l’ordinateur de lecture est défini avec g_wszSpeakerConfig. Ce paramètre est une valeur DWORD définie sur l’une des constantes d’orateur DirectSound répertoriées dans le tableau suivant. Pour résoudre ces noms de constante pour votre compilateur, vous devez inclure dsound.h.

Constant Valeur Description
DSSPEAKER_DIRECTOUT 0x00000000 L’audio est transmis directement, sans être configuré pour les haut-parleurs.
DSSPEAKER_HEADPHONE 0x00000001 L’ordinateur client est équipé d’un casque.
DSSPEAKER_MONO 0x00000002 L’ordinateur client est équipé d’un haut-parleur monaural.
DSSPEAKER_QUAD 0x00000003 L’ordinateur client est équipé de haut-parleurs quadraphoniques.
DSSPEAKER_STEREO 0x00000004 L’ordinateur client est équipé de haut-parleurs stéréo.
DSSPEAKER_SURROUND 0x00000005 L’ordinateur client est équipé de haut-parleurs surround à quatre canaux.
DSSPEAKER_5POINT1 0x00000006 L’ordinateur client est équipé de cinq haut-parleurs et d’un subwoofer.
DSSPEAKER_7POINT1 0x00000007 L’ordinateur client est équipé de sept haut-parleurs et d’un subwoofer.

 

Pour définir ces paramètres, utilisez IWMReaderAdvanced2::SetOutputSetting.

Enfin, pour que les canaux soient générés discrètement, sans repli en stéréo, vous devez définir le type de média approprié sur la sortie en procédant comme suit :

  1. Appelez IWMReader::GetOutputFormatCount pour obtenir le nombre de formats pris en charge pour la sortie audio appropriée. Les index de format de sortie sont de base zéro.
  2. Pour chaque format pris en charge, appelez IWMReader::GetOutputFormat pour récupérer l’interface IWMOutputMediaProps sur l’objet propriétés du média de sortie.
  3. Appelez IWMMediaProps::GetMediaType pour récupérer le type de média.
  4. Si le type multimédia récupéré est le type multicanal souhaité, définissez-le en appelant IWMReader::SetOutputProps.

Une fois que vous avez défini la sortie discrète et la configuration de l’orateur, les formats de sortie énumérés par le lecteur doivent inclure des formats multicanal qui utilisent la structure WAVEFORMATEXTENSIBLE . Si vous énumérez les formats de sortie avant de définir les propriétés, seuls les formats avec 1 ou 2 canaux et un maximum de 16 bits par canal seront inclus. Comme pour les autres formats audio, vous devez utiliser uniquement les formats énumérés par le lecteur ; ne configurez pas votre propre.

Notes

Vous pouvez générer de l’audio multicanal uniquement si votre application s’exécute sur Microsoft Windows XP ou une version ultérieure de Microsoft Windows.

 

Entrées, flux et sorties

Lecture de fichiers ASF

Paramètres de sortie

Utilisation de High-Resolution audio PCM