Bagikan melalui


Kontrol Volume Decoder

[Fitur yang terkait dengan halaman ini, DirectShow, adalah fitur warisan. Ini telah digantikan oleh MediaPlayer, IMFMediaEngine, dan Pengambilan Audio/Video di Media Foundation. Fitur-fitur tersebut telah dioptimalkan untuk Windows 10 dan Windows 11. Microsoft sangat menyarankan agar kode baru menggunakan MediaPlayer, IMFMediaEngine , dan Pengambilan Audio/Video di Media Foundation alih-alih DirectShow, jika memungkinkan. Microsoft menyarankan agar kode yang ada yang menggunakan API warisan ditulis ulang untuk menggunakan API baru jika memungkinkan.]

Aplikasi mengontrol volume audio melalui antarmuka IBasicAudio . Handler antarmuka IBasicAudio disediakan untuk KSProxy. Agar dekoder menangani perintah volume dari KSProxy, decoder harus menambahkan beberapa kunci registri dalam skrip penyiapannya dan mendukung kumpulan properti KSPROPSETID_Wave .

Buat beberapa kunci registri baru untuk 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.

Untuk menerapkan kontrol volume, driver juga harus mendukung KSPROPSETID_Wave, bersama dengan KsProperty.Id = KSPROPERTY_WAVE_VOLUME. Properti ini diteruskan ke driver melalui metode IKsPropertySet::Get dan IKsPropertySet::Set . Bidang LeftAttenuation dan RightAttentuation menentukan volume speaker kiri/kanan sebagai nilai linier dari 0x0000 ke 0xffff.

Antarmuka dan Spesifikasi Decoder