我在访问两个(前面和后方同时摄像头)有困难。当打开一台相机时,它就工作了。当我第一次关掉,第二次打开,它就起作用了。当我试图打开第二个相机时,当第一个相机还在显示图像时,它给出了以下的例外情况。
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创建一个新的摄像机对象来访问特定的硬件摄像机。当您使用相机完成时,您必须调用remain (),否则它将保持锁定状态,并且无法用于其他应用程序。您的应用程序应该一次只激活一个摄像机对象,用于特定的硬件摄像机.。
。。但是我只为一个硬件相机有一个摄像头对象,我想为第二个设备创建第二个对象。
发布于 2011-08-27 17:00:42
发布于 2015-10-17 16:07:08
只要硬件支持,这两台相机就可以一起发射。首先,您需要找到您的手机使用的特定SoC。您可以通过使用以下命令找到这一点
$ adb shell getprop切赫字段ro.board.platform,对于Nexus 6它返回
[ro.board.platform]: [msm8084]现在您需要检查这个芯片组在硬件上是否具有双ISP功能。对于高通Snap龙芯片组,您可以找到它的这里。对于三星Exynos,你可以找到它的这里。现在,如果您的设备支持双摄像机,并且安装了最新的操作系统,那么您可以使用由(参考文献)开发的应用程序延斯来验证双摄像机是否工作。它可能会工作,它确实工作在我的Nexus 6。视频:http://youtu.be/lt8N1Lpa9Zw。
谢谢你,杰
发布于 2014-01-30 12:25:13
我也想做同样的事情,但无法实现,这是它对android操作系统的限制。
您必须释放连接的照相机对象才能被另一个人访问。
在访问AudioRecord类时也会遇到同样的问题,在发布第一个对象之前,您无法对其设置一个对象。
https://stackoverflow.com/questions/7215230
复制相似问题