【问题标题】:Android Camera2 picture display very slowAndroid Camera2图片显示很慢
【发布时间】:2016-12-08 10:47:45
【问题描述】:

我正在使用 android camera2 组件,但我无法理解为什么在拍照后需要很长时间才能将其显示在另一个活动中。基本上发生的事情是,当我拍照并保存它时,我打开了一个新的活动,应该显示所拍的照片,但它会在大约 5 秒后显示。然后我在日志中收到这些消息:

12-08 11:39:15.507 21995-22727/com.artlandapp.cameratest       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:530)
                                                                                   at android.hardware.camera2.legacy.SurfaceTextureRenderer.swapBuffers(SurfaceTextureRenderer.java:523)
                                                                                   at android.hardware.camera2.legacy.SurfaceTextureRenderer.drawIntoSurfaces(SurfaceTextureRenderer.java:727)
                                                                                   at android.hardware.camera2.legacy.GLThreadManager$1.handleMessage(GLThreadManager.java:105)
                                                                                   at android.os.Handler.dispatchMessage(Handler.java:98)
                                                                                   at android.os.Looper.loop(Looper.java:168)
                                                                                       at android.os.HandlerThread.run(HandlerThread.java:61)
12-08 11:39:15.507 21995-22727/com.artlandapp.cameratest I/CameraDeviceState: Legacy camera service transitioning to state ERROR
12-08 11:39:19.421 21995-22725/com.artlandapp.cameratest E/RequestThread-0: Timed out while waiting for request to complete.
12-08 11:39:19.421 21995-22725/com.artlandapp.cameratest W/CaptureCollector: Preview buffers dropped for request: 0
12-08 11:39:19.421 21995-22725/com.artlandapp.cameratest E/CameraDeviceState: Cannot receive result while in state: 0
12-08 11:39:19.433 21995-22725/com.artlandapp.cameratest E/CameraDeviceState: Cannot receive result while in state: 0
12-08 11:39:19.445 21995-22104/com.artlandapp.cameratest E/BufferQueueProducer: [SurfaceTexture-1-21995-3] queueBuffer: BufferQueue has been abandoned
12-08 11:39:19.446 21995-22006/com.artlandapp.cameratest E/BufferQueueProducer: [SurfaceTexture-1-21995-3] dequeueBuffer: BufferQueue has been abandoned
12-08 11:39:19.471 21995-22007/com.artlandapp.cameratest E/BufferQueueProducer: [SurfaceTexture-1-21995-3] cancelBuffer: BufferQueue has been abandoned
12-08 11:39:19.471 21995-22104/com.artlandapp.cameratest E/BufferQueueProducer: [SurfaceTexture-1-21995-3] cancelBuffer: BufferQueue has been abandoned
12-08 11:39:19.471 21995-22006/com.artlandapp.cameratest E/BufferQueueProducer: [SurfaceTexture-1-21995-3] cancelBuffer: BufferQueue has been abandoned
12-08 11:39:19.472 21995-22007/com.artlandapp.cameratest E/BufferQueueProducer: [SurfaceTexture-1-21995-3] cancelBuffer: BufferQueue has been abandoned
12-08 11:39:19.612 21995-21995/com.artlandapp.cameratest I/Choreographer: Skipped 245 frames!  The application may be doing too much work on its main thread.

我非常感谢任何类型的帮助或建议!

【问题讨论】:

    标签: java android android-fragments android-camera android-camera2


    【解决方案1】:

    您似乎没有使用 AsyncTask 来执行捕获操作。 你可以参考this链接看看对你有没有帮助。

    【讨论】:

    • 只是为了澄清-您建议将图像显示方法包装到 AsyncTask 中?当我拍摄图像时,我正在为最终活动创建一个新的意图,该活动应该只显示已拍摄的照片。我将 Uri 传递给 Intent Extras 中的照片,然后使用 Glide 库将其加载到 imageView 中。因此,根据您的说法,使用 Glide 加载应该在 AsyncTask 中完成?我会试试的
    • 您可以尝试一下,而无需实际查看您的代码,我无法向您提供更多建议。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-30
    • 2015-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-01
    • 1970-01-01
    相关资源
    最近更新 更多