Compartilhar via


Controle de volume do decodificador

[O recurso associado a esta página, DirectShow, é um recurso herdado. Foi substituído por MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation. Esses recursos foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda fortemente que o novo código use MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation em vez de DirectShow, quando possível. A Microsoft sugere que o código existente que usa as APIs herdadas seja reescrito para usar as novas APIs, se possível.]

Os aplicativos controlam o volume de áudio por meio da interface IBasicAudio . Um manipulador de interface IBasicAudio é fornecido para KSProxy. Para que um decodificador manipule os comandos de volume do KSProxy, ele deve adicionar várias chaves do Registro em seu script de instalação e dar suporte ao conjunto de propriedades KSPROPSETID_Wave .

Crie algumas novas chaves do Registro para o driver:

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.

Para implementar o controle de volume, o driver também deve dar suporte a KSPROPSETID_Wave, juntamente com KsProperty.Id = KSPROPERTY_WAVE_VOLUME. Essa propriedade é passada para o driver por meio dos métodos IKsPropertySet::Get e IKsPropertySet::Set . Os campos LeftAttenuation e RightAttentuation especificam os volumes de alto-falantes esquerdo/direito como valores lineares de 0x0000 para 0xffff.

Interfaces e especificações do decodificador