最近在做的几个项目都和摄像头有关,其中不乏图像识别的,但是拍照识别有时候感觉还是有些low,直接把画面一对准自己就识别了多好,就像zxing扫描二维码一样,于是上网查了很多资料,找到了
需要给camera对象设置一个 Camera.PreviewCallback,在这个回调中实现一个方法onPreviewFrame(byte[] data, Camera camera)
当然如果我们设置camera.setPreviewCallback(callback);在设置后onPreviewFrame这个方法会被一直调用,我们可以在摄像头对焦成功够设置
camera.setOneShotPreviewCallback(previewCallback);如果这样设置onPreviewFrame这个方法就会被调用一次,我们只要将其中的data取回做成bitmap来做相应的处理就行了
那么有人问了,为什么不在对焦成功后拍照呢,因为拍照后画面会顿一下,无论你再怎么设置那几个参数时间(具体名字忘了),也会有相当短暂的停顿,所以要借助onPreviewFrame这个方法来获取图像,那么直接上onPreviewFrame这个方法的代码吧
Bitmap bitmap;
public void runInPreviewFrame(byte[] data, Camera cam