You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

UWP/C# 如何检测当前正在占用笔记本前置摄像头的应用程序

UWP摄像头自占用问题解决方案

核心问题答复

UWP 沙箱运行机制限制了应用的系统信息获取权限,没有公开的官方API可以直接查询当前正在占用摄像头的应用列表,也无法直接判定摄像头的占用方是否为当前应用自身。

自占用报错根因

你遇到的快速最小化再最大化触发的摄像头占用报错,属于资源释放时序问题:UWP应用最小化时系统会自动回收硬件设备资源,此时旧的MediaCapture实例还未完全释放摄像头资源,应用恢复时立刻触发的新初始化请求就会出现“自身占用自身”的冲突。

可行修复方案

  • 提前处理应用生命周期事件:监听CoreWindow.VisibilityChanged、Application.Suspending、Application.Resuming生命周期事件,应用失去焦点/进入挂起状态时,主动执行资源清理逻辑:
    1. 调用_mediaCapture.StopPreviewAsync()停止预览
    2. 调用_mediaCapture.Dispose()释放资源
    3. 将_mediaCapture实例置为null
  • 初始化前加状态管控:新增isCameraInitializing标志位,初始化时如果标志位为true就直接返回,避免并发触发多次初始化请求;初始化完成/失败后再重置标志位。
  • 报错后加重试逻辑:捕获到摄像头占用错误时,先延迟100200ms重试初始化操作,最多重试23次,绝大多数自占用场景重试后都可以正常初始化。
  • 重试全部失败后再执行兜底逻辑:隐藏摄像头预览、关闭切换按钮即可。

内容的提问来源于stack exchange,提问作者Sateesh Kumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 09:15:02