2013-07-12 37 views
0

我创建了一个FragmentActivity(VideoFragActivity),其中包含一个VideoView。与此同时,我将OpenCV FaceDetection示例代码中的FDActivity更改为Fragment(FDFragment),并试图在VideoFragActivity期间运行该代码。奇怪的错误 - “似乎你的设备不支持相机..”

我偶然发现下面的链接,而我正在寻找帮助StackOverflow上: OpenCV's native camera in Android prevents video player from working,但它是没有答案

我的问题是,它实际上是可以在Android上有摄像头(在片段开始)在一个活动期间运行?在我的情况下,是否有可能使VideoFragActivity和FDFragment工作,以便在opencv人脸检测示例运行时播放视频?

编辑

当我改变FDFragment的高度和宽度要么WRAP_CONTENT,FILL_PARENT,或match_parent的XML,我的应用程序不会尝试当我改变高度,打开相机

无论其和宽度随机值(如50sp或100sp),它试图打开相机(呼叫onCameraViewStarted()),但给我的错误:

“看来你的设备不支持相机(或它被锁定) 。应用程序将被关闭“

我已检查我的清单中的权限是否正确放置,并且相机未被其他应用程序使用。有没有人有如何解决这个问题的想法?


这里是FDFragment代码(请让我知道如果我改变了OpenCV的活动示例代码到一个片段不正确地):

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){ 
      Log.i(TAG, "called onCreate"); 
      super.onCreateView(inflater, container,savedInstanceState); 
     getActivity().getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); 

      View view= inflater.inflate(R.layout.face_detect_surface_view, container, false); 
      return view; 

     } 

     @Override 
     public void onActivityCreated(Bundle savedInstanceState){ 
      super.onActivityCreated(savedInstanceState); 
      mOpenCvCameraView = (CameraBridgeViewBase) getView().findViewById(R.id.fd_activity_surface_view); 
      mOpenCvCameraView.setCvCameraViewListener(this); 

     } 

...

public void onCameraViewStarted(int width, int height) { 
     mGray = new Mat(); 
     mRgba = new Mat(); 
    } 

权限我在清单中添加了:

<uses-feature 
    android:name="android.hardware.camera" 
    android:required="false" /> 
<uses-feature 
    android:name="android.hardware.camera.autofocus" 
    android:required="false" /> 
<uses-feature 
    android:name="android.hardware.camera.front" 
    android:required="false" /> 
<uses-feature 
    android:name="android.hardware.camera.front.autofocus" 
    android:required="false" /> 
<uses-permission android:name="android.permission.CAMERA"/> 
<uses-permission android:name="android.permission.WAKE_LOCK"/> 
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 

<application (...etc) 

任何帮助都非常感谢!在任何情况下

回答

0

更新是好奇:

改变i。由具有带有整体布局的fragmentactivity走近这个方式,再添加媒体播放器为片段和面部检测作为一个单独的片段。

确实,您CAN在媒体播放过程中摄像头正在运行!