我正在使用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
谁能解释它是从哪里得到的?