Partager via


Contrôle du volume du décodeur

[La fonctionnalité associée à cette page, DirectShow, est une fonctionnalité héritée. Il a été remplacé par MediaPlayer, IMFMediaEngine et Audio/Video Capture dans Media Foundation. Ces fonctionnalités ont été optimisées pour Windows 10 et Windows 11. Microsoft recommande vivement au nouveau code d’utiliser MediaPlayer, IMFMediaEngine et La capture audio/vidéo dans Media Foundation au lieu de DirectShow, 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 applications contrôlent le volume audio via l’interface IBasicAudio . Un gestionnaire d’interface IBasicAudio est fourni pour KSProxy. Pour qu’un décodeur gère les commandes de volume à partir de KSProxy, il doit ajouter plusieurs clés de Registre dans son script d’installation et prendre en charge l’ensemble de propriétés KSPROPSETID_Wave .

Créez des clés de Registre pour le pilote :

HKLM\SYSTEM\
  CurrentControlSet\Control
    DeviceClasses
      (decoder guid, eg 2721AE....)
        (Pnp id, eg ##?#VDGENDEV#...)
          #GLOBAL
            Device Parameters
              CLSID      REG_SZ   {17CCA...}
                FriendlyName   REG_SZ   WDM DVD Driver
                  Interfaces <--- create this key
                  {b9f8ac3e-0f71-11d2-b72c-00c04fb6bd3d} // Create this key.
    MediaInterfaces
      {b9f8ac3e-0f71-11d2-b72c-00c04fb6bd3d} // Create this key.
        (default)  REG_SZ   'KsProxy IBasicAudio handler' // Set this value.
        IID        REG_SZ   56 a8 68 b3 0a d4 11 ce b0 3a 00 20 af 0b a7 70 
                            // Create this key.

Pour implémenter le contrôle du volume, le pilote doit également prendre en charge KSPROPSETID_Wave, ainsi que KsProperty.Id = KSPROPERTY_WAVE_VOLUME. Cette propriété est transmise au pilote par le biais des méthodes IKsPropertySet::Get et IKsPropertySet::Set . Les champs LeftAttenuation et RightAttentuation spécifient les volumes d’orateur gauche/droite sous forme de valeurs linéaires de 0x0000 à 0xffff.

Interfaces et spécifications du décodeur