Технология Постоянного режима Yay!Timer
Технология голосовых объявлений, которые никогда не останавливаются — даже при выключенном экране, работе приложения в фоновом режиме или заблокированном телефоне.
Почему Android останавливает голосовые объявления таймера
Таймеры перестают работать при блокировке экрана
Вы 15 минут выполняете интенсивную HIIT-тренировку. Вы кладёте телефон, блокируете экран и сосредотачиваетесь на берпи. И вдруг... тишина. Голосовые объявления прекратились. Вы пропустили три интервала и понятия не имеете, на каком этапе тренировки находитесь.
Это происходит потому, что Android агрессивно управляет фоновыми приложениями для экономии заряда батареи. Когда экран выключается, операционная система может приостановить или завершить работу приложений в фоновом режиме — включая Ваш таймер.
Режим Doze и ограничения фоновых приложений Android
Оптимизация батареи
Android ограничивает время работы процессора и доступ к сети для фоновых приложений, чтобы продлить время работы батареи.
Режим Doze
Когда телефон неподвижен с выключенным экраном, Android переходит в режим Doze и откладывает фоновую работу.
Аудиофокус
Приложения могут терять аудиофокус, когда другое приложение воспроизводит звук или когда система решает отдать приоритет другому аудио.
Ограничения TTS-движка
Синтез речи (Text-to-Speech) требует, чтобы приложение было «активно» для запроса синтеза речи в реальном времени.
Предварительная генерация аудио: решение Постоянного режима
Технология предварительной генерации аудиофайлов
Вместо генерации голосовых объявлений в реальном времени во время тренировки, Постоянный режим Yay!Timer предварительно генерирует весь аудиотрек перед началом. Все голосовые объявления, обратный отсчёт и интервалы тишины объединяются в один аудиофайл, который воспроизводится непрерывно — как музыкальный трек.
Этапы генерации аудио в Постоянном режиме
Анализ программы
Когда Вы нажимаете «Старт», Yay!Timer анализирует всю Вашу программу — каждый интервал, подход и повторение. Приложение рассчитывает, когда именно должно воспроизводиться каждое голосовое объявление.
Предварительная генерация TTS
Каждый уникальный текст объявления преобразуется в аудио с помощью TTS-движка Вашего устройства. Повторяющиеся тексты (например, «Работа», появляющаяся в нескольких интервалах) генерируются один раз и используются повторно, минимизируя время генерации.
Кодирование аудио
Аудиосегменты TTS и рассчитанные интервалы тишины объединяются и кодируются. Для программ до 60 минут используется формат WAV для простоты. Для более длительных программ эффективное кодирование AAC позволяет сохранить управляемый размер файлов.
Воспроизведение через Media Player
Сгенерированное аудио воспроизводится через Media Player API Android — ту же систему, которая воспроизводит музыку. Это даёт аудио высокий приоритет, позволяя ему продолжать воспроизведение даже при выключенном экране или работе других приложений на переднем плане.
Синхронизация интервалов
Точная карта интервалов связывает временные метки аудио с интервалами Вашей тренировки. Когда Вы пропускаете вперёд или назад, аудио перемещается точно на начало объявления этого интервала. Интерфейс остаётся идеально синхронизированным с аудиодорожкой.
Кэширование аудио и детали кодирования AAC
Умное кэширование аудиофайлов
Сгенерированные аудиофайлы безопасно кэшируются на Вашем устройстве. Если Вы запускаете ту же программу снова, используется кэшированный файл — без повторной генерации. Новый аудиофайл генерируется только при изменении программы.
⚡ Второй запуск начинается мгновенно
Выбор формата WAV vs AAC
Для тренировок до 60 минут формат WAV обеспечивает максимальную совместимость. Для более длительных программ (например, 90-минутных тренерских сессий) кодирование AAC уменьшает размер файла при сохранении качества.
📊 90-минутная программа ≈ 5 МБ AAC
Кэширование сегментов Tabata
Для программ с повторяющимися интервалами (например, 8 одинаковых раундов Tabata) кодировщик кэширует и повторно использует предварительно закодированные сегменты в рамках сессии, значительно сокращая время генерации.
🏃 50% попаданий в кэш для Tabata
Миллисекундная точность времени
Система карты интервалов отслеживает позиции объявлений с миллисекундной точностью. Операции пропуска попадают точно на начало объявления каждого интервала.
🎯 <0.02% отклонение времени
Выбор аудиорежима в настройках экономии батареи
Сравнение TTS-режима и Постоянного режима
| Функция | TTS-режим (бесплатно) | Постоянный режим (Премиум) |
|---|---|---|
| Экран выключен | ❌ Может остановиться | ✅ Продолжает работать |
| Приложение в фоне | ❌ Может остановиться | ✅ Продолжает работать |
| Телефон заблокирован | ❌ Может остановиться | ✅ Продолжает работать |
| Время запуска | ⚡ Мгновенно | ⏳ Короткая генерация (первый запуск) |
| Расход батареи | 🔋 Ниже | 🔋 Немного выше |
| Длительные тренировки | ❌ Риск прерывания | ✅ Идеально для 90+ мин |
| Используемая память | 📦 Нет | 📦 Кэшированные аудиофайлы |
Когда использовать каждый режим
- TTS-режим: Короткие тренировки с включённым экраном, когда нужен мгновенный старт без ожидания.
- Постоянный режим: Любая тренировка, где Вы можете заблокировать телефон, положить его в карман или когда нужна 100% надёжность.
Изучите функции Yay!Timer
Скачайте Yay!Timer — Никогда не пропускайте интервал
Испытайте надёжность Постоянного аудиорежима. Скачайте Yay!Timer бесплатно и получите Премиум всего за 239 ₽.
Скачать Yay!Timer бесплатно