共用方式為


譯碼器音量控制

[與此頁面相關聯的功能,DirectShow是舊版功能。 它已被 MediaPlayer、imfMediaEngine 取代,並在媒體基金會 音訊/視訊擷取。 這些功能已針對 Windows 10 和 Windows 11 進行優化。 Microsoft強烈建議新程式代碼盡可能在媒體 基礎中使用 MediaPlayerIMFMediaEngine 音訊/視訊擷取,而不是 DirectShow。 Microsoft建議使用舊版 API 的現有程式代碼,盡可能改寫成使用新的 API。]

應用程式會透過 IBasicAudio 介面來控制音訊音量。 針對 KSProxy 提供 IBasicAudio 介面處理程式。 若要讓譯碼器處理來自 KSProxy 的磁碟區命令,它必須在其安裝腳本中新增數個登錄機碼,並支援 KSPROPSETID_Wave 屬性集。

為驅動程式建立一些新的登錄機碼:

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.

若要實作磁碟區控制,驅動程式也必須支援 KSPROPSETID_Wave,以及 KsProperty.Id = KSPROPERTY_WAVE_VOLUME。 此屬性會透過 IKsPropertySet::GetIKsPropertySet::Set 方法傳遞至驅動程式。 LeftAttenuation 和 RightAttentuation 欄位會將左右喇叭磁碟區指定為從0x0000到0xffff的線性值。

譯碼器介面和規格