Russian Qt Forum

Qt => Qt Quick => Тема начата: Гурман от Декабрь 03, 2019, 15:08



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


Название: Re: QML Camera сажает батарею
Отправлено: clingerwinger от Январь 14, 2020, 12:13
Судя по исходникам - stop() переводит камеру в LoadedState. В документации по состояниям (https://doc.qt.io/qt-5/qml-qtmultimedia-camera.html#cameraState-prop) явно упомянуто энергопотребление, так что лучше наверное переводить в UnloadedState, а не вызывать stop().


Название: Re: QML Camera сажает батарею
Отправлено: Гурман от Январь 14, 2020, 13:01
О... Энергопотребление в LoadedState явно не указано, указано только что его нет в UnloadedState. Считаю это ещё одним косяком документации.


Название: Re: QML Camera сажает батарею
Отправлено: qtkoder777 от Сентябрь 30, 2021, 23:56
А она должна заряжать батарею?