我創建了一個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)
任何幫助都非常感謝!在任何情況下