Решение ниже
Я работаю над работающим приложением, которое дает инструкции за кадром в начале каждого упражнения. Он работает по назначению, когда устройство активно, но не работает, когда телефон заблокирован. [Текущий звук продолжается, но не воспроизводится в будущем.]
Вопрос Как я могу начать воспроизведение закадрового голоса, когда iPhone пользователя заблокирован.
В настоящее время я отслеживаю тренировку, используя Timer.scheduledTimer для двух таймеров, которые я показываю [текущая активность и общая тренировка]. Когда таймер достигает заранее заданного времени ближе к концу одного действия, воспроизводится голос за кадром, чтобы представить следующее действие. Срабатывание таймера запускает звук, и я считаю, что проблема в этом. Я могу приостанавливать тренировку, пропускать разделы, и все работает нормально - пока устройство не заблокируется.
Если при нажатии кнопки «Домой» или блокировке iPhone воспроизводится закадровый голос, он продолжает воспроизводиться должным образом. Проблема в том, что таймер не срабатывает, поэтому следующая озвучка [скажем, через 90 секунд] никогда не воспроизводится.
В некоторых ответах и комментариях, которые я прочитал, говорится, что эта функция просто невозможна в iOS. Приложение Couch to 5k https://itunes.apple.com/gb/app/one-you-couch-to-5k/id1082307672?mt=8 использует эту функцию, поэтому я знаю, что этого можно достичь, но я просто не знаю, как они » повторю это. [Это будет специальный участник, который загрузит его, чтобы понять, что я имею в виду :)]
Из поиска SO Я прочитал много сообщений, в которых говорится, что Timer или NSTimer не могут работать, когда приложение находится в фоновом режиме или телефон заблокирован. Любые сообщения, в которых говорится, что это может работать, старые и основаны на iOS4 / 5.
Я читал о предложениях использовать тишину и, по сути, иметь один длинный аудиофайл. Хотя это создало бы некоторые новые проблемы для пропуска разделов тренировки, я также читал комментарии, в которых говорится, что такое поведение не пройдет тестирование Apple для приложения для AppStore. Третий недостаток в том, что размер моего аудиофайла увеличится.
Вариант, который я видел, - это локальные уведомления, однако я еще не видел примера того, который используется для воспроизведения звука за кадром, когда приложение находится в фоновом режиме.
Как я могу достичь той же функциональности, что и приложение Couch to 5k?
Спасибо