Воспроизведение звука в определенное время, когда приложение находится в фоновом режиме - PullRequest
7 голосов
/ 30 апреля 2011

Я ищу способ, позволяющий моему приложению воспроизводить звук в определенное время, пока оно находится в фоновом режиме (многозадачность IOS4).В настоящее время я использую локальные уведомления для того, что работает достаточно хорошо, за исключением:

  • звук не будет воспроизводиться, если телефон отключен
  • ограничение воспроизведения 30 секунд

Я видел, что есть setKeepAliveTimeout: handler: но он доступен только для voip-приложений, и, поскольку это не цель моего приложения, я думаю, что Apple отклонит его из-за этого.Я также видел решение, в котором «пустой» звук воспроизводится до тех пор, пока не наступит время, но - в любом случае, игнорируя, что это не очень элегантный способ, - я читал, что это также может привести к отклонению приложения.

Поскольку есть несколько приложений-будильников, которые выполняют именно то, что я ищу, мне интересно, как они реализовали эту функцию.

Спасибо за любые советы заранее!

1 Ответ

2 голосов
/ 03 июля 2013

Если вы ищете решение, которое будет одобрено Apple, вы правы, что не можете использовать setKeepAliveTimeout:handler, и даже если бы вы могли - вы не можете установить тайм-аут на значение, которое меньше 600 секунд, поэтому Я полагаю, что в любом случае это будет бесполезно (кроме того, что не гарантируется, что событие будет запущено даже удаленно близко к указанному вами тайм-ауту. Например, я установил его на 600 секунд, а какое-то событие сработало уже 360 секунд. .).

О воспроизведении тихого звука, за исключением разряда батареи, если ваше приложение имеет законное использование для фонового звука (если вы используете будильник, это довольно очевидно), я не вижу причин для вашего приложение должно быть отклонено, если вы не пытаетесь использовать другие фоновые функции (сигнал GPS, обработчики VoIP и т. д.).

Вот один пример приложения, которое использовало эту «функцию» в своих интересах: http://tapbots.com/blog/pastebot/pastebot-music-in-background

О других методах вы можете посмотреть в этой теме: Как начать воспроизведение звука в беззвучном режиме и заблокирован в iOS 6?

Что касается личной информации, справиться с фоновыми политиками Apple нелегко. Мне и моей компании (из-за всех ограничений) было (нужно?) Трудно просто поддерживать простое VoIP-соединение. Мой лучший совет - старайтесь делать как можно меньше в фоновом режиме. Если решение UILocalNotificaion подходит вам, вы, вероятно, должны придерживаться его и жить с ограничениями.

...