2017-02-09 78 views
0

我有一个使用旧相机API的应用程序。在大多数设备上一切正常,但是,有些设备甚至在拍摄图像后仍会继续预览。图片回调仍然被调用,但预览不会停止。我真的不想将图像数据转换为位图并显示它,因为它有一秒左右的延迟,看起来很糟糕。我想知道是否有任何解决方案可以解决不适用的设备问题?捕捉后摄像头API不停止

我捕捉按钮调用下面的方法

private void photoCapture() 
{ 
    if (mCamera == null) 
     return; 
    toggleBar(); 
    mCamera.takePicture(null, null, mPicture); 
    takenPicture = true; 
} 

这里是我的回调

private Camera.PictureCallback mPicture = new Camera.PictureCallback() { 
    @Override 
    public void onPictureTaken(byte[] data, Camera camera) { 
     imageData = data; 
     Bitmap bMap = BitmapFactory.decodeByteArray(data, 0, data.length); 
     if (currentCameraId == Camera.CameraInfo.CAMERA_FACING_FRONT) { 
      frontFacing = true; 
     } 
    } 
}; 

我下了深刻的印象,在takePicture方法将自动停止预览?没有?

感谢

+0

请发布您正在使用的代码。这里有一百万件事情可能是错误的。 –

+0

刚刚编辑。如果你需要其他东西,请告诉我。在不冻结的设备上,它仍然调用回调方法。只是不会像某些设备那样自动停止预览。 @bremen_matt – drew

回答

0

如果要显示表面预览相机,那么你应该调用camera.stopPreview()当你想预览停止。否则,预览将继续直到视图被销毁。