安卓相机5.0以后加入了camera2类,但低版本还是用之前的camera1,所以直接选择camera1来开发!
直奔主题,在开发中遇到的坑!
1,安卓提供了camera.setPreviewCallbac这个回调写出这个回调后,在onPreviewFrame这里拿到摄像头获取的视频帧!
//cameraInst 相机对象
cameraInst.setPreviewCallback(new Camera.PreviewCallback() {
@Override
public void onPreviewFrame(byte[] bytes, Camera camera) { //这里的bytes即摄像头获取的视频帧
}
});
这里有个坑,在此获取的数据格式是有问题的,如果直接转bitmap是转不了的!这里找到一个方法转成bitmap,但是这里直接转的话拿到的图片角度是不正确的,具体还要看预览时官方的一个方法中获取的角度,
https://developer.android.com/reference/android/hardware/Camera.html
//这个方法就是官方给的解决办法拿到这里的角度,在转换时,旋转即可获取正确的位图!
//此方法为camera1设置正确预览使用
public static void setCameraDisplayOrientation(Activity activity,
int cameraId, android.hardware.Camera camer