因此,我知道相机的默认行为是在拍摄照片时暂停。我试图覆盖此行为,并在后台拍摄多张照片时继续运行相机预览。
反正有做到这一点吗?
我还要补充一点,我使用的是相机预览,而不是相机意图
最佳答案
我的应用程序实际上使用OCR,我需要拍摄几张照片/帧并传递到ocr,而相机的预览不会停止。
我想也许我在最初的问题中会更加清楚。但是出于对任何可能遇到类似问题的人的兴趣,我通过使用setPreviewCallback方法每2秒从相机获取帧来解决此问题,该方法返回一个字节数组,然后可以将其转换为位图。
mCamera.setPreviewCallback(new PreviewCallback() {
public void onPreviewFrame(byte[] _data, Camera _camera) {
int width = parameters.getPreviewSize().width;
int height = parameters.getPreviewSize().height;
ByteArrayOutputStream outstr = new ByteArrayOutputStream();
Rect rect = new Rect(0, 0, width, height);
YuvImage yuvimage = new YuvImage(_data,
ImageFormat.NV21, width, height, null);
yuvimage.compressToJpeg(rect, 100, outstr);
Bitmap bmp = BitmapFactory.decodeByteArray(
outstr.toByteArray(), 0, outstr.size());
}
});