我想拍多张照片,我正在使用这些代码。但它会在短时间内使屏幕冻结(停止并开始预览后)并使用户感到不舒服。 我该如何解决这个问题。谢谢你的关注。
PictureCallback jpegCallback = new PictureCallback() {
public void onPictureTaken(byte[] data, Camera camera) {
cpreview.mCamera.startPreview();
FileOutputStream outStream = null;
/*try {
outStream = new FileOutputStream(String.format(
"/sdcard/camtest/%d.jpg", System.currentTimeMillis()));
outStream.write(data);
outStream.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
}*/
}
};
如果没办法,我正在考虑录制视频,然后将其转换为图像(尽管浪费更多时间)。
答案 0 :(得分:1)
一些最新的手机,如nexus 4,samsung galaxy s5等,支持称为“zsl”(零快门延迟)的相机参数。
在常规图像捕捉序列中,相机HAL停止预览并拍照。但是设置此参数时,捕获图片时不会停止预览。并且图像将被捕获得相对更快。由于预览不会停止,您将看不到上述问题,也无需在图片回调中调用开始预览。
答案 1 :(得分:0)
没有办法让它无缝(尽管新手机上的暂停越来越小)。在拍摄图像以提供预览时,相机太忙了。
视频是一个不错的选择,但前提是你愿意牺牲很多图像质量。如果您担心空间浪费,可以在提取图像后删除原始视频。