Фронтальная камера без превью, в том числе на Nexus 7

Ответить
YuriK
Сообщения: 29
Зарегистрирован: 13 апр 2013, 12:57
Откуда: Санкт-Петербург

Фронтальная камера без превью, в том числе на Nexus 7

Сообщение YuriK » 01 май 2013, 17:50

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

=bor=
Сообщения: 267
Зарегистрирован: 21 мар 2013, 12:26

Re: Фронтальная камера без превью, в том числе на Nexus 7

Сообщение =bor= » 01 май 2013, 18:15

Этот пример Вогеллы я пробовал.
На эмуляторе запускали?

YuriK
Сообщения: 29
Зарегистрирован: 13 апр 2013, 12:57
Откуда: Санкт-Петербург

Re: Фронтальная камера без превью, в том числе на Nexus 7

Сообщение YuriK » 02 май 2013, 12:24

=bor= писал(а):На эмуляторе запускали?
нет, на реальном Nexus 7 запускал

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

=bor=
Сообщения: 267
Зарегистрирован: 21 мар 2013, 12:26

Re: Фронтальная камера без превью, в том числе на Nexus 7

Сообщение =bor= » 02 май 2013, 13:51

В том и дело, что тоже не работает. На эмуляторе, у меня Нексуса нет.
В том коде ошибки, например, в секции импорта MakePhotoActivity.java вот это зачем

Код: Выделить всё

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.

YuriK
Сообщения: 29
Зарегистрирован: 13 апр 2013, 12:57
Откуда: Санкт-Петербург

Re: Фронтальная камера без превью, в том числе на Nexus 7

Сообщение YuriK » 02 май 2013, 19:37

=bor= писал(а):вот это зачем

Код: Выделить всё

import de.vogella.cameara.api.R;
?
это чтобы взять R.layout.main например из ресурсов. Опечатка только в слове cameara
И ещё, в PhotoHandler.java у вас тоже это вылезает:
Изображение
Это тоже мелочь, просто исправить в MakePhotoActivity:

Код: Выделить всё

private final static String DEBUG_TAG = "MakePhotoActivity";
просто поменяйте private на public - все ок будет.
И третье, вы смотрели его код к этому туториалу de.vogella.camera.api?
Там у него ещё 3 класса: AndroidFaceDetector.java, Constants.java и TextureViewActivity.java.
Раньше не смотрел, сейчас глянул, на эмуляторе съемка пошла, по крайней мере выдал сообщение что сохранил фото. На Nexus 7 нет. Даже когда я исправил код, чтобы он находил фронтальную камеру, при попытке съемки падает так, что камера вообще в девайсе перестает работать до перезагрузки. (

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

Аватара пользователя
Mikhail_dev
Сообщения: 2386
Зарегистрирован: 09 янв 2012, 14:45
Откуда: Самара

Re: Фронтальная камера без превью, в том числе на Nexus 7

Сообщение Mikhail_dev » 02 май 2013, 19:56

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

=bor=
Сообщения: 267
Зарегистрирован: 21 мар 2013, 12:26

Re: Фронтальная камера без превью, в том числе на Nexus 7

Сообщение =bor= » 02 май 2013, 21:13

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

=bor=
Сообщения: 267
Зарегистрирован: 21 мар 2013, 12:26

Re: Фронтальная камера без превью, в том числе на Nexus 7

Сообщение =bor= » 02 май 2013, 21:15

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

YuriK
Сообщения: 29
Зарегистрирован: 13 апр 2013, 12:57
Откуда: Санкт-Петербург

Re: Фронтальная камера без превью, в том числе на Nexus 7

Сообщение YuriK » 02 май 2013, 22:27

=bor= писал(а):Вот это интересно. Я обратил внимание, что оно (приложение) в эмуляторе пишет, что не находит фронтальную камеру. Можно увидеть исправленный код?
Да, конечно, без проблем, там всё просто. В MakePhotoActivity onCreate идет проверка на наличие камеры

Код: Выделить всё

// do we have a camera?
if (!getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA) 
	&& !getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_FRONT)) 
Вторую проверку добавил я специально для Nexus 7. Просто фишка в том, что у него одна фронтальная камера, но getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA) всегда возвращает false. А вот FEATURE_CAMERA_FRONT возвращает что нужно.
no-- писал(а):У меня есть решение с этой оперы для сохранения фотографий со всех камер без показа превью, но на нексусе не тестировал. Завтра либо послезавтра сброшу
Вот это было бы интересно в любом случае посмотреть. Присоединяюсь, тоже жду.

=bor=
Сообщения: 267
Зарегистрирован: 21 мар 2013, 12:26

Re: Фронтальная камера без превью, в том числе на Nexus 7

Сообщение =bor= » 03 май 2013, 00:40

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

YuriK
Сообщения: 29
Зарегистрирован: 13 апр 2013, 12:57
Откуда: Санкт-Петербург

Re: Фронтальная камера без превью, в том числе на Nexus 7

Сообщение YuriK » 03 май 2013, 17:11

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

=bor=
Сообщения: 267
Зарегистрирован: 21 мар 2013, 12:26

Re: Фронтальная камера без превью, в том числе на Nexus 7

Сообщение =bor= » 03 май 2013, 18:10

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

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: Фронтальная камера без превью, в том числе на Nexus 7

Сообщение rezak90 » 03 май 2013, 19:40

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

=bor=
Сообщения: 267
Зарегистрирован: 21 мар 2013, 12:26

Re: Фронтальная камера без превью, в том числе на Nexus 7

Сообщение =bor= » 03 май 2013, 20:12

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

Аватара пользователя
Mikhail_dev
Сообщения: 2386
Зарегистрирован: 09 янв 2012, 14:45
Откуда: Самара

Re: Фронтальная камера без превью, в том числе на Nexus 7

Сообщение Mikhail_dev » 03 май 2013, 20:21

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


milonn
Сообщения: 1
Зарегистрирован: 27 май 2021, 07:26

Re: Фронтальная камера без превью, в том числе на Nexus 7

Сообщение milonn » 27 май 2021, 07:32

Mikhail_dev писал(а):
02 май 2013, 19:56
У меня есть решение с этой оперы для сохранения фотографий со всех chat камер без показа превью, но на нексусе не тестировал. Завтра либо послезавтра сброшу
This is working but After seen this hint I just checked the getNumberOfCameras result.

In my case "the nexus gives out an inadequate camera ID. So I am actually talking about the related trouble. more precisely, it accepts an inadequate camera ID in the open (id) method.

Ответить