Элемент управления громкости декодера
[Функция, связанная с этой страницей DirectShow, является устаревшей функцией. Он был заменен MediaPlayer, IMFMediaEngine, и аудио/ видео захвата в Media Foundation. Эти функции оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует использовать в новом коде MediaPlayer, IMFMediaEngine и аудио/видеозахват в Media Foundation вместо DirectShow, когда это возможно. Корпорация Майкрософт предлагает переписать существующий код, в котором используются устаревшие 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::Get и IKsPropertySet::Set . В полях LeftAttenuation и RightAttentuation 0x0000 по 0xffff 0xffff указаны тома левого и правого динамиков.
Связанные темы