Google Android - это несложно

Добро пожаловать на форум сайта startandroid.ru
Текущее время: 14 дек 2018, 07:14

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 16 ] 
Автор Сообщение
СообщениеДобавлено: 01 май 2013, 17:50 

Зарегистрирован: 13 апр 2013, 12:57
Сообщений: 29
Откуда: Санкт-Петербург
Благодарил (а): 2 раз.
Поблагодарили: 0 раз.
Нужен пример кода или ссылка на таковой, как запустить съемку фронтальной камерой без показа превью (или хотя бы с небольшим превью)? Задача по сути проста - получить доступ к камере из кода-сделать снимок-сохранить его (без взаимодействия с юзером).
Причем одна из проблем - поиск и включение фронтальной камеры в разных девайсках работает по разному. В частности проблемы с этим есть на Nexus 7 с Android 4.2.2 на борту.

ссылки по теме из того, что удалось нагуглить:
http://www.vogella.com/articles/Android ... ticle.html - хороший, полный тьюториал, но, к сожалению так и не смог заставить его работать на своем Nexus 7. Либо не находит камеру, либо крэш на Camera.open(n)
http://stackoverflow.com/questions/1252 ... nt-devices
http://stackoverflow.com/questions/1579 ... oesnt-work
http://stackoverflow.com/questions/1350 ... s-7-tablet

Сваять на их основе работающее на Nexus 7 решение пока не удалось. Может кто-то здесь уже это делал или сделает?


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 01 май 2013, 18:15 

Зарегистрирован: 21 мар 2013, 12:26
Сообщений: 267
Благодарил (а): 22 раз.
Поблагодарили: 19 раз.
Этот пример Вогеллы я пробовал.
На эмуляторе запускали?

_________________
Использование DDMS
Чтение и запись логов (LogCat)


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 02 май 2013, 12:24 

Зарегистрирован: 13 апр 2013, 12:57
Сообщений: 29
Откуда: Санкт-Петербург
Благодарил (а): 2 раз.
Поблагодарили: 0 раз.
=bor= писал(а):
На эмуляторе запускали?
нет, на реальном Nexus 7 запускал

а у вас пример на каком устройстве заработал?


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 02 май 2013, 13:51 

Зарегистрирован: 21 мар 2013, 12:26
Сообщений: 267
Благодарил (а): 22 раз.
Поблагодарили: 19 раз.
В том и дело, что тоже не работает. На эмуляторе, у меня Нексуса нет.
В том коде ошибки, например, в секции импорта MakePhotoActivity.java вот это зачем
Код: [ Загрузить ] [ Скрыть ]
  1. import de.vogella.cameara.api.R; 
??
Я его спросил об этом:
Цитата:
This relates to the code section under "Change the MakePhotoActivity class to the following" in the "3 Tutorial: Using the camera API". Your <<import de.vogella.cameara.api.R;>> it seems with anything not connected?
в Гугл-группе, так он вопрос не пропустил.

И ещё, в PhotoHandler.java у вас тоже это вылезает:
Изображение
?

И третье, вы смотрели его код к этому туториалу de.vogella.camera.api?
Там у него ещё 3 класса: AndroidFaceDetector.java, Constants.java и TextureViewActivity.java.

_________________
Использование DDMS
Чтение и запись логов (LogCat)


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 02 май 2013, 19:37 

Зарегистрирован: 13 апр 2013, 12:57
Сообщений: 29
Откуда: Санкт-Петербург
Благодарил (а): 2 раз.
Поблагодарили: 0 раз.
=bor= писал(а):
вот это зачем
Код: [ Загрузить ] [ Скрыть ]
  1. import de.vogella.cameara.api.R; 
?
это чтобы взять R.layout.main например из ресурсов. Опечатка только в слове cameara

Цитата:
И ещё, в PhotoHandler.java у вас тоже это вылезает:
Изображение
Это тоже мелочь, просто исправить в MakePhotoActivity:
Код: [ Загрузить ] [ Скрыть ]
  1. private final static String DEBUG_TAG = "MakePhotoActivity"; 
просто поменяйте private на public - все ок будет.
Цитата:
И третье, вы смотрели его код к этому туториалу de.vogella.camera.api?
Там у него ещё 3 класса: AndroidFaceDetector.java, Constants.java и TextureViewActivity.java.

Раньше не смотрел, сейчас глянул, на эмуляторе съемка пошла, по крайней мере выдал сообщение что сохранил фото. На Nexus 7 нет. Даже когда я исправил код, чтобы он находил фронтальную камеру, при попытке съемки падает так, что камера вообще в девайсе перестает работать до перезагрузки. (

Короче наверное зря я похвалил тьюториал этого Вогеллы - есть ощущение что у него там они просто собраны отовсюду и даже толком не оттестированы - опечатки, ошибки, невозможно скачать весь проект сразу, человек ради просмотров страниц наверное всё это затеял. Бизнес у него такой видимо.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 02 май 2013, 19:56 
Аватар пользователя

Зарегистрирован: 09 янв 2012, 14:45
Сообщений: 2386
Откуда: Самара
Благодарил (а): 102 раз.
Поблагодарили: 321 раз.
У меня есть решение с этой оперы для сохранения фотографий со всех камер без показа превью, но на нексусе не тестировал. Завтра либо послезавтра сброшу

_________________
Изображение

А тот ли ты путь выбрал, разработчик?
Хочешь знать ошибки ответ? Загляни в logcat!


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 02 май 2013, 21:13 

Зарегистрирован: 21 мар 2013, 12:26
Сообщений: 267
Благодарил (а): 22 раз.
Поблагодарили: 19 раз.
YuriK писал(а):
Это тоже мелочь, просто поменяйте private на public - все ок будет.
Да, я так и сделал.
Цитата:
Раньше не смотрел, сейчас глянул, на эмуляторе съемка пошла, по крайней мере выдал сообщение что сохранил фото. На Nexus 7 нет. Даже когда я исправил код, чтобы он находил фронтальную камеру, при попытке съемки падает так, что камера вообще в девайсе перестает работать до перезагрузки.
Вот это интересно. Я обратил внимание, что оно (приложение) в эмуляторе пишет, что не находит фронтальную камеру. Можно увидеть исправленный код?

_________________
Использование DDMS
Чтение и запись логов (LogCat)


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 02 май 2013, 21:15 

Зарегистрирован: 21 мар 2013, 12:26
Сообщений: 267
Благодарил (а): 22 раз.
Поблагодарили: 19 раз.
no-- писал(а):
У меня есть решение с этой оперы для сохранения фотографий со всех камер без показа превью, но на нексусе не тестировал. Завтра либо послезавтра сброшу
Очень интересно, ждём-с. :)

_________________
Использование DDMS
Чтение и запись логов (LogCat)


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 02 май 2013, 22:27 

Зарегистрирован: 13 апр 2013, 12:57
Сообщений: 29
Откуда: Санкт-Петербург
Благодарил (а): 2 раз.
Поблагодарили: 0 раз.
=bor= писал(а):
Вот это интересно. Я обратил внимание, что оно (приложение) в эмуляторе пишет, что не находит фронтальную камеру. Можно увидеть исправленный код?

Да, конечно, без проблем, там всё просто. В MakePhotoActivity onCreate идет проверка на наличие камеры
Код: [ Загрузить ] [ Скрыть ]
  1. // do we have a camera? 
  2. if (!getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA)  
  3.     && !getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_FRONT))  

Вторую проверку добавил я специально для Nexus 7. Просто фишка в том, что у него одна фронтальная камера, но getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA) всегда возвращает false. А вот FEATURE_CAMERA_FRONT возвращает что нужно.

no-- писал(а):
У меня есть решение с этой оперы для сохранения фотографий со всех камер без показа превью, но на нексусе не тестировал. Завтра либо послезавтра сброшу

Вот это было бы интересно в любом случае посмотреть. Присоединяюсь, тоже жду.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 03 май 2013, 00:40 

Зарегистрирован: 21 мар 2013, 12:26
Сообщений: 267
Благодарил (а): 22 раз.
Поблагодарили: 19 раз.
YuriK писал(а):
Вторую проверку добавил я специально для Nexus 7. Просто фишка в том, что у него одна фронтальная камера, но getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA) всегда возвращает false. А вот FEATURE_CAMERA_FRONT возвращает что нужно.
Странно, у меня сейчас после долгих танцев с бубном заработало без дополнительного FEATURE_CAMERA_FRONT. :D
На вот таком эмуляторе:
Изображение

_________________
Использование DDMS
Чтение и запись логов (LogCat)


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 03 май 2013, 17:11 

Зарегистрирован: 13 апр 2013, 12:57
Сообщений: 29
Откуда: Санкт-Петербург
Благодарил (а): 2 раз.
Поблагодарили: 0 раз.
=bor= писал(а):
Странно, у меня сейчас после долгих танцев с бубном заработало без дополнительного FEATURE_CAMERA_FRONT.
Вполне возможно. Без этого дополнения не проходит проверка как раз на реальном Nexus7, для него делал. К тому же у вас там версия 4.1.2, а на девайсе у меня 4.2.2. Но я не уверен что дело в версии, сейчас нет времени тестировать, но вполне возможно, что эмулятор просто не в курсе про такую особенность устройства, как неправильный ответ на запрос наличия FEATURE_CAMERA. Ведь по логике-то какая-то камера на девайсе есть и проверка эта должна проходить.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 03 май 2013, 18:10 

Зарегистрирован: 21 мар 2013, 12:26
Сообщений: 267
Благодарил (а): 22 раз.
Поблагодарили: 19 раз.
YuriK писал(а):
у вас там версия 4.1.2, а на девайсе у меня 4.2.2.

Сейчас попробовал на эмуле под API 17 (4.2.2) - тоже работает.
Если хотите, могу сбросить .apk. Проверите на реальном устройстве, чтобы исключить ошибки в коде.
ПС. Интересно, что фотки вверх ногами получаются. :shock:

_________________
Использование DDMS
Чтение и запись логов (LogCat)


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 03 май 2013, 19:40 
Аватар пользователя

Зарегистрирован: 26 июн 2012, 13:22
Сообщений: 3422
Откуда: UA
Благодарил (а): 11 раз.
Поблагодарили: 244 раз.
Цитата:
ПС. Интересно, что фотки вверх ногами получаются.

Не читал всю тему, обратил внимание только на последнее сообщение. Не давно проект был где как раз была такая проблема, все тонкости не помню но есть такая особенность что камера работает только в горизонтальном виде, или же после включения если пару раз перевернуть камеру то снимок не предсказуем. Такое проявлялось на разных телефонах, лечилось тем что после того как сфотографировали приходилось руками поворачивать изображение и пересохранять.

_________________
R.id.team
Политика на форуме запрещена


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 03 май 2013, 20:12 

Зарегистрирован: 21 мар 2013, 12:26
Сообщений: 267
Благодарил (а): 22 раз.
Поблагодарили: 19 раз.
rezak90 писал(а):
есть такая особенность что камера работает только в горизонтальном виде, или же после включения если пару раз перевернуть камеру то снимок не предсказуем. Такое проявлялось на разных телефонах, лечилось тем что после того как сфотографировали приходилось руками поворачивать изображение и пересохранять.

Да, тоже встречал в инете подобные вопли ещё со времён 2.3.) Похоже, дело в дровах камеры (у меня на ноуте). Подождём проверки .apk YuriK'ом, у него-то камера в Нексус встроенная, таких проблем быть не должно.

_________________
Использование DDMS
Чтение и запись логов (LogCat)


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 03 май 2013, 20:21 
Аватар пользователя

Зарегистрирован: 09 янв 2012, 14:45
Сообщений: 2386
Откуда: Самара
Благодарил (а): 102 раз.
Поблагодарили: 321 раз.
Реализовал в отдельной теме как наработку. Работа с камерой без взаимодействием с пользователем..
Решение проблемы с поворотом тоже можете там глянуть (правда не во всех случаях это будет работать, но в большинстве - да).

_________________
Изображение

А тот ли ты путь выбрал, разработчик?
Хочешь знать ошибки ответ? Загляни в logcat!


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 02 июн 2013, 10:05 

Зарегистрирован: 21 мар 2013, 12:26
Сообщений: 267
Благодарил (а): 22 раз.
Поблагодарили: 19 раз.
Это интересно: Usage of USB webcam with customized Galaxy Nexus (android 4.0.3)

P.S. Отсюда: USB devices with android Kanamaru Lab_ in Kogakuin Univ
Там и код есть.

_________________
Использование DDMS
Чтение и запись логов (LogCat)


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 16 ] 

Часовой пояс: UTC + 3 часа


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB