[Flutter:打开其他相机应用程序时相机断开连接异常

问题描述 投票:0回答:1

我目前正在使用flutter camera包来录制和保存视频,但是我注意到当在其他应用程序上打开设备的相机或在锁上使用了面部解锁时,相机预览会发生异常屏幕。

我尝试过使用didChangeAppLifecycleState可能会获取或重新初始化相机,但还没有成功。

      await model.fetchCameras();
      if (model.cameras.isNotEmpty) {
        await model.onNewCameraSelected(model.cameras[model.cameraIndex], true);

      }
    }

此问题目前herehere已打开,但尚未解决。

在另一个应用程序中打开设备的摄像头时,出现此异常。我尝试放置摄像机并在上面的示例代码中对其进行了初始化,但是它不起作用。

E/CameraCaptureSession(31468): android.hardware.camera2.CameraAccessException: CAMERA_DISCONNECTED (2): cancelRequest:458: Camera device no longer alive
E/CameraCaptureSession(31468):  at android.hardware.camera2.CameraManager.throwAsPublicException(CameraManager.java:814)
E/CameraCaptureSession(31468):  at android.hardware.camera2.impl.ICameraDeviceUserWrapper.cancelRequest(ICameraDeviceUserWrapper.java:95)
E/CameraCaptureSession(31468):  at android.hardware.camera2.impl.CameraDeviceImpl.stopRepeating(CameraDeviceImpl.java:1134)
E/CameraCaptureSession(31468):  at android.hardware.camera2.impl.CameraCaptureSessionImpl.close(CameraCaptureSessionImpl.java:526)
E/CameraCaptureSession(31468):  at android.hardware.camera2.impl.CameraCaptureSessionImpl$2.onDisconnected(CameraCaptureSessionImpl.java:737)
E/CameraCaptureSession(31468):  at android.hardware.camera2.impl.CameraDeviceImpl$7.run(CameraDeviceImpl.java:242)
E/CameraCaptureSession(31468):  at android.os.Handler.handleCallback(Handler.java:873)
E/CameraCaptureSession(31468):  at android.os.Handler.dispatchMessage(Handler.java:99)
E/CameraCaptureSession(31468):  at android.os.Looper.loop(Looper.java:214)
E/CameraCaptureSession(31468):  at android.app.ActivityThread.main(ActivityThread.java:6981)
E/CameraCaptureSession(31468):  at java.lang.reflect.Method.invoke(Native Method)
E/CameraCaptureSession(31468):  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
E/CameraCaptureSession(31468):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1445)
E/CameraCaptureSession(31468): Caused by: android.os.ServiceSpecificException: cancelRequest:458: Camera device no longer alive (code 4)
E/CameraCaptureSession(31468):  at android.os.Parcel.createException(Parcel.java:1980)
E/CameraCaptureSession(31468):  at android.os.Parcel.readException(Parcel.java:1934)
E/CameraCaptureSession(31468):  at android.os.Parcel.readException(Parcel.java:1884)
E/CameraCaptureSession(31468):  at android.hardware.camera2.ICameraDeviceUser$Stub$Proxy.cancelRequest(ICameraDeviceUser.java:402)
E/CameraCaptureSession(31468):  at android.hardware.camera2.impl.ICameraDeviceUserWrapper.cancelRe

关于如何强制相机包重新初始化的任何想法?

flutter dart android-camera2
1个回答
0
投票
在恢复重新初始化相机时

@override void didChangeAppLifecycleState(AppLifecycleState state) { if (state == AppLifecycleState.resumed) { _controller != null ? _initializeControllerFuture = _controller.initialize() : null; //on pause camera is disposed, so we need to call again "issue is only for android" } }

结帐https://medium.com/@navinkumar0118/take-a-picture-using-flutter-camera-a9c11d282632
© www.soinside.com 2019 - 2024. All rights reserved.