Я начал работать с новым API-интерфейсом camera2.Камера не работает после запуска второй активности
Я запускаю предварительный просмотр камеры на TextureView
в моем первом действии. Через мой навигационный ящик можно запустить вторую операцию. Я хочу, чтобы это показало мне предварительный просмотр камеры в TextureView
. К сожалению, экран остается белым, и я не вижу изображения. Я не знаю, ошибки и не могу найти что-то по этому поводу:
5278-5414/de.application E/CameraDeviceGLThread-0﹕ Received exception on GL render thread:
java.lang.IllegalStateException: swapBuffers: EGL error: 0x300d
at android.hardware.camera2.legacy.SurfaceTextureRenderer.checkEglError(SurfaceTextureRenderer.java:487)
at android.hardware.camera2.legacy.SurfaceTextureRenderer.swapBuffers(SurfaceTextureRenderer.java:480)
at android.hardware.camera2.legacy.SurfaceTextureRenderer.drawIntoSurfaces(SurfaceTextureRenderer.java:681)
at android.hardware.camera2.legacy.GLThreadManager$1.handleMessage(GLThreadManager.java:103)
at android.os.Handler.dispatchMessage(Handler.java:98)
at android.os.Looper.loop(Looper.java:211)
at android.os.HandlerThread.run(HandlerThread.java:61) 06-01 23:00:44.258 5278-5414/de.application I/CameraDeviceState﹕ Legacy camera service transitioning to state ERROR
Я начинаю новая активность довольно просто, и функция для камеры в обоих Activitys более или менее то же самое.
Intent i = new Intent(MainActivityOld.this, FullScreenActivity.class);
startActivity(i);
Можете ли вы представить себе ошибку, которую я делаю? Мне нужно как-то остановить первый просмотр камеры?
Я делаю это, я начинаю все новое и рассматриваю новую деятельность так же, как и первое действие, и использую тот же алгоритм для запуска камеры, что и в первом действии. Является ли моя ошибка, что я не заканчиваю сеанс захвата камеры в первом действии? – Jonas
Да, вам обычно нужно отключить экземпляр камеры, если активность, в которой он находится, больше не отображается. Этого иногда можно избежать, но требует специальной обработки - если ваш код идентичен в обоих действиях, то закрытие камеры в первом действии является самым безопасным вариантом. –