【问题标题】:Camera API not stopping after capture拍摄后相机 API 未停止
【发布时间】:2017-06-27 22:43:13
【问题描述】:

我有一个使用旧相机 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 方法会自动停止预览?没有?

谢谢

【问题讨论】:

  • 请发布您正在使用的代码。这里可能有一百万件事是错误的。
  • 刚刚编辑。如果您需要其他任何东西,请告诉我。在它没有冻结的设备上,它仍然调用回调方法。只是不会像某些设备那样自动停止预览。 @bremen_matt

标签: java android api camera


【解决方案1】:

如果您正在显示一个表面来预览相机,那么当您希望预览停止时,您应该调用 camera.stopPreview()。否则,预览将继续进行,直到视图被销毁。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-06
    • 1970-01-01
    • 2012-09-23
    • 1970-01-01
    相关资源
    最近更新 更多