1

我有这个 NativeCameraView :

<org.opencv.android.NativeCameraView
            android:id="@+id/tutorial1_activity_native_surface_view"
            android:layout_width="350px"
            android:layout_height="350px"
            android:layout_marginLeft="5dp"
            android:layout_marginTop="5dp"
            opencv:camera_id="front" />

通过更改opencv:camera_id="front"opencv:camera_id="back",我可以在设计时从前置摄像头更改为后置摄像头(我可以称之为编译时吗?!)
但是现在我需要在运行时在它们之间切换?可能吗?

4

1 回答 1

5

可以访问活动类中的以下变量:

private CameraBridgeViewBase mOpenCvCameraView; //exists as is in opencv samples
private int mCameraId = 0; //add this one

以下方法将切换视图。诀窍是禁用相机视图,设置相机索引(在我的情况下 0 和 1 都有效),然后重新启用相机视图。

private void swapCamera() {
    mCameraId = mCameraId^1; //bitwise not operation to flip 1 to 0 and vice versa
    mOpenCvCameraView.disableView();
    mOpenCvCameraView.setCameraIndex(mCameraId);
    mOpenCvCameraView.enableView();
}
于 2013-10-22T04:39:40.620 回答