Android: Camera2 Bad argument passed to camera service

浪尽此生 提交于 2019-12-05 09:45:09

You can only capture to a surface that is configured for the session, so you should prepare the surface before the session is created.

In the official document:

IllegalArgumentException if the request targets no Surfaces or Surfaces that are not configured as outputs for this session; ...

Just like there, you need to have the surface mImageReader.getSurface() ready when you create the session

           mCameraDevice.createCaptureSession(Arrays.asList(surface, mImageReader.getSurface()),
                new CameraCaptureSession.StateCallback() {
                    ...
                }, null);

official sample:

https://github.com/googlesamples/android-Camera2Basic/tree/master/Application/src/main/java/com/example/android/camera2basic

In Camera2 API,

Quoting from the documentation of CameraCaptureSession,

If a new session is created by the camera device, then the previous session is closed, and its associated onClosed callback will be invoked. All of the session methods will throw an IllegalStateException if called once the session is closed.

So, as the documentation implies, you are calling a closed session. find this out. I can help a bit more of you put more code.

And also, I hope that you are imitating the Camera2 API sample code.If not I suggest you to have a look at it.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!