VideoDeviceController.CameraOcclusionInfo 属性
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
获取 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");
}
}
注解
在相机主动流式传输时,应仅使用通过此属性获取的快门状态数据。 应用在检测到快门已关闭时,应以逻辑方式做出响应。 这应包括用于打开快门的应用内消息。 应用程序不得自动执行 (操作,例如关闭相机) 或阻止用户执行 (操作,例如,根据快门状态打开相机) ,因为并非每台相机在未流式传输时都能可靠地报告快门状态。 应用程序不得将报告的快门状态视为绝对隐私指示器 - 它只是相机认为快门已关闭的通知。