我正在尝试从TextureView
中获取每一帧,但很遗憾尝试失败了:
textureView.getBitmap();
慢性能导致的结果是有没有更快获取位图的方法。使用NDK是否更好?
寻找实际例子
我正在尝试从TextureView
中获取每一帧,但很遗憾尝试失败了:
textureView.getBitmap();
慢性能导致的结果是有没有更快获取位图的方法。使用NDK是否更好?
寻找实际例子
glReadPixels()
读取。然后可以将像素数据包装在Bitmap对象中(这可能涉及复制像素数据)。glReadPixels()
应该会更快。如果您的显示要求很简单(在View层之上或完全在其下),则可以将纹理直接渲染到SurfaceView上。因此,您可以将传入的帧直接传递给SurfaceTexture并将纹理渲染到SurfaceView上,在eglSwapBuffers()
之前调用glReadPixels()
以获取像素的副本。这将为您提供一个带有RGB像素的直接字节缓冲区,您可以从Java代码或C++中使用它。我没有确切的示例可提供,但各个部分可以在Grafika(https://github.com/google/grafika)中找到。 - fadden