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");
}
}
Комментарии
Данные о состоянии затвора, полученные с помощью этого свойства, следует использовать только во время активной потоковой передачи камеры. Приложения должны реагировать логически при обнаружении закрытия затвора. Это должно включать в себя сообщение из приложения, чтобы открыть затвор. Приложения не должны автоматически выполнять действие (например, выключать камеру) или блокировать выполнение пользователем действия (например, включение камеры) в зависимости от состояния затвора, так как не каждая камера будет надежно сообщать о состоянии затвора, если не потоковая передача. Приложения не должны рассматривать сообщаемое состояние затвора как абсолютный индикатор конфиденциальности — это только уведомление о том, что камера считает, что затвор закрыт.