【发布时间】:2015-03-13 13:37:04
【问题描述】:
我正在尝试使用较新的 camera2 API 编写自己的相机应用。 在这一点上,我只是想让应用程序在模拟 Nexus 5 的固定 640x480 SurfaceView 上显示相机开始。
这是我从 Logcat 得到的错误,以及相关代码: http://pastebin.com/sESf6C1p
我真的不知道这里出了什么问题,即使经过大量调试和一遍又一遍地阅读 API 文档。我发现一些证据表明我应该在调用我尝试使用 SystemClock.sleep(1000) 的 createCaptureSession (Android Camera - app passed NULL surface) 之前添加延迟,但无济于事。也不知道如何处理“eglCreateContext: EGL error: 0x3005”。
我在surfaceCreated 之后运行的surfaceChanged 回调中调用createCaptureSession,所以应该全部设置surface 不是吗?我不明白为什么 SDK 在内部传递一个空表面。
感谢任何提示!
【问题讨论】:
-
“应用程序通过 NULL 表面”是调试级别的消息。失败是来自
android.hardware.camera2.legacy.SurfaceTextureRenderer.configureEGLContext的 IllegalStateException,这似乎与 EGL 上下文有关。您是否在启用 GPU 仿真的情况下运行?您是否在真实设备上试用过您的应用?