【发布时间】:2014-11-23 13:16:36
【问题描述】:
我有这段代码(仅供实验):
public void captureFromCam(View v) throws CameraAccessException {
try {
cm.openCamera("0", new CameraDevice.StateCallback(){
@Override
public void onClosed(CameraDevice camera) {
super.onClosed(camera);
}
@Override
public void onError(CameraDevice camera, int error) {
}
@Override
public void onOpened(final CameraDevice cam) {
Log.d("CameraApp", "Camera Opened");
ImageReader ir = ImageReader.newInstance(800, 600, 256, 1);
Surface surface = ir.getSurface();
final ArrayList<Surface> l = new ArrayList();
l.add(surface);
try {
cam.createCaptureSession(l, new CameraCaptureSession.StateCallback() {
@Override
public void onConfigured(CameraCaptureSession session) {
Log.e("CameraApp", "Configured");
CaptureRequest.Builder builder = null, b2;
try {
builder = cam.createCaptureRequest(CameraDevice.TEMPLATE_STILL_CAPTURE);
} catch (CameraAccessException e) {
e.printStackTrace();
}
builder.addTarget(l.get(0));
CaptureRequest request = builder.build();
try {
session.capture(request, new CameraCaptureSession.CaptureCallback() {
@Override
public void onCaptureCompleted(CameraCaptureSession session, CaptureRequest request, TotalCaptureResult result) {
Log.e("CameraApp", "Captured");
}
}, null);
} catch (CameraAccessException e) {
e.printStackTrace();
}
}
@Override
public void onConfigureFailed(CameraCaptureSession session) {
}
}, null);
} catch (CameraAccessException e) {
e.printStackTrace();
}
}
@Override
public void onDisconnected(CameraDevice camera) {
}
}, null);
} catch (CameraAccessException e) {
e.printStackTrace();
}
}
有趣的部分是onCaptureCompleted,据我了解,结果不知何故是我的照片。
如何将此图片保存到文件中?或者如果不是我的图片,我的图片在哪里以及如何将其保存到文件中?
我知道这个问题已经得到解答,但这是 API 21,它与旧的非常不同。
【问题讨论】:
标签: android android-camera android-image