我在访问这两个(前后摄像头的同时)时遇到了麻烦。 当打开一个摄像头时,它可以工作。 当我先关闭然后再打开它时,它可以工作。 当我试图打开第二台相机而第一台仍在显示图像时,它会出现以下异常。
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)
在文档中我发现了一个短语:
public static Camera open(int cameraId)
自:API等级9 创建一个新的Camera对象以访问特定的硬件摄像头。 使用完相机后必须调用release(),否则它将保留 已锁定且无法用于其他应用程序。 您的应用程序一次只能有一个Camera对象处于活动状态 硬件相机。
..但我只有一个摄像头对象用于一个硬件摄像头,我想为第二个设备创建第二个对象。
- 有人知道这是否可行(我使用的是Android 2.3.3)?
- 这个地方:android.hardware.Camera.native_setup(Native Method)可以建议可能是硬件/驱动程序限制 - 我正在使用HTC Sensation。