解碼器磁片區控制
[與此頁面相關的功能 DirectShow是舊版功能。 它已被 MediaPlayer、 IMFMediaEngine和 Media Foundation 中的音訊/視訊擷取取代。 這些功能已針對Windows 10和Windows 11進行優化。 Microsoft 強烈建議新程式碼盡可能使用 MediaPlayer、 IMFMediaEngine 和 音訊/視訊擷取 ,而不是 DirectShow。 Microsoft 建議使用舊版 API 的現有程式碼盡可能重寫為使用新的 API。
應用程式會透過 IBasicAudio 介面控制音訊音量。 IBasicAudio介面處理常式是針對 KSProxy 提供的。 若要讓解碼器處理來自 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的線性值。
相關主題