开发者

Using both cameras on android: "Fail to connect to camera service"

开发者 https://www.devze.com 2023-03-31 09:03 出处:网络
I\'m having troubles in accessing both (front and rear cameras at the same time). When turn on one camera it works.

I'm having troubles in accessing both (front and rear cameras at the same time). When turn on one camera it works. When i turn off first and turn on second it works. It gives following exception when i'm trying to turn on second camera while the first one is still showing the image.

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>(Cam开发者_如何转开发era.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)

In the documentaion i found a phrase that says:

public static Camera open (int cameraId)

Since: API Level 9 Creates a new Camera object to access a particular hardware camera. You must call release() when you are done using the camera, otherwise it will remain locked and be unavailable to other applications. Your application should only have one Camera object active at a time for a particular hardware camera.

.. but i'm having only one Camera object for one hardware camera and I wanted to create second object for second device.

  1. Does anybody know if this is possible (I'm using Android 2.3.3)?
  2. The place: android.hardware.Camera.native_setup(Native Method) can suggest that probably it is hardware/driver limitation - I'm using HTC Sensation.


This question basically says it cannot be done, but there may be some hack. This lack of response from google groups tells me most likely not. Here is another no-response post on google groups. Here is another post discussing the use of two cameras at the same time.

So my initial answer is no, it is not possible. BUT there may be some workaround, you just may have to find it yourself because it isn't discovered yet :).

EDIT 11/21/11: Unfortunately I found even further proof that it cannot be done, official from Sprint/HTC here. I realize you are using a Sensation, and this is an EVO 4g, but I'm sure it still applies.


Both cameras can be launched together as long as the hardware supports it. First you need to find the specific SoC used by your phone. You can find this by using the command

$ adb shell getprop

Chech the field [ro.board.platform], For Nexus 6 it returns

[ro.board.platform]: [msm8084]

Now you would need to check if this chipset has dual-ISP capability in hardware. For Qualcomm snapdragon chipsets you can find it here. For Samsung Exynos you can find it here. Now if your device supports dual camera and has latest OS installed in it, then you can use this application (ref) developed by Jens to verify if the dual camera works. It should probably work, it does work on my Nexus 6. Video: http://youtu.be/lt8N1Lpa9Zw

Thanks, Jai


I also wanted to do the same, but can't achieve it, its limitation of android os.

You HAVE TO RELEASE the connected camera object to be accessed by another.

The same problem is faced while accessing AudioRecord class, you just can't make an object of it until you release the first one.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号