解码器音量控制
[与此页面关联的功能 DirectShow 是旧版功能。 它已被 MediaPlayer、 IMFMediaEngine 和 Media Foundation 中的音频/视频捕获所取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能在 Media Foundation 中使用 MediaPlayer、 IMFMediaEngine 和 音频/视频捕获 ,而不是 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::Get 和 IKsPropertySet::Set 方法传递给驱动程序。 LeftAttenuation 和 RightAttentuation 字段将左/右扬声器音量指定为从0x0000到0xffff的线性值。
相关主题