Russian Qt Forum
Ноябрь 22, 2024, 01:29 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QML Camera сажает батарею  (Прочитано 7347 раз)
Гурман
Гуру общения
******
Offline Offline

Сообщений: 1442

Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12


Просмотр профиля
« : Декабрь 03, 2019, 15:08 »

Поскольку в Android не работает QCameraViewfinder, а реализовывать его на OpenGL лениво, сделал камеру с видоискателем на QML. Всё работает как нужно, но... если приложение запущено, стала очень быстро садиться батарея. QML код с камерой подключен к QQuickWidget, привязанный к спрятанному при запуске приложения QWidget. Камера не нужна постоянно, QWidget с ней появляется при необходимости и прячется когда снова не нужна. Камера в QML коде отключается при запуске приложения - это проверено. Включается когда виджет с ней появляется, выключается когда он снова прячется. Но при этом всё равно батарея быстро садится, хотя Android и не показывает приложение в списке потребляющих много энергии. Такое может быть если батарею потребляет аппаратная часть. Сажает буквально катастрофически - днём вчера было 50% заряда, к вечеру осталось 10%. При нормальных условиях 40% у меня хватает на 3 суток. Батарея садится точно из-за моего приложения - если его закрываю, то всё становится нормально. Вчера зарядил смартфон вечером, сейчас днём 97% заряда, и я сегодня говорил по телефону, лазил в Интернет и тд. И точно садится из-за камеры - до её реализации такого не было. И это происходит даже если не делать видимым виджет с камерой. Может быть камера при выключении на самом деле не выключается, а выключается только видоискатель? То есть, аппаратно она продолжает работать, хотя в QML коде прописано
Код:
Camera {
    Component.onCompleted: stop()
...
}
Никто не разбирался с этим?
« Последнее редактирование: Декабрь 03, 2019, 15:11 от Гурман » Записан

2^7-1 == 127, задумайтесь...
clingerwinger
Новичок

Offline Offline

Сообщений: 7


Просмотр профиля
« Ответ #1 : Январь 14, 2020, 12:13 »

Судя по исходникам - stop() переводит камеру в LoadedState. В документации по состояниям явно упомянуто энергопотребление, так что лучше наверное переводить в UnloadedState, а не вызывать stop().
Записан
Гурман
Гуру общения
******
Offline Offline

Сообщений: 1442

Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12


Просмотр профиля
« Ответ #2 : Январь 14, 2020, 13:01 »

О... Энергопотребление в LoadedState явно не указано, указано только что его нет в UnloadedState. Считаю это ещё одним косяком документации.
Записан

2^7-1 == 127, задумайтесь...
qtkoder777
Частый гость
***
Offline Offline

Сообщений: 245


Просмотр профиля
« Ответ #3 : Сентябрь 30, 2021, 23:56 »

А она должна заряжать батарею?
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.063 секунд. Запросов: 22.