我希望从Android配置 camera2 API 以拍摄具有最高帧速率的照片,因此我尝试拍摄照片而不进行处理。
进行研究我发现最好的方法是使用参数 TEMPLATE_MANUAL 创建捕获请求。
创建CaptureRequest.Builder时:
final CaptureRequest.Builder capturebuilder =
cameraDevice.createCaptureRequest(CameraDevice.TEMPLATE_MANUAL);
我有这个错误: createDefaultRequest - 指定的templateId无效
'cameraDevice'来自:
private CameraDevice.StateCallback stateCallback = new CameraDevice.StateCallback() {
@Override
public void onOpened(CameraDevice camera) {
cameraDevice = camera;
startCamera();
}
@Override
public void onDisconnected(CameraDevice camera) {
}
@Override
public void onError(CameraDevice camera, int error) {
}
};
此处调用'stateCallBack':
public void openCamera()
{
CameraManager manager=(CameraManager)getSystemService(Context.CAMERA_SERVICE);
try
{
String camerId=manager.getCameraIdList()[0];
CameraCharacteristics characteristics=manager.getCameraCharacteristics(camerId);
StreamConfigurationMap map=characteristics.get(CameraCharacteristics.SCALER_STREAM_CONFIGURATION_MAP);
previewsize=map.getOutputSizes(SurfaceTexture.class)[0];
if(ContextCompat.checkSelfPermission(this, android.Manifest.permission.CAMERA) == PackageManager.PERMISSION_GRANTED) {
manager.openCamera(camerId,stateCallback,null);
}
}catch (Exception e)
{
e.printStackTrace();
}
}