Ovládání hlasitosti dekodéru

[Funkce přidružená k této stránce DirectShow je starší funkce. Byla nahrazena MediaPlayer, MMFMediaEnginea Audio/Video Capture v Media Foundation. Tyto funkce jsou optimalizované pro Windows 10 a Windows 11. Microsoft důrazně doporučuje, aby nový kód používal MediaPlayer, MMFMediaEngine a Audio/Video Capture v Media Foundation místo DirectShow, pokud je to možné. Microsoft navrhuje, aby se stávající kód, který používá starší rozhraní API, přepsal, aby se nová rozhraní API používala, pokud je to možné.]

Aplikace řídí hlasitost zvuku prostřednictvím rozhraní IBasicAudio. Obslužná rutina rozhraní IBasicAudio je k dispozici pro KSProxy. Aby dekodér zpracovával příkazy svazku z KSProxy, musí do instalačního skriptu přidat několik klíčů registru a podporovat sadu vlastností KSPROPSETID_Wave.

Vytvořte pro ovladač několik nových klíčů registru:

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.

K implementaci řízení hlasitosti musí ovladač také podporovat KSPROPSETID_Wave, spolu s KsProperty.Id = KSPROPERTY_WAVE_VOLUME. Tato vlastnost je předána ovladač prostřednictvím IKsPropertySet::Get a IKsPropertySet::Set metody. Pole LeftAttenuation a RightAttentuation určují hlasitost reproduktorů zleva/doprava jako lineární hodnoty z 0x0000 do 0xffff.

rozhraní dekodéru a specifikace