IMFExtendedCameraControl 接口 (mfidl.h)
此接口用于配置捕获设备的扩展属性。 支持的属性和功能在 ksmedia.h 中定义的头文件中定义为具有命名约定 KSCAMERA_EXTENDEDPROP_常量。
继承
IMFExtendedCameraControl 接口继承自 IUnknown 接口。
方法
IMFExtendedCameraControl 接口具有这些方法。
IMFExtendedCameraControl::CommitSettings 将配置的控件设置提交到相机驱动程序。 |
IMFExtendedCameraControl::GetCapabilities 查询捕获设备支持的属性功能。 |
IMFExtendedCameraControl::GetFlags 在捕获设备上查询属性标志。 |
IMFExtendedCameraControl::LockPayload 锁定捕获设备控件中包含的内部有效负载缓冲区,以启用查询或更改有效负载。 |
IMFExtendedCameraControl::SetFlags 设置捕获设备上的属性标志。 |
IMFExtendedCameraControl::UnlockPayload 解锁捕获设备控件中包含的原始有效负载。 |
备注
通过调用 IMFExtendedCameraController::GetExtendedCameraControl 获取此接口的实例
不支持的属性
请注意,此 API 不支持某些 KSCAMERA_EXTENDEDPROP_ 属性。 其功能只能通过 WinRT 媒体捕获 API 由客户端应用访问。
KSPROPERTY_CAMERACONTROL_EXTENDED_WARMSTART
此属性的行为通过以下 WinRT API 公开:
- PrepareLowLagPhotoCaptureAsync
- PrepareLowLagRecordToCustomSinkAsync
- PrepareLowLagRecordToStorageFileAsync
- PrepareLowLagRecordToStreamAsync
这些 API 会导致使用所选媒体类型配置捕获管道,并将驱动程序引脚置于暂停状态,从而通知驱动程序获取为操作分配/配置的硬件资源。 这有助于通过预先加载资源准备来最大程度地降低延迟。
请注意,热启动功能是捕获设备的可选控件,因此,如果控件不可用,上述 API 将不会提供热启动行为。 这些 API 仍将配置捕获的接收器端,因此使用它们有一些好处。
KSPROPERTY_CAMERACONTROL_EXTENDED_PHOTOMODE
此属性的行为通过以下 WinRT API 公开:
这些 API 配置管道的捕获端和接收器端,并将驱动程序引脚置于运行状态,捕获帧但尚未将帧传递到管道。 启动捕获操作时,帧开始通过管道传递。
请注意,此功能是捕获设备的可选控件,因此,如果控件不可用,上述 API 将返回错误。
示例
以下示例演示如何设置 KSCAMERA_EXTENDEDPROP_VIDEOTORCH_ON 标志并提交设置。
if (FAILED(m_cameraController->GetExtendedCameraControl(MF_CAPTURE_ENGINE_MEDIASOURCE,
KSPROPERTY_CAMERACONTROL_EXTENDED_TORCHMODE,
cameraControl.put())))
{
// Return false to indicate that the Torch Mode control is not available.
return false;
}
ULONGLONG capabilities = cameraControl->GetCapabilities();
// Check if the torch can be turned on.
if (capabilities & KSCAMERA_EXTENDEDPROP_VIDEOTORCH_ON)
{
// Check if the torch is off.
if ((cameraControl->GetFlags() & KSCAMERA_EXTENDEDPROP_VIDEOTORCH_ON) == 0)
{
// Torch is off. Tell the camera to turn it on.
check_hresult(cameraControl->SetFlags(KSCAMERA_EXTENDEDPROP_VIDEOTORCH_ON));
// Write the changed settings to the driver.
check_hresult(cameraControl->CommitSettings());
}
}
要求
最低受支持的客户端 | Windows 10内部版本 20348 |
最低受支持的服务器 | Windows 10内部版本 20348 |
标头 | mfidl.h |