调用 createCaptureSession 时出现 Android camera2 API 错误

mad*_*ing 5 java android android-camera

试图让 camera2 API 工作,但在尝试创建捕获会话时遇到一些异常。Surface 列表包含一个非空 Surface。API 文档声明最后一个参数可以保留为 null 以使用当前线程的循环程序。我也尝试过创建一个单独的线程来执行此操作,但没有解决。这一切都发生在运行 Lollipop 的 Galaxy Note 5 上

public void onOpened(CameraDevice camdev){
if(camdev!=null) {
    try {
        CaptureRequest.Builder captureRequest = camdev21.createCaptureRequest(CameraDevice.TEMPLATE_PREVIEW);
        captureRequest.addTarget(imageSurfaceList.get(0));
        camdev.createCaptureSession(imageSurfaceList, new CaptureSessionStateHandler(), null);
    } catch (CameraAccessException e) {
        e.printStackTrace();
}
}
Run Code Online (Sandbox Code Playgroud)

有什么线索吗?难道是三星的 Camera2 实现很糟糕,我应该使用折旧的 Camera 类(我已经让它工作了)?

11-20 00:24:15.620 3097-3651/? E/CameraDeviceClient:beginConfigure:尚未实现。

11-20 00:24:15.620 3097-4969/? E/CameraDeviceClient: createStream: bufferProducer 不能为空

11-20 00:24:15.620 25601-25601/? D/AndroidRuntime:关闭虚拟机

11-20 00:24:15.620 25601-25601/? E/AndroidRuntime:致命异常:主要

11-20 00:24:15.620 25601-25601/? E/AndroidRuntime:进程:com.made4engineering.socialselfieapp,PID:25601

11-20 00:24:15.620 25601-25601/? E/AndroidRuntime:java.lang.IllegalArgumentException:传递给相机服务的参数错误

11-20 00:24:15.620 25601-25601/? E/AndroidRuntime:在 android.hardware.camera2.utils.CameraBinderDecorator.throwOnError(CameraBinderDecorator.java:114)

11-20 00:24:15.620 25601-25601/? E/AndroidRuntime:在 android.hardware.camera2.utils.CameraBinderDecorator$CameraBinderDecoratorListener.onAfterInvocation(CameraBinderDecorator.java:73)

11-20 00:24:15.620 25601-25601/? E/AndroidRuntime:在 android.hardware.camera2.utils.Decorator.invoke(Decorator.java:81)

11-20 00:24:15.620 25601-25601/? E/AndroidRuntime:在 java.lang.reflect.Proxy.invoke(Proxy.java:397)

11-20 00:24:15.620 25601-25601/? E/AndroidRuntime:在 $Proxy2.createStream(Unknown Source)

11-20 00:24:15.620 25601-25601/? E/AndroidRuntime:在 android.hardware.camera2.impl.CameraDeviceImpl.configureOutputsChecked(CameraDeviceImpl.java:378)

11-20 00:24:15.620 25601-25601/? E/AndroidRuntime:在 android.hardware.camera2.impl.CameraDeviceImpl.createCaptureSession(CameraDeviceImpl.java:437)

11-20 00:24:15.620 25601-25601/? E/AndroidRuntime:在 com.made4engineering.socialselfieapp.CameraHandler$CameraStateHandler.onOpened(CameraHandler.java:471)

11-20 00:24:15.620 25601-25601/? E/AndroidRuntime:在 android.hardware.camera2.impl.CameraDeviceImpl$1.run(CameraDeviceImpl.java:118)

11-20 00:24:15.620 25601-25601/? E/AndroidRuntime:在 android.os.Handler.handleCallback(Handler.java:739)

11-20 00:24:15.620 25601-25601/? E/AndroidRuntime:在 android.os.Handler.dispatchMessage(Handler.java:95)

11-20 00:24:15.620 25601-25601/? E/AndroidRuntime:在 android.os.Looper.loop(Looper.java:145)

11-20 00:24:15.620 25601-25601/? E/AndroidRuntime:在 android.app.ActivityThread.main(ActivityThread.java:6897)

11-20 00:24:15.620 25601-25601/? E/AndroidRuntime:在 java.lang.reflect.Method.invoke(Native Method)

11-20 00:24:15.620 25601-25601/? E/AndroidRuntime:在 java.lang.reflect.Method.invoke(Method.java:372)

11-20 00:24:15.620 25601-25601/? E/AndroidRuntime:在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404)

11-20 00:24:15.620 25601-25601/? E/AndroidRuntime:在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)