我有一个 Android 应用程序,其相机配置为将其预览发送到 TextureView。在我的 SurfaceTextureListener 的 onSurfaceTextureUpdated 方法中,我使用以下方法将预览帧作为位图拉出:
textureView.getBitmap(existingBitmap);
它工作正常,但需要很长时间(720x1280 图像大约需要 200-250 毫秒)。看起来这应该快得多。关于如何提高此操作的性能的任何想法?
我有一个 Android 应用程序,其相机配置为将其预览发送到 TextureView。在我的 SurfaceTextureListener 的 onSurfaceTextureUpdated 方法中,我使用以下方法将预览帧作为位图拉出:
textureView.getBitmap(existingBitmap);
它工作正常,但需要很长时间(720x1280 图像大约需要 200-250 毫秒)。看起来这应该快得多。关于如何提高此操作的性能的任何想法?
使用此命令获取预览会从预览中生成一个新的位图,这就是应用程序需要这么长时间的原因。我的建议是在此链接中解释的后台线程中执行此操作:
http://developer.android.com/reference/android/os/AsyncTask.html
它还允许您在 onPostExecute 函数中堆叠需要首先完成此操作的操作。
这将允许主 UI 线程运行并响应用户在此期间可能需要执行的任何其他操作。
这可能不是您正在寻找的完美答案,但希望它有所帮助。