Продолжаю делать интервальный таймер для Android: версия 0.7.0, работа по пульсу
Всех приветствую.
Продолжаю делать свой интервальный таймер для Android. С основными возможностями приложения можно познакомиться в прошлом посте. В новой версии добавил работу по пульсу, оповещения о выходе за заданные пороги, тёмную тему и переработал интерфейс. В этом посте подробнее расскажу о работе по пульсу и немного технической части - как устроен режим совместимости со старыми Bluetooth-колонками.


Работа по пульсу
Иногда пульс используют как ориентир интенсивности тренировки. Например, во время бега или занятия на велотренажёре можно регулировать темп и нагрузку, чтобы придерживаться выбранного диапазона пульса. Это помогает контролировать усилие по ходу занятия.
В предыдущей версии приложения уже можно было подключить пульсометр, видеть текущий пульс и зону, а также продлевать отдых до заданного значения. В новой версии добавил оповещения по уровню пульса и управление отсчётом рабочего времени.
Оповещения о пульсе. Если нужно просто следить за выбранными границами, можно включить сигнал о низком или высоком пульсе либо оба сразу.
Отсчёт по пульсу. Интервальные таймеры обычно ориентированы на чередование работы и отдыха по времени. Поддержка пульсометра встречается реже, а там, где она есть, не всегда предусмотрено управление самим отсчётом - пульс может использоваться для отображения и оповещений. В новой версии таймера я добавил возможность начинать отсчёт после достижения заданного порога и, при необходимости, приостанавливать его при снижении пульса.
Например, задаём рабочий этап длительностью одну минуту и порог 130 ударов в минуту. Отсчёт начнётся, когда пульс достигнет 130. Далее возможны два варианта: таймер отсчитывает минуту независимо от изменений пульса либо приостанавливает отсчёт при снижении ниже порога и продолжает после возвращения к нему.
Настройки находятся в дополнительных параметрах карточки работы: порог начала отсчёта и переключатель паузы при снижении пульса.


Во время ожидания блок пульса на экране выделен легкой подсветкой. После достижения порога выделение снимается и, если звук включён, звучит короткий сигнал. Под таймером видно, ожидает ли приложение порог или отсчёт остановлен из-за снижения пульса.
Чтобы этап не затягивался, можно ограничить его общую длительность вместе с ожиданием и остановками отсчёта.
Остальные изменения
Из других изменений - тёмная тема, обновлённый главный экран и переработанные экраны тренировки и редактирования.
Улучшил представление плана и фактического выполнения в истории. Из меню карточки истории можно вернуться к тренировке для повтора.
Немного технической части. Звук на Bluetooth-колонке
В прошлом посте, я коротко упоминал режим совместимости со старыми Bluetooth-устройствами. Теперь подробнее расскажу, зачем он понадобился и как работает.
Режим нужен для некоторых колонок, которые обрезают начало коротких сигналов или воспроизводят их с заметной задержкой. Такое встречается иногда у старых Bluetooth-устройств. После тишины колонка «засыпает» и не сразу возобновляет воспроизведение: у длинного сигнала теряется начало, а короткий тик может пропасть целиком.
Отдельная проблема - задержка звука относительно экрана. Сигнал слышен полностью, но на телефоне уже начался следующий этап. Между запуском воспроизведения и звуком из колонки проходит время, и величина этой задержки зависит от связки телефона и аудиоустройства.
Режим совместимости позволяет настроить воспроизведение под колонку, чтобы короткие сигналы были слышны и совпадали с отсчётом.
Прогрев и смещение звука
Для этого в таймере есть три параметра: уровень прогрева, длительность предварительного прогрева и смещение звука.
Уровень прогрева задаёт силу слабого шумового сигнала, который помогает сохранять звуковой тракт активным между сигналами тренировки. Его задача - не дать колонке «заснуть». Цифровой тишины для этого может быть недостаточно. Уровень подбирается под устройство: слишком слабый сигнал может не помочь, а более сильный будет явно слышен.
Длительность предварительного прогрева определяет, сколько времени отвести на подачу этого сигнала перед основным звуком. Это даёт колонке время подготовиться к воспроизведению и помогает сохранить начало сигнала.
Смещение звука позволяет совместить слышимый сигнал с событием на экране с учётом задержки Bluetooth. Приложение использует выбранное значение при согласовании воспроизведения и визуального отсчёта.
Для настройки есть проверка четырьмя тиками с визуальными импульсами. По ним можно подобрать совпадение для своей связки телефона и колонки. Параметры сохраняются в профилях, чтобы при смене колонки не подбирать их каждый раз заново.
Как это устроено в таймере
В обычном режиме таймер запускает каждый звук отдельно, когда наступает нужное событие. В режиме совместимости звуки готовятся заранее: например, тики «три - два - один» собираются в один звуковой фрагмент с заданными промежутками между ними. Приложению уже не нужно подавать отдельную команду на каждый тик.
Перед первым сигналом во фрагменте отводится время на предварительный прогрев. Между сигналами фоновый шум поддерживает колонку готовой к воспроизведению. Заданное смещение учитывается при выборе момента запуска фрагмента, а визуальный отсчёт согласуется с воспроизведением. Таким образом, настройки совместимости применяются к заранее подготовленной последовательности звуков. При ручной паузе воспроизведение останавливается, а запланированные сигналы отменяются.
Версия 0.7.0 уже доступна в RuStore - Интервальный Таймер.
Буду рад отзывам и обратной связи.








