Android TextureView.getBitmap()速度非常慢

Android TextureView.getBitmap()速度非常慢,android,Android,我有一个Android应用程序,配置了摄像头,可以将预览发送到TextureView。在我的SurfaceTextRelistener的OnSurfaceTextureUpdate方法中,我使用以下方法将预览帧作为位图拉出: textureView.getBitmap(existingBitmap); 它工作正常,但需要很长时间(对于720x1280图像,大约需要200-250毫秒)。看起来这应该快得多。关于如何提高此操作的性能,您有什么想法吗?使用此命令获取预览将从预览中生成一个新位图,这就

我有一个Android应用程序,配置了摄像头,可以将预览发送到TextureView。在我的SurfaceTextRelistener的OnSurfaceTextureUpdate方法中,我使用以下方法将预览帧作为位图拉出:

textureView.getBitmap(existingBitmap);

它工作正常,但需要很长时间(对于720x1280图像,大约需要200-250毫秒)。看起来这应该快得多。关于如何提高此操作的性能,您有什么想法吗?

使用此命令获取预览将从预览中生成一个新位图,这就是应用程序花费这么长时间的原因。我的建议是在本链接中介绍的后台线程中执行此操作:

它还允许您在onPostExecute函数中堆叠要求首先完成此操作的操作

这将允许主UI线程运行,并对用户在此期间可能需要执行的任何其他操作做出响应


这可能不是您想要的完美答案,但希望它能有所帮助。

您找到解决方案了吗?我的处境和你一样,还没有。您可能需要设置opengl上下文并从纹理读取它,但我还没有对此进行研究。让我知道你是否能想出一些办法。@ajselvig你能从opengl纹理中读取它吗。我找不到这样做的方法。不,我还没有真正研究它(有点偏离了方向)。我想我一直下意识地不想去做这件事,因为我很沮丧,这在一开始甚至是个问题。在HTC one上读取普通相机预览图片需要200毫秒。这应该作为bug提交到Android,时间不可接受,请您添加一个例子。谢谢