Obtention d’informations de profil lors de la lecture
[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.]
Les informations du profil utilisé pour créer un fichier sont stockées dans la section d’en-tête du fichier. Les deux objets lecteur peuvent accéder aux informations de profil à partir de l’en-tête de fichier. Il existe plusieurs raisons pour lesquelles vous souhaiterez peut-être accéder aux données de profil à partir du lecteur. Le plus souvent, vous devez récupérer des informations sur les flux, les objets d’exclusion mutuelle et les objets de partage de bande passante.
L’objet lecteur asynchrone et l’objet lecteur synchrone peuvent être interrogés pour l’interface IWMProfile . Aucune modification apportée aux informations de profil ne peut avoir d’impact sur le fichier dans le lecteur. Pour plus d’informations sur l’accès aux informations de profil, consultez Utilisation des profils.
Il est parfois important de savoir comment un flux est configuré. Lorsque vous récupérez des propriétés multimédias à partir de l’un des objets de lecteur, vous obtenez les propriétés des sorties. Les propriétés de sortie décrivent la façon dont les données non compressées d’un flux seront fournies par le lecteur, et non la façon dont le flux est configuré dans le fichier ASF.
Lorsque vous recevez des exemples de flux non compressés de l’un ou l’autre objet lecteur, vous devez utiliser les informations de profil pour identifier le format des données compressées. Cela est particulièrement important si vous allez écrire le flux compressé dans un autre fichier ASF.
Vous devez également accéder aux informations de flux lors de l’utilisation de la recompression intelligente pour transcoder un flux audio à un débit binaire inférieur.
Vous pouvez déterminer si un flux a été écrit à l’aide de l’encodage À débit variable (VBR). Vous ne pouvez pas accéder aux informations VBR à partir de l’interface IWMProfile de l’un ou l’autre objet lecteur. Cela est dû au fait que les informations VBR ne sont pas stockées dans le fichier après l’encodage. Vous pouvez déterminer si un flux a été créé à l’aide de l’encodage VBR en obtenant un pointeur vers l’interface IWMHeaderInfo de l’objet lecteur et en appelant IWMHeaderInfo::GetAttributeByName. Vous devez spécifier le numéro de flux et passer g_wszIsVBR comme nom d’attribut.
Si vous souhaitez créer une application de lecture qui utilise l’exclusion mutuelle, vous souhaiterez accéder aux informations relatives aux objets d’exclusion mutuelle inclus dans le profil. Pour tous les types d’exclusion mutuelle à l’exception du débit binaire, l’application de lecture est responsable de tout changement de flux requis. Pour changer de flux, vous devez savoir quels flux sont lesquels.
Les objets de partage de bande passante inclus dans un profil sont inclus uniquement à des fins d’information. Ni l’objet writer ni l’un des objets lecteur n’effectue d’action en raison du partage de données de bande passante. Si vous souhaitez utiliser le partage de bande passante dans votre application de lecture, vous devez accéder aux informations de partage de bande passante à partir des données de profil.
Notes
Toutes les informations du profil utilisé pour créer un fichier ne sont pas toutes présentes dans l’en-tête du fichier. En règle générale, les données utilisées uniquement au moment de l’encodage ne sont pas conservées dans le fichier. Cela inclut les paramètres d’entrée qui ont été définis à l’aide de la méthode IWMWriterAdvanced2::SetInputSetting , ainsi que les propriétés définies à l’aide de la méthode IWMPropertyVault::SetProperty .