共用方式為


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

備註

您應該只在相機主動串流時,才使用透過此屬性取得的快門狀態資料。 當應用程式偵測到關閉快門時,應用程式應該以邏輯方式回應。 這應該包含應用程式內訊息,以開啟快門。 應用程式不得 (自動採取動作,例如關閉相機) 或封鎖使用者執行動作 (例如,根據快門狀態開啟相機) ,因為並非所有相機在未串流時都會可靠地報告快門狀態。 應用程式不得將回報的快門狀態視為絕對隱私權指標 ,它只是相機認為關閉快門的通知。

適用於