在Android上使用两个摄像头:"无法连接到摄像头服务"

Jak*_*zok 11 video camera 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)
Run Code Online (Sandbox Code Playgroud)

在文档中我发现了一个短语:

public static Camera open(int cameraId)

从以下版本开始:API Level 9创建一个新的Camera对象以访问特定的硬件摄像头.使用完相机后必须调用release(),否则它将保持锁定状态并且对其他应用程序不可用. 您的应用程序一次只能为一个特定的硬件摄像头激活一个Camera对象.

..但我只有一个摄像头对象用于一个硬件摄像头,我想为第二个设备创建第二个对象.

  1. 有人知道这是否可行(我使用的是Android 2.3.3)?
  2. 这个地方:android.hardware.Camera.native_setup(Native Method)可以建议可能是硬件/驱动程序限制 - 我正在使用HTC Sensation.

Jac*_*ack 14

这个问题基本上说它无法完成,但可能存在一些黑客攻击.这种缺乏来自谷歌用户群响应的告诉我很可能不会.是谷歌小组的另一篇无回复帖子.是另一篇讨论同时使用两台摄像机的文章.

所以我最初的答案是否定的,这是不可能的.但是可能有一些解决方法,你可能必须自己找到它,因为它还没有被发现:).

编辑11/21/11:不幸的是,我发现Sprint/HTC官方在此处进一步证明无法做到这一点.我意识到你正在使用Sensation,这是一款EVO 4g,但我确信它仍然适用.