2013-07-12 36 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在媒體播放過程中攝像頭正在運行!