PDA

Просмотр полной версии : Проблемы с Camera


andrew911
09.04.2011, 01:15
Есть ли способ определить, занята ли камера другим приложением?

Согласно докам:

Camera.getCamera():
Если нет доступных или установленных камер, метод возвращает значение null.


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

Искал на форуме (http://www.flasher.ru/forum/showthread.php?t=116053) и в интернете. Информации очень мало, толи мало сталкиваются с подобной проблемой, толи это не настолько актуально.

AlexeiSulga
09.04.2011, 01:25
Если камера занята, тогда fps = 0. Можно делать тестовую запись и проверять фпс. Если 0, тогда камера занята.

andrew911
09.04.2011, 01:32
fps будет не 0.
currentFPS = 0, это да.
Но это выяснится уже после начала работы с камерой. И чтобы потом нормально возобновить работу, придется перезапускать браузер.

Wolsh
09.04.2011, 09:18
http://flasher.ru/forum/blog.php?b=338

andrew911
09.04.2011, 14:33
http://flasher.ru/forum/blog.php?b=338

Спасибо.

Пост видел, но там тоже камера сначала подключается (_video.attachCamera(_camera);)
, а потом уже определяется ее состояние, что приводит к тому, что когда камера освободится, она все равно не будет работать до перезапуска браузера. Видимо это единственный вариант.

3p.station
09.04.2011, 23:40
а в чем проблема то ?
если камера занята - запускаем, например, таймер и по тику снова делаем Camera.getCamera()

andrew911
09.04.2011, 23:53
Проблема описана выше:

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

Scanning the hardware for cameras takes time. When the runtime finds at least one camera, the hardware is not scanned again for the lifetime of the player instance. However, if the runtime doesn't find any cameras, it will scan each time getCamera is called.