ICodecAPI 接口 (strmif.h)

[不再建议使用具有 DirectShow 的 CodecAPI 功能。 DirectShow 使用情况已被 MediaPlayerIMFMediaEngine取代,并在媒体基金会 音频/视频捕获。 这些功能已针对 Windows 11 和 Windows 10 进行了优化。 Microsoft强烈建议 MediaPlayerIMFMediaEngine以及媒体基础 音频/视频捕获,而不是 DirectShow。 Microsoft建议重写使用旧 API 的现有代码,以尽可能使用新 API。]

ICodecAPI 接口设置和检索编码器或解码器筛选器上的设置。

注意

通用 Windows 平台 (UWP) 应用不支持在 strmif.h 中声明的 API。 若要在 UWP 应用中使用 ICodecAPI,请使用 icodecapi.h中声明的版本。

遗产

ICodecAPI 接口继承自 IUnknown 接口。 ICodecAPI 也有以下类型的成员:

方法

ICodecAPI 接口具有这些方法。

 
ICodecAPI::GetAllSettings

GetAllSettings 方法获取编解码器的当前属性,并将其写入流。 (ICodecAPI.GetAllSettings)
ICodecAPI::GetDefaultValue

GetDefaultValue 方法获取编解码器属性的默认值。 (ICodecAPI.GetDefaultValue)
ICodecAPI::GetParameterRange

GetParameterRange 方法获取编解码器属性的值范围。 (ICodecAPI.GetParameterRange)
ICodecAPI::GetParameterValues

GetParameterValues 方法获取编解码器属性的可能值列表。 (ICodecAPI.GetParameterValues)
ICodecAPI::GetValue

GetValue 方法获取编解码器属性的当前值。
ICodecAPI::IsModifiable

给定编解码器的当前配置,IsModifiable 方法将查询编解码器属性是否可以更改。 (ICodecAPI.IsModifiable)
ICodecAPI::IsSupported

IsSupported 方法查询编解码器是否支持给定属性。 (ICodecAPI.IsSupported)
ICodecAPI::RegisterForEvent

RegisterForEvent 方法注册应用程序以从编解码器接收事件。 (ICodecAPI.RegisterForEvent)
ICodecAPI::SetAllDefaults

SetAllDefaults 方法将所有编解码器属性重置为其默认值。 (ICodecAPI.SetAllDefaults)
ICodecAPI::SetAllDefaultsWithNotify

SetAllDefaultsWithNotify 方法将所有编解码器属性重置为其默认值,并返回已更改的属性的列表。 (ICodecAPI.SetAllDefaultsWithNotify)
ICodecAPI::SetAllSettings

SetAllSettings 方法从流中读取编解码器属性,并在编解码器上设置它们。 (ICodecAPI.SetAllSettings)
ICodecAPI::SetAllSettingsWithNotify

SetAllSettingsWithNotify 方法从流中读取编解码器属性,在编解码器上设置它们,并返回已更改的属性列表。 (ICodecAPI.SetAllSettingsWithNotify)
ICodecAPI::SetValue

SetValue 方法设置编解码器属性的值。 (ICodecAPI.SetValue)
ICodecAPI::SetValueWithNotify

SetValueWithNotify 方法在编解码器上设置属性,并返回结果更改的其他属性的列表。 (ICodecAPI.SetValueWithNotify)
ICodecAPI::UnregisterForEvent

UnregisterForEvent 方法取消注册指定编码器事件的应用程序。 (ICodecAPI.UnregisterForEvent)

言论

此接口定义用于在编解码器(编码器或解码器)上设置属性的通用机制。 编解码器属性 是键/值对,其中键为 GUID,值为 VARIANTVARIANT 数据的解释取决于属性 GUID。 有关编解码器属性 GUID 的列表,请参阅 编解码器 API 属性

编解码器配置文件

编解码器可以选择将配置文件和功能信息存储在系统注册表中。 此信息使应用程序能够在设备枚举期间查询设备。 默认配置文件存储在以下注册表项中:
HKEY_LOCAL_MACHINE
   Software
      Classes
         CLSID
            Category
               Profiles
每个配置文件都是一个注册表项,其默认字符串是配置文件的文本说明。 每个值都有一个 GUID 名称,后跟一个包含数值 GUID 值的字符串值。 例如:
C++
  HLKM\Software\Classes\CLSID\<category>\Profiles\DVD
    default "HQ DVD"
    REG_SZ {...} = "0"
    REG_SZ {...} = "1234"
其中 {...} 是应用程序可以映射到其用户界面的属性 GUID。 Microsoft目前正在考虑一组标准配置文件的定义。

默认编解码器功能存储在 HLKM\Software\Classes\CLSID< 下;category>\Instance<筛选 CLSID>\Capabilities。 每个值都有一个 GUID 名称,后跟一个包含数值 GUID 值的字符串值。 例如:

C++
HLKM\Software\Classes\CLSID\<category>\Instance\<My DVD encoder>\Capabilities
     default "My DVD encoder"
     REG_SZ_MULTI {...}
其中 {...} 是应用程序可以映射到其用户界面的属性 GUID。

要求

要求 价值
最低支持的客户端 带 SP2 的 Windows XP [桌面应用 |UWP 应用]
支持的最低服务器 Windows Server 2003 R2 [桌面应用 |UWP 应用]
目标平台 窗户
标头 strmif.h (包括 Dshow.h)

另请参阅