2011-08-27 6 views
11

두 카메라 모두에 액세스하는 데 문제가 있습니다 (동시에 전면 및 후면 카메라). 하나의 카메라를 켜면 작동합니다. 처음에 전원을 껐다가 다시 켜면 작동합니다. 첫 번째 카메라가 이미지를 계속 표시하는 동안 두 번째 카메라를 켤 때 다음 예외가 발생합니다. documentaion에서android에서 두 카메라 모두 사용 : "카메라 서비스에 연결하지 못했습니다."

E/AndroidRuntime(32325): FATAL EXCEPTION: main 
E/AndroidRuntime(32325): java.lang.RuntimeException: Fail to connect to camera service 
E/AndroidRuntime(32325): at android.hardware.Camera.native_setup(Native Method) 
E/AndroidRuntime(32325): at android.hardware.Camera.<init>(Camera.java:265) 
E/AndroidRuntime(32325): at android.hardware.Camera.open(Camera.java:226) 
E/AndroidRuntime(32325): at com.example.videostreamer.MainActivity$CameraHandler.start(MainActivity.java:116) 
E/AndroidRuntime(32325): at com.example.videostreamer.MainActivity$2.onClick(MainActivity.java:74) 
E/AndroidRuntime(32325): at android.view.View.performClick(View.java:2532) 
E/AndroidRuntime(32325): at android.widget.CompoundButton.performClick(CompoundButton.java:99) 

는 내가라는 문구를 발견

공공 정적 카메라 공개 (INT의 cameraId) 때문에

: 레벨 9 특정 액세스 할 수있는 새로운 카메라 객체를 생성 API 하드웨어 카메라. 카메라 사용을 마쳤 으면 release()를 호출해야합니다. 그렇지 않으면 이 잠겨져 다른 응용 프로그램에서 사용할 수 없게됩니다. 응용 프로그램은 특정 하드웨어 카메라에 대해 한 번에 하나의 Camera 객체 만 활성화해야합니다.

..하지만 저는 하나의 하드웨어 카메라에 대해 하나의 카메라 객체 만 가지고 있고 두 번째 장치의 두 번째 객체를 만들고 싶습니다.

  1. 이것이 가능한지 누구에게 알리니 (Android 2.3.3을 사용하고 있습니다)?
  2. 장소 : android.hardware.Camera.native_setup (네이티브 메소드)은 아마도 하드웨어/드라이버 제한이라고 제안 할 수 있습니다. HTC Sensation을 사용하고 있습니다.
+0

이 정확히 중복 아니라, 관련 항목의 더 많은 인기 논의가있다 : 그것은 내 넥서스 6 비디오에 작업을 수행, 작업 아마한다 앞뒤 카메라 동시에 안드로이드] (https://stackoverflow.com/q/11419940/192373) * –

답변

14

This 기본적으로는 할 수 없지만 해킹이있을 수 있습니다. This Google 그룹의 응답이 없으면 가장 가능성이 낮습니다. Here은 Google 그룹의 또 다른 응답 없음 게시물입니다. Here은 동시에 두 대의 카메라 사용에 대해 논의하는 또 다른 게시물입니다.

제 초기 대답은 아니오입니다. 따라서 불가능합니다. 하지만 몇 가지 해결 방법이있을 수 있습니다. 아직 발견되지 않았기 때문에 직접 찾아야 할 수도 있습니다. :)

EDIT 11/21/11 : 불행히도 Sprint/HTC here의 공무원이 수행 할 수 없다는 사실을 더욱 분명히 알았습니다. 당신이 센세이션을 사용하고 있다는 것을 알았습니다. EVO 4g이지만, 여전히 적용될 것입니다.

0

나는 또한 같은 것을하고 싶었지만 그것을 달성 할 수는 없었다. 안드로이드의 한계.

연결된 카메라 개체가 다른 카메라 개체에 액세스해야한다는 것을 알려야합니다.

AudioRecord 클래스에 액세스하는 동안 동일한 문제가 발생합니다. 첫 번째 릴리스 때까지는 객체를 만들 수 없습니다.

+0

이것은 운영 체제의 제한이 아닙니다; API는 Camera의 두 인스턴스를 동시에 열 수 없습니다. 두 대의 카메라를 열어 두지 않는 구현입니다. 유감스럽게도 일부 기기는 이러한 기능을 완벽하게 지원하지만 (예 : 삼성 S4 및 S5 휴대 전화) 제 3 자에게 노출시키지 않습니다. 반면 Snapdragon-801 기반 전화기는 종종 작동합니다. 자세한 내용은 여기를 참조하십시오 (http://stackoverflow.com/a/28811277/192373). –

2

하드웨어가 지원하는 한 두 카메라를 함께 시작할 수 있습니다. 먼저 휴대 전화에서 사용되는 특정 SoC를 찾아야합니다. 이 명령을 사용하여 찾을 수 있습니다

$ adb shell getprop 

Chech the field [ro.board.플랫폼]에서 Nexus 6를 반환합니다.

이제이 칩셋에 하드웨어의 이중 ISP 기능이 있는지 확인해야합니다. Qualcomm snapdragon 칩셋의 경우 here을 찾을 수 있습니다. Samsung Exynos의 경우 here입니다. 이제 장치가 듀얼 카메라를 지원하고 최신 OS가 설치된 경우이 응용 프로그램을 (ref)Jens으로 개발하여 이중 카메라가 작동하는지 확인할 수 있습니다. 모두 사용 [* : http://youtu.be/lt8N1Lpa9Zw

감사합니다, 재이

+0

안타깝게도 삼성 S4와 S5는 공개 된 API를 듀얼 카메라로 공개하지 않습니다. [Galaxy S4에서 전면 카메라와 후면 카메라를 동시에 캡처하는 방법은?] (http://stackoverflow.com/questions/17061045/how 투 - 캡처 - 양 - 앞뒤 카메라 - 인 - 갤럭시 - s4 - 동시) *. 또한 [** Samsung Developers ** forum] (http://developer.samsung.com/forum/thread/a/201/247737)에서 확인되었습니다. –

관련 문제