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

Flutter使用torch_light库触发EnableTorchExistentUserException CAMERA_IN_USE (4)错误求助

Flutter使用torch_light库触发EnableTorchExistentUserException CAMERA_IN_USE (4)错误求助

兄弟,我之前也碰到过类似的相机占用问题,给你几个实用的排查和解决思路,你可以挨个试试:

  • 先排查项目内部的相机资源泄漏
    如果你的项目里还用到了camera插件(比如做扫码、拍照功能),大概率是相机控制器没有正确释放资源导致的。一定要在页面销毁或者不用相机的时候,调用dispose()方法释放相机实例:

    @override
    void dispose() {
      _cameraController?.dispose();
      super.dispose();
    }
    

    很多时候就是这个小细节没做好,导致相机一直被占用,torch_light拿不到控制权。

  • 优化你的flash方法,强制确保资源释放
    可以在开启闪光灯前先尝试关闭(避免之前的调用残留占用),同时加上状态检查,最后用finally块保证一定会关闭闪光灯,修改后的代码如下:

    flash() async {
      try {
        // 先尝试关闭闪光灯,清理可能的残留占用
        await TorchLight.disableTorch();
        // 先检查闪光灯是否可用
        if (await TorchLight.isTorchAvailable()) {
          await TorchLight.enableTorch();
          await Future.delayed(const Duration(milliseconds: 3000));
          await TorchLight.disableTorch();
        }
      } catch (e) {
        print('Flash Error: $e');
      } finally {
        // 无论成功失败,最后都尝试关闭,防止资源泄漏
        try {
          await TorchLight.disableTorch();
        } catch (e) {
          // 忽略关闭失败的情况
        }
      }
    }
    
  • 排查系统后台的相机占用进程
    有时候即使你关闭了所有前台应用,某些系统服务或者后台进程(比如微信的扫码后台服务、美颜相机的残留进程)还会拿着相机锁。你可以去Android的「设置-应用和服务-权限管理-相机」里查看最近使用相机的应用列表,把可疑的后台进程强制停止,或者直接重启设备试试——我之前就是重启后解决了这个莫名其妙的占用问题。

  • 检查权限配置是否完整
    确保你的AndroidManifest.xml文件里已经添加了必要的权限:

    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.FLASHLIGHT" />
    <uses-feature android:name="android.hardware.camera" />
    <uses-feature android:name="android.hardware.camera.flash" android:required="false" />
    

    另外,别忘了在Flutter端用动态权限申请插件(比如permission_handler)请求相机权限,确保应用已经获得了相机的使用权限。

  • 尝试升级或回退torch_light库版本
    有时候这类问题是库本身的bug导致的,你可以去pub.dev看看torch_light的最新版本,升级后试试;如果最新版本还有问题,回退到之前的稳定版本说不定能解决。

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.07 13:19:32