1

我想实现一个图像阅读器,但它在第一次读取图像时会阻塞。

我真的不知道如何解锁这种情况。

Surface processSurface = reader.getSurface();
surfaces.add(processSurface);
recordRequestBuilder.addTarget(processSurface);

reader.setOnImageAvailableListener(new ImageReader.OnImageAvailableListener() {
    @Override
    public void onImageAvailable(ImageReader reader) {
      Log.v("ImageReader","Reading");
    //I want to do a process on the image here, but i don't want to 
    //block my UI
    }
},null);

我不明白,如果我写reader.aquireLatestImageor reader.aquireNextImage,它告诉我关闭阅读器。

如果我做一个reader.close之后,我得到了这个:

BufferQueue 已被废弃

4

2 回答 2

0

好的,我终于找到了问题所在。

reader.setOnImageAvailableListener(new ImageReader.OnImageAvailableListener() {
            @Override
            public void onImageAvailable(ImageReader reader) {
                Image mImage = reader.acquireNextImage();
                /**
                 * TODO
                 * Image Process
                 */

                mImage.close();
            }
        },null);
于 2015-06-15T23:02:48.580 回答
-1

如果您不想阻止 GUI 进行耗时的操作,您可以在后台运行任务。您可以使用 AsyncTasks 和处理程序 ( http://www.vogella.com/tutorials/AndroidBackgroundProcessing/article.html ) 或遵循 Android 的最佳实践之一:https://developer.android.com/training/best-background。 html

于 2015-06-15T21:45:52.320 回答