Звуки, воспроизводимые iPhone в фоновом режиме

#iphone #ios4

#iPhone #ios4

Вопрос:

У меня есть небольшое приложение, которое очень похоже на часы. Он отлично работал на IOS3, но теперь я обновляю его до iOS4. Что я хочу сделать в iOS4, так это позволить ему воспроизводить звук в любое время. Например, если я настрою его на воспроизведение в 16:00, я хочу, чтобы он воспроизводил звук, звук из приложения, а не из операционной системы. Это работает, если приложение запущено, но если пользователь вернулся к главному экрану, я хочу, чтобы произошло то же самое.

Это нормально, если UIAlertView всплывает в начале приложения.

Как я могу это сделать?

С наилучшими пожеланиями, Пол Пилен

Ответ №1:

Комментарии:

1. Теперь используем ваши примеры. Спасибо!

Ответ №2:

Читать http://developer.apple.com/iphone/library/documentation/iphone/conceptual/iphoneosprogrammingguide/BackgroundExecution/BackgroundExecution.html .

То, что вам нужно, это UIApplication setKeepAliveTimeout:handler: что позволяет вам зарегистрировать обработчик, который будет вызываться. Вы можете использовать это, чтобы начать воспроизведение звука. (Конечно, вычислите время ожидания, когда ваше приложение переходит в фоновый режим)

РЕДАКТИРОВАТЬ: используйте UILocalNotification, как сказал Энди.

Комментарии:

1. Согласно документации setKeepAliveTimeout: обработчик предназначен только для приложений, зарегистрированных как VOIP-приложения.

Ответ №3:

Две вещи, которые вы могли бы попробовать в iOS 4.

Локальные уведомления могут выдавать предупреждение и воспроизводить короткий звук.

Другой энергоемкий вариант — зарегистрироваться в качестве проигрывателя фоновой музыки и включить режим тишины до тех пор, пока не прозвучит сигнал будильника, затем добавить выбранный звук в меню «музыка». Произойдет сбой, если пользователь переключится на другое приложение медиаплеера.

Комментарии:

1. Локальные уведомления заставят ОС воспроизводить звук, а не приложение, что не совсем то, что запрашивала операционная система. Таким образом, второе неоптимальное решение в точности соответствует заданному вопросу: как разрешить приложению воспроизводить звук.

2. Очевидно, Apple не нравится длительные интервалы молчания. Тапботы потерпели неудачу, пытаясь сделать что-то подобное с Pastebot. Они обошли это, добавив в приложение мини-медиаплеер. Запрос операционной системы ссылается на «звук из приложения, а не из ОС» — UILocalNotification может воспроизводить звук из основного пакета приложения как часть уведомления, соответствует ли это цели? Если требуется, чтобы приложение генерировало звук и воспроизводило его, возможно, вам не повезло, поскольку основной пакет приложения AFAIK недоступен для записи приложением.