CameraView没有切换

时间:2017-08-04 10:35:41

标签: android camera

我正在开发一款小型相机应用程序。

详细信息:

  

我有浮动动作按钮,可以从后面切换摄像机视图   从前到后再次。我有一个以上的按钮所以我有一个   在我的onClick方法中切换语句。

问题:

  

我使用if语句和整数来确定相机是否   面向后方或前方。 (理论上它应该工作,对吗?)但是当我   运行它,按钮的图标改变,这应该是   伴随着相机视图的变化。也是,之后   点击一次,它就会卡住,我无法改回来。

注意:我使用 Flurge camerKit库来访问相机。

任何人都可以指导我的代码中出现了什么问题吗?

提前感谢!

这是我的代码:

@Override
public void onClick(View v) {

    switch (v.getId()) {

        case R.id.floatingActionButton2:
            mDrawerLayout.openDrawer(Gravity.LEFT);
            break;

        case R.id.frontcam:

            if ((cameraFront % 2) == 0 ){ //by default int cameraFront = 1

                cameraView.setFacing(CameraKit.Constants.FACING_FRONT);
                frontCamera.setImageResource(R.mipmap.ic_camera_front_white_24dp);
                break;

            }

            else {

                cameraView.setFacing(CameraKit.Constants.FACING_BACK);
                frontCamera.setImageResource(R.mipmap.ic_camera_rear_white_24dp);
                break;

            }

//more code stuff

}
}

1 个答案:

答案 0 :(得分:0)

 private int getFrontCameraID() {
    PackageManager pm = getActivity().getPackageManager();
    if (pm.hasSystemFeature(PackageManager.FEATURE_CAMERA_FRONT)) {
        return CameraInfo.CAMERA_FACING_FRONT;
    }
    return getBackCameraID();
}

按下按钮

 public void onClick(View v) {
            if (mCameraID == CameraInfo.CAMERA_FACING_FRONT) {
                mCameraID = getBackCameraID();
            } else {
                mCameraID = getFrontCameraID();
            }
            restartPreview();
        }
    });

  private void restartPreview() {
    try {
        if (mCamera != null) {
            stopCameraPreview();
            mCamera.release();
            //mCamera = null;
        }
        getCamera(mCameraID);
        startCameraPreview();
    } catch (Exception e) {
        e.printStackTrace();
    }
}