Поделиться через


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");
    }
}

Комментарии

Данные о состоянии затвора, полученные с помощью этого свойства, следует использовать только во время активной потоковой передачи камеры. Приложения должны реагировать логически при обнаружении закрытия затвора. Это должно включать в себя сообщение из приложения, чтобы открыть затвор. Приложения не должны автоматически выполнять действие (например, выключать камеру) или блокировать выполнение пользователем действия (например, включение камеры) в зависимости от состояния затвора, так как не каждая камера будет надежно сообщать о состоянии затвора, если не потоковая передача. Приложения не должны рассматривать сообщаемое состояние затвора как абсолютный индикатор конфиденциальности — это только уведомление о том, что камера считает, что затвор закрыт.

Применяется к