我知道这个问题之前已被问过很多次了.一年多前我曾找过它,但没有找到任何东西,所以如果有任何新的想法/方法或黑客,再次发布这个问题.
我希望能够在Android设备中捕获来自两个摄像头(正面和背面)的视频.
我现在唯一想到的是每隔0.1秒如何在正面和背面之间切换,但是我从来没有能够编码.请给我任何人的帮助.
另一个想法是 - 视频通常以每秒15或30帧的速度捕获.假设它是每秒30帧.如果有一种方法可以将这些帧交替到正面和背面,那么我们可以在前面每秒15帧,在后面视频每秒15帧.这可能吗?如果是,那怎么样?请建议.音频怎么了?也许我们可以将音频限制为只有一个视频录制(正面或背面).
我在访问这两个(前后摄像头的同时)时遇到了麻烦.当打开一个摄像头时,它可以工作.当我先关闭然后再打开它时,它会起作用.当我试图打开第二台摄像机而第一台摄像机仍然显示图像时,它会出现以下异常.
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对象.
..但我只有一个摄像头对象用于一个硬件摄像头,我想为第二个设备创建第二个对象.