在Camera中获取图片的时候,会遇到acquireLatestImage() 与 acquireNextImage()选择,以下是对这两个方法的解读:
acquireLatestImage()
从ImageReader的队列中获取最新的Image ,删除旧images 。 如果没有新图像可用,则返回null 。如果已经close了,那么将不会是最新的数据图像。对于大多情况可以使用acquireNextImage(),它更加适合处理实时数据.。在使用这个方法读取图片的时候,要注意maxImages不能小于2,从字面上和上面的知识我们了解到它是获取一张,丢弃一张。如果小于2的话可能会导致预期丢弃失败
acquireNextImage()
从ImageReader的队列中获取下一个Image。 如果没有新图像可用,则返回null 。注意皮球,警告:考虑使用acquireLatestImage() ,因为它会自动释放较旧的图像,并允许运行较慢的处理最新的帧。 建议在批处理/后台处理中使用acquireNextImage() 。错误地使用此功能可能会导致图像出现延迟不断增加,然后是完全失速,看起来没有新的图像出现。