Intereting Posts

Использование обеих камер на Android: «Не удалось подключиться к службе камеры»

У меня возникают проблемы с доступом к обоим (передним и задним камерам одновременно). При включении одной камеры он работает. Когда я выключаю сначала и включаю второе, это работает. Это дает следующее исключение, когда я пытаюсь включить вторую камеру, в то время как первая все еще показывает изображение.

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 (), когда вы закончите с помощью камеры, иначе он останется заблокированным и недоступным для других приложений. В вашем приложении должен быть включен только один объект камеры за определенную аппаратную камеру.

.. но у меня есть только один объект камеры для одной аппаратной камеры, и я хотел создать второй объект для второго устройства.

  1. Кто-нибудь знает, возможно ли это (я использую Android 2.3.3)?
  2. Место: android.hardware.Camera.native_setup (Native Method) может предполагать, что, вероятно, это ограничение аппаратного / драйвера – я использую HTC Sensation.

Solutions Collecting From Web of "Использование обеих камер на Android: «Не удалось подключиться к службе камеры»"

Этот вопрос в основном говорит, что это невозможно, но может быть какой-то хак. Это отсутствие ответа от групп google говорит мне, скорее всего, нет. Вот еще одно сообщение без ответа в группах google. Вот еще одно сообщение, в котором обсуждается использование двух камер одновременно.

Поэтому мой первоначальный ответ – нет, это невозможно. НО может быть какое-то обходное решение, вам просто нужно найти его самостоятельно, потому что он еще не обнаружен :).

EDIT 11/21/11: К сожалению, я нашел еще одно доказательство того, что это не может быть сделано, официальный представитель Sprint / HTC. Я понимаю, что вы используете Sensation, и это EVO 4g, но я уверен, что он по-прежнему применяется.

Обе камеры могут запускаться вместе, пока аппаратное обеспечение поддерживает его. Сначала вам нужно найти конкретный SoC, используемый вашим телефоном. Вы можете найти это, используя команду

 $ adb shell getprop 

Chech the field [ro.board.platform], для Nexus 6 возвращается

 [ro.board.platform]: [msm8084] 

Теперь вам нужно будет проверить, имеет ли этот набор микросхем возможность использования двух ISP-устройств на оборудовании. Для чипсетов Qualcomm Snapdragon вы можете найти его здесь . Для Samsung Exynos вы можете найти его здесь . Теперь, если ваше устройство поддерживает двойную камеру и оснащено последней ОС, вы можете использовать это приложение (ref), разработанное Jens, чтобы проверить, работает ли двойная камера. Вероятно, он работает, он работает на моем Nexus 6. Видео: http://youtu.be/lt8N1Lpa9Zw

Спасибо, Джай

Я также хотел сделать то же самое, но не могу этого добиться, его ограничение на android os.

У вас есть доступ к объекту подключенной камеры для доступа другим.

Такая же проблема возникает при доступе к классу AudioRecord, вы просто не можете сделать объект до тех пор, пока вы не отпустите первый.