所以我知道相机的默认行为是在拍照时暂停。我试图覆盖此行为,并在我在后台拍摄多张照片时让相机预览继续运行。
无论如何要做到这一点?
我还补充说我正在使用相机预览,而不是相机意图
答案 0 :(得分:2)
我的应用程序实际上使用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());
}
});
答案 1 :(得分:0)
我假设您要实现全景应用。 1.如果你想实现像三星相机这样的应用程序,你必须修改原生相机代码。但是,它不是开源的。 2.如果要在Java中实现它,可以参考Android的Panorama source code。