У меня возникают проблемы с доступом к обеим (передним и задним камерам одновременно). Когда включается одна камера, она работает. Когда я выключаю сначала и включаю второй, он работает. Это дает следующее исключение, когда я пытаюсь включить вторую камеру, в то время как первая все еще показывает изображение.
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 Создает новый объект камеры для доступа к конкретной аппаратной камере. Вы должны вызвать release(), когда вы закончите с помощью камеры, иначе он останется заблокированы и недоступны для других приложений. В вашем приложении должен быть включен только один объект камеры за определенный период времени для определенного аппаратная камера.
.. но у меня есть только один объект Camera для одной аппаратной камеры, и я хотел создать второй объект для второго устройства.
- Кто-нибудь знает, возможно ли это (я использую Android 2.3.3)?
- Место: android.hardware.Camera.native_setup (Native Method) может предположить, что, вероятно, это ограничение аппаратных/драйверов - я использую HTC Sensation.