#iphone #ios4
#iPhone #ios4
Вопрос:
У меня есть небольшое приложение, которое очень похоже на часы. Он отлично работал на IOS3, но теперь я обновляю его до iOS4. Что я хочу сделать в iOS4, так это позволить ему воспроизводить звук в любое время. Например, если я настрою его на воспроизведение в 16:00, я хочу, чтобы он воспроизводил звук, звук из приложения, а не из операционной системы. Это работает, если приложение запущено, но если пользователь вернулся к главному экрану, я хочу, чтобы произошло то же самое.
Это нормально, если UIAlertView всплывает в начале приложения.
Как я могу это сделать?
С наилучшими пожеланиями, Пол Пилен
Ответ №1:
Похоже, вам нужно будет использовать локальное уведомление:
и
Комментарии:
1. Теперь используем ваши примеры. Спасибо!
Ответ №2:
То, что вам нужно, это UIApplication setKeepAliveTimeout:handler:
что позволяет вам зарегистрировать обработчик, который будет вызываться. Вы можете использовать это, чтобы начать воспроизведение звука. (Конечно, вычислите время ожидания, когда ваше приложение переходит в фоновый режим)
РЕДАКТИРОВАТЬ: используйте UILocalNotification, как сказал Энди.
Комментарии:
1. Согласно документации setKeepAliveTimeout: обработчик предназначен только для приложений, зарегистрированных как VOIP-приложения.
Ответ №3:
Две вещи, которые вы могли бы попробовать в iOS 4.
Локальные уведомления могут выдавать предупреждение и воспроизводить короткий звук.
Другой энергоемкий вариант — зарегистрироваться в качестве проигрывателя фоновой музыки и включить режим тишины до тех пор, пока не прозвучит сигнал будильника, затем добавить выбранный звук в меню «музыка». Произойдет сбой, если пользователь переключится на другое приложение медиаплеера.
Комментарии:
1. Локальные уведомления заставят ОС воспроизводить звук, а не приложение, что не совсем то, что запрашивала операционная система. Таким образом, второе неоптимальное решение в точности соответствует заданному вопросу: как разрешить приложению воспроизводить звук.
2. Очевидно, Apple не нравится длительные интервалы молчания. Тапботы потерпели неудачу, пытаясь сделать что-то подобное с Pastebot. Они обошли это, добавив в приложение мини-медиаплеер. Запрос операционной системы ссылается на «звук из приложения, а не из ОС» — UILocalNotification может воспроизводить звук из основного пакета приложения как часть уведомления, соответствует ли это цели? Если требуется, чтобы приложение генерировало звук и воспроизводило его, возможно, вам не повезло, поскольку основной пакет приложения AFAIK недоступен для записи приложением.