2013-04-29 72 views
1

我有这个NativeCameraView:OpencvAndroidSDK:在运行时在前置摄像头和后置摄像头之间切换?

<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

由于访问下列变量在活动类:

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(); 
} 
相关问题