В начале марта запустил, наконец, на Play Store видеорегистратор,
который вместе с партнерами разрабатывали еще с осени. В общем, никакой магии:
работа с камерой, GPS, карты, медиаплеер, графопостроитель для статистики
скорости. Ну и кастомный UI, который готовил профессиональный художник.
Технически наибольшую сложность представляет работа с
камерой и сопровождающим ее MediaRecorder – Android SDK выдвигает своеобразные требования к их настройке, и, судя по
всему, некоторые производители смартфонов трактуют их по-своему. Стабильности во
включении записи видео на некоторых особо «чувствительных» аппаратах удалось
добиться только экспериментальным путем, переставляя порядок установки свойств
в MediaRecorder. Хотя и это не гарантирует 100% результат, в креш-репортах,
которые мы собираем с помощью ACRA,
иногда все еще проскакивают невразумительные коды ошибок инициализации.
Другая технически интересная деталь в этом приложении –
запись видео в фоновом режиме. Формально запись видео в фоне ставит под угрозу
приватность пользователя, и на странице поддержки Android даже
голосуют за нее как за отдельную фичу – ввести соответствующий <uses-permission>. Пока же приходится
делать костыль путем «сворачивания» SurfaceView с предпросмотром с камеры
(что, вероятно, должно гарантировать осведомленность пользователя о ведущейся
видеозаписи) в 1 точку на экране, помещенную в WindowManager . Такой трюк
работает на Android
2.*, но в Android 4 он крешится без
веских объяснений, потому здесь эту возможность мы пока отключили.