我正在使用android中的camera2 API,并试图理解我正在使用的这段代码。部分代码如下所示:
previewReader = ImageReader.newInstance(previewSize.getWidth(), previewSize.getHeight(),
ImageFormat.YUV_420_888, 4);
previewReader.setOnImageAvailableListener(imageListener, backgroundHandler);
// This adds another output surface but not sure where this surface comes from..
previewRequestBuilder.addTarget(previewReader.getSurface());
imageListener
是另一个类的对象,它实现android.media.ImageReader.OnImageAvailableListener
并且backgroundHandler
只是一个后台线程。我没有包括这两个的代码,或者previewRequestBuilder
因为它们对于理解我的问题似乎并不重要。
我进行了广泛的搜索,但似乎发生了一些神奇的事情,并previewReader
以某种方式在某个地方找到了一些表面。根据文档,要做getSurface()
的是:
获取一个
Surface
可用于为此生产Image
的ImageReader
谁能解释它是从哪里得到的?