gpt4 book ai didi

android - ImageReader Android 无法读取任何图像

转载 作者:行者123 更新时间:2023-11-30 02:04:46 24 4
gpt4 key购买 nike

我正在尝试在我的应用程序上实现一个 ImageReader,但我不知道为什么,他什么都不读。

List<Surface> surfaces = new ArrayList<Surface>();

Surface previewSurface = new Surface(texture);
previewRequestBuilder.addTarget(previewSurface);
recordRequestBuilder.addTarget(previewSurface);
surfaces.add(previewSurface);

Surface recorderSurface = mediaRecorder.getSurface();
surfaces.add(recorderSurface);

ImageReader mImageReader = ImageReader.newInstance(previewSize.getWidth(),previewSize.getHeight(), ImageFormat.JPEG,5);
Surface processSurface = mImageReader.getSurface();
surfaces.add(processSurface);
mImageReader.setOnImageAvailableListener(new ImageReader.OnImageAvailableListener() {
@Override
public void onImageAvailable(ImageReader reader) {
Log.v("ImageReader ","An Image");
}
},null);

cameraDevice.createCaptureSession(surfaces, new CameraCaptureSession.StateCallback() {

@Override
public void onConfigured(CameraCaptureSession cameraCaptureSession) {
captureSession = cameraCaptureSession;
updateRequest(PREVIEW_REQUEST);
}

@Override
public void onConfigureFailed(CameraCaptureSession cameraCaptureSession) {
Activity activity = getActivity();
if (null != activity) {
Toast.makeText(activity, "Failed", Toast.LENGTH_SHORT).show();
}
}
}, null);
} catch (CameraAccessException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

所以我得到了 3 个 Surface:用于显示的 previewSurface,用于录制视频的 recordSurface 和用于获取图像(使用 ImageReader)并处理它的 processSurface。但我什至没有看到我的 Log.v 一次!

预先感谢您的回答。

最佳答案

您的代码可能无法正常工作至少有两个原因:

  1. OnImageAvailableListener 的实现中,在 onImageAvailable(ImageReader reader) 方法中,您没有读取和关闭图像。根据我的经验,如果您不从阅读器读取/关闭图像,相机就会卡住。如果是这种情况,那么您应该至少看到一次日志消息(甚至更多次)。我建议您将读取和关闭图像添加到方法中:
    @Override     public void onImageAvailable(ImageReader reader) {         Log.v("ImageReader ","An Image");         Image img = reader.acquireNextImage();         img.close();     }
  1. 您的设备可能不支持特定大小和类型的 3 条数据流(针对 3 个表面)。您应该验证您的设备有哪些支持(LEGACY/LIMITED/FULL)。例如,您的设备可能不支持最大尺寸的 3 个同步流。检查documentation .有漂亮的表格显示可能的情况,并仔细检查您的尺寸/类型是否合适。

关于android - ImageReader Android 无法读取任何图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30853363/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com