我正在开发一个android相机应用程序,我想在拍照之前传入捕获大小来配置相机。
这是我的代码:
try {
mCaptureRequestBuilder = cameraDevice.createCaptureRequest(CameraDevice.TEMPLATE_PREVIEW);
mCaptureRequestBuilder.addTarget(previewSurface);
InputConfiguration inputConfiguration = new InputConfiguration(1920, 1080, ImageFormat.JPEG); //error here.
cameraDevice.createReprocessableCaptureSession(inputConfiguration, Arrays.asList(previewSurface), new CameraCaptureSession.StateCallback() {
@Override
public void onConfigured(@NonNull CameraCaptureSession cameraCaptureSession) {
try {
cameraCaptureSession.setRepeatingRequest(mCaptureRequestBuilder.build(), null, handler);
} catch (CameraAccessException e) {
e.printStackTrace();
}
}
@Override
public void onConfigureFailed(@NonNull CameraCaptureSession cameraCaptureSession) {
Toast.makeText(getApplicationContext(), "Camera Preview Failed!!", Toast.LENGTH_SHORT).show();
}
}, null);
}
因此,我尝试在这里将输入配置传递给摄像头。我的问题是我在InputConfiguration
行上得到了一个错误。这是我的错误:
java.lang.IllegalArgumentException: input format 256 is not valid
我尝试了很多不同的ImageFormat
格式,比如JPEG,未知,NV21等等。这不管用。帮助我解决这个错误,如果我的方法在与相机的交互中是错误的,请告诉我。
发布于 2018-10-09 08:14:21
输入配置仅用于reprocessing用例,在这些用例中,您具有捕获的部分处理帧的应用程序级循环缓冲区。
当用户按下快门按钮时,您将其中一个捕获的帧发送回相机设备进行最终处理。输入配置用于选择返回到摄像机的路径的大小和格式。
对于简单的捕获应用程序,您只关心输出配置。
发布于 2020-05-28 21:50:12
这里描述了另一个令人遗憾的情况:https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html#REPROCESS_MAX_CAPTURE_STALL
检查你的相机是否支持重新处理,否则你根本不会通过“输入格式无效”,因为没有输入将被允许重新处理。
此外,如果没有这个键值,则表示Yuv再处理不可用:https://developer.android.com/reference/android/hardware/camera2/CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_YUV_REPROCESSING
https://stackoverflow.com/questions/52695544
复制相似问题