Многим приложениям-будильникам это удается, и я не думаю, что они используют беззвучный звук, чтобы приложение работало, поскольку они не звучат, если вы на самом деле выходите из приложения дома.
...Они поддерживают цикл после блокировки каким-то образом или это уведомление (которое не может воспроизводить звук в беззвучном режиме) запускает резервную копию приложения для воспроизведения звука, или какой-то другой метод?
AVAudioPlayer с использованием:
AudioSessionInitialize(nil, nil, nil, nil);
AudioSessionSetActive(YES);
UInt32 sessionCategory = kAudioSessionCategory_MediaPlayback;
AudioSessionSetProperty (kAudioSessionProperty_AudioCategory, sizeof(sessionCategory),&sessionCategory);
И настройка Info.plist на:
Требуемые фоновые режимы (UIBackGroundModes) — приложение воспроизводит аудио (аудио)
Я могу воспроизводить аудио даже в беззвучном режиме, когда приложение запущено и отображается на экране. Если звук уже запущен, приложение можно закрыть с помощью кнопки «Домой», и звук будет воспроизводиться. НО, если приложение не воспроизводит звук, а экран заблокирован, все потоки уничтожаются, а звук никогда не воспроизводится. Как этим приложениям удается обойти это?
A. Используйте 'beginBackgroundTaskWithExpirationHandler:' с бесконечным циклом, чтобы приложение работало бесконечно.
Плюсы:
Минусы:
Комментарии:
Я почти получил это, чтобы работать и мог бы с некоторой настройкой. Похоже, это не то, что делают все эти другие будильники, поскольку они не продолжают работать, если вы нажимаете домашнюю кнопку BTN. Что предполагает, что они используют какой-то метод, который дает им разрешение на запуск в заблокированном состоянии, но не в BG. (Это то, что мне нужно)
Кроме того, когда вы спрашиваете, сколько времени у вас осталось бегать, вы получаете примерно 10 минут.Добавив туда бесконечный цикл, числа фактически снизятся до 0, а затем станут отрицательными на несколько часов подряд. (Проверено). Я не уверен, как это будет вести себя в реальном мире или с точки зрения принятия приложения.
B. Использование бесшумной аудиопетли для представления медиацентра с непрерывным воспроизведением звука.
Плюсы:
Минусы:
Комментарии:
Это может работать во многих ситуациях, но далеко не идеально. И поскольку, как я еще раз говорю, должен быть еще один метод, который не задокументирован.
Тестирование перечисленных приложений показало, что они не используют ни один из двух методов, которые я только что описал. Метод «А» кажется более близким, но если он будет реализован, он не будет вести себя так, как ведут себя эти приложения.
Я использовал билет разработчика Apple, чтобы получить больше информации, я также буду публиковать любые новые результаты с помощью этих средств.
Мы ценим любую информацию и ваше участие.