之前寫過android.hardware.Camera入坑之旅,現在適配Camera2。Camera2相對於Camera,坑位更多。比如說,Camera通過下面方法設置任意自定義參數
/**
* Sets an integer parameter.
*
* @param key the key name for the parameter
* @param value the int value of the parameter
*/
public void set(String key, int value) {
put(key, Integer.toString(value));
}
但是Camera2卻不能,必須設置已知的CaptureRequest或者底層支持的參數,否則就會直接掛掉,報Vendor不支持此參數。
1、拍照無法生成圖片和縮略圖
可能是由於縮略圖大小設置太大導致的
builder.set(CaptureRequest.JPEG_THUMBNAIL_SIZE, viewSize);
2、addTarget和Arrays.asList的目標是一一對應的
mPreviewRequestBuilder.addTarget(surface);
mPreviewRequestBuilder.addTarget(mImageReader.getSurface());
// Here, we create a CameraCaptureSession for camera preview.
mCameraDevice.createCaptureSession(Arrays.asList(surface, mImageReader.getSurface()),
new CameraCaptureSession.StateCallback()