【问题标题】:Find the App which is using front camera in Laptop using UWP/C#使用 UWP/C# 在笔记本电脑中查找使用前置摄像头的应用程序#
【发布时间】:2021-12-27 18:52:15
【问题描述】:

当相机已被另一个应用程序使用时,我必须隐藏相机预览并关闭切换按钮。为此,我使用_mediaCapture.Failed += MediaCapture_Failed; 事件在InitializeCameraAsync() 方法中捕获相机状态。 但是,当我非常快速地最小化和最大化 UWP 应用程序时,该事件正在引发并出现错误,例如对于它自己的同一个应用程序“正在使用相机”。 那么有什么方法可以找到当前哪个 App 正在使用 Camera 呢?

【问题讨论】:

  • 您的问题有什么更新吗?

标签: c# uwp


【解决方案1】:

那么有什么办法可以找到当前哪个 App 正在使用 Camera 呢?

不,没有办法确切知道哪个应用程序正在使用相机。但在 UWP 中,您可以在开始使用相机之前知道是否正在使用相机。

您可以为MediaCapture.CaptureDeviceExclusiveControlStatusChanged event 注册一个处理程序,只要设备的独占控制状态发生更改,就会引发该处理程序。然后您可以检查MediaCaptureDeviceExclusiveControlStatusChangedEventArgs.Status 属性以查看相机现在是否可用。

这是您可以参考的代码示例:

private async void _mediaCapture_CaptureDeviceExclusiveControlStatusChanged(MediaCapture sender, MediaCaptureDeviceExclusiveControlStatusChangedEventArgs args)
{
    if (args.Status == MediaCaptureDeviceExclusiveControlStatus.SharedReadOnlyAvailable)
    {
        ShowMessageToUser("The camera preview can't be displayed because another app has exclusive access");
    }
    else if (args.Status == MediaCaptureDeviceExclusiveControlStatus.ExclusiveControlAvailable && !isPreviewing)
    {
        await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, async () =>
        {
            await StartPreviewAsync();
        });
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多