我遇到了两个Android相机示例(older,newer),这些示例由Google的员工编写,他们在其中使用了不推荐使用的Camera1 API中的“间接字节缓冲区来存储图像”。 / p>
这包括一个预先初始化的Map<byte[], ByteBuffer> mBytesToByteBuffer
,并且,如果您需要将从相机(在byte[]
中)获得的预览帧转换为ByteBuffer
,则可以只需mBytesToByteBuffer.get(byte[])
即可。这样做的原因是“ ...因为这是以后调用本机代码的一种更有效的方法(避免了潜在的复制)。”
我发现查找应该非常快,因为它本质上是一个指针比较,但是据我所知,调用ByteBuffer.wrap(byte[])
并不会复制数据,因为返回的缓冲区由输入数组。这也应该很快。那么为什么需要间接字节缓冲区呢?