【发布时间】:2011-08-27 14:46:11
【问题描述】:
我无法同时访问这两个摄像头(前置和后置摄像头)。 打开一台相机时,它可以工作。 当我先关闭然后再打开时,它可以工作。 当我尝试打开第二个摄像头而第一个摄像头仍在显示图像时,它会出现以下异常。
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)
自:API 级别 9 创建一个新的 Camera 对象以访问特定的硬件摄像头。 使用完相机后必须调用 release() ,否则它将保留 锁定并且对其他应用程序不可用。 您的应用程序一次应该只有一个相机对象处于活动状态 硬件摄像头。
.. 但我只有一个相机对象用于一个硬件相机,我想为第二个设备创建第二个对象。
- 有人知道这是否可行(我使用的是 Android 2.3.3)吗?
- 地点:android.hardware.Camera.native_setup(Native Method) 可能表明它可能是硬件/驱动程序限制 - 我正在使用 HTC Sensation。
【问题讨论】:
-
这并不完全是重复的,但相关主题的讨论要多得多:Using both front and back cameras simultaneously android
-
Android10 新增多摄像头支持。他们在此视频中包含了说明:youtube.com/watch?v=u38wOv2a_dA