VideoDeviceController.CameraOcclusionInfo 属性

定义

获取 CameraOcclusionInfo 对象,该对象可用于获取相机的当前遮挡状态,并在遮挡状态更改时接收通知。

public:
 property CameraOcclusionInfo ^ CameraOcclusionInfo { CameraOcclusionInfo ^ get(); };
CameraOcclusionInfo CameraOcclusionInfo();
public CameraOcclusionInfo CameraOcclusionInfo { get; }
var cameraOcclusionInfo = videoDeviceController.cameraOcclusionInfo;
Public ReadOnly Property CameraOcclusionInfo As CameraOcclusionInfo

属性值

捕获设备的 CameraOcclusionInfo

Windows 要求

设备系列
Windows 11 (在 10.0.22000.0 中引入)
API contract
Windows.Foundation.UniversalApiContract (在 v14.0 中引入)

示例

以下示例代码演示如何使用 CameraOcclusionInfo 类监视相机的遮挡状态。

protected override async void OnNavigatedTo(NavigationEventArgs e)
{
    await mediaCapture.InitializeAsync();

    var occlusionInfo = mediaCapture.VideoDeviceController.CameraOcclusionInfo;
    occlusionInfo.StateChanged += CameraOcclusionInfo_StateChanged;

}

private void CameraOcclusionInfo_StateChanged(CameraOcclusionInfo sender, CameraOcclusionStateChangedEventArgs args)
{
    if (args.State.IsOccluded)
    {
        String occlusionString = "";
        if (args.State.IsOcclusionKind(CameraOcclusionKind.Lid))
        {
            occlusionString = "Lid";
        }
        else if (args.State.IsOcclusionKind(CameraOcclusionKind.CameraHardware))
        {
            occlusionString = "Camera Hardware";
        }
        else
        {
            occlusionString = "Unknown";
        }
        Debug.WriteLine(String.Format("The camera view is blocked by {0}", occlusionString);
    }
    else
    {
        Debug.WriteLine("Camera is not occluded");
    }
}

注解

在相机主动流式传输时,应仅使用通过此属性获取的快门状态数据。 应用在检测到快门已关闭时,应以逻辑方式做出响应。 这应包括用于打开快门的应用内消息。 应用程序不得自动执行 (操作,例如关闭相机) 或阻止用户执行 (操作,例如,根据快门状态打开相机) ,因为并非每台相机在未流式传输时都能可靠地报告快门状态。 应用程序不得将报告的快门状态视为绝对隐私指示器 - 它只是相机认为快门已关闭的通知。

适用于