Partilhar via


VideoDeviceController.CameraOcclusionInfo Propriedade

Definição

Obtém um objeto CameraOcclusionInfo que pode ser usado para obter o estado de oclusão atual de uma câmera e receber notificações quando o estado de oclusão for alterado.

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

Valor da propriedade

O CameraOcclusionInfo para o dispositivo de captura.

Requisitos do Windows

Família de dispositivos
Windows 11 (introduzida na 10.0.22000.0)
API contract
Windows.Foundation.UniversalApiContract (introduzida na v14.0)

Exemplos

O código de exemplo a seguir ilustra o uso da classe CameraOcclusionInfo para monitorar o estado de oclusão da câmera.

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

Comentários

Você só deve usar os dados de estado do obturador obtidos por meio dessa propriedade enquanto a câmera está transmitindo ativamente. Os aplicativos devem responder de maneira lógica quando detectarem que o obturador está fechado. Isso deve incluir uma mensagem no aplicativo para abrir o obturador. Os aplicativos não devem executar uma ação automaticamente (por exemplo, desativar a câmera) ou impedir que o usuário faça uma ação (por exemplo, ativar a câmera) com base no estado do obturador, pois nem todas as câmeras relatarão de forma confiável o estado do obturador ao não transmitir. Os aplicativos não devem tratar o estado do obturador relatado como um indicador absoluto de privacidade – é apenas uma notificação de que a câmera acredita que o obturador está fechado.

Aplica-se a