Как я могу приостановить все звуковые уведомления на iPad?

Мы создаем аудиоприложение для iPad (только), которое будет использоваться для живых выступлений. Устройство будет подключено напрямую к консоли. Таким образом, последнее, что вам нужно во время живого выступления, — это внезапное появление неожиданного будильника или напоминания.

С исследованиями в Apple SDK похоже, что вы можете заблокировать все, кроме календаря и будильников (и звонков на iPhone).

Тем не менее, кто-нибудь знает, как сказать устройству: «Пока мы находимся в режиме «В эфире», не разрешать любые уведомления ОС»?

Если нет, можем ли мы хотя бы запросить, включены ли они, чтобы мы могли предупредить пользователя?

Jailbeaking не вариант, потому что мы хотим продавать его через App Store.

ОБНОВЛЕНИЕ

Другой вариант — позволить обычным оповещениям и тому подобному по-прежнему воспроизводиться через динамик iPad, но мы посылаем наши звуки через линейный выход в разъеме док-станции.

Конечно, мы всегда можем разработать собственное оборудование для этого, но мы пытаемся использовать как можно больше встроенных функций устройства.


person Mark A. Donohoe    schedule 01.05.2012    source источник


Ответы (3)


Это может сделать ваше приложение неприемлемым для распространения в App Store, но, по-видимому, есть частный API, который некоторые люди получили для этого. Видеть:

Некоторые люди сообщают, что есть определенные вызовы API, побочным продуктом которых является захват всего вывода звука. См. Звуковые сигналы iOS 5 не звучат без kAudioSessionProperty_OverrideCategoryMixWithOthers On для одного примера.

Ваш наиболее безопасный вариант, вероятно, состоит в том, чтобы предложить пользователю изменить настройку при открытии приложения.

person Moshe Katz    schedule 04.05.2012
comment
Это выглядело очень многообещающе, поскольку вы правы, это убьет системные звуки. Однако, когда вы будете читать дальше, вы увидите, что он говорит, что его звук все еще приглушается, что, конечно же, нам абсолютно не нужно. А что касается установки громкости оповещения, даже если вы сделаете это вручную, вы не сможете полностью установить «0». Попробуй. Если вы переместите его полностью, вы все равно получите очень низкий уровень громкости, но он есть, чего опять же, когда вы живы, у вас не может быть. Этот проект может быть DOA. - person Mark A. Donohoe; 04.05.2012
comment
Прямо сейчас передо мной нет iPad, но мой iPod Touch ДЕЙСТВИТЕЛЬНО переходит в 0, когда вы скользите до упора влево. - person Moshe Katz; 04.05.2012
comment
Не перед моим iPad прямо сейчас, но на моем iPhone, он не становится полностью безмолвным. У Odd Apple было бы два разных поведения, подобных этому, но это может быть возможно, потому что это телефон, и поэтому вы всегда хотите, чтобы звонок был включен, если переключатель не находится в режиме «без звука». Мне придется поиграть с ним. Если это работает на iPad, вы получите ответ. - person Mark A. Donohoe; 04.05.2012
comment
Подтверждено, что iPad тоже не становится полностью бесшумным, когда полностью влево. Как я уже сказал выше, я бы еще раз проверил это на вашем устройстве. Не имеет смысла, что два их устройства будут работать иначе, чем третье, когда все они работают под одной и той же ОС и фреймворком. - person Mark A. Donohoe; 08.05.2012

Я на самом деле не пробовал это, но после быстрого поиска в Google я обнаружил, что ссылка на класс AVAudioSession говорит, что установка режима на AVAudioSessionCategoryRecord может привести к тому, что вы хотите.

В примечании к AVAudioSessionCategoryPlayAndRecord говорится:

Если вы хотите, чтобы звуки, такие как оповещения о сообщениях, не воспроизводились во время записи вашего приложения, используйте вместо этого категорию AVAudioSessionCategoryRecord.

http://developer.apple.com/library/ios/documentation/AVFoundation/Reference/AVAudioSession_ClassReference/Reference/Reference.html#//apple_ref/c/data/AVAudioSessionCategoryRecord

(Можно также использовать C API: http://developer.apple.com/library/ios/#documentation/AudioToolbox/Reference/AudioSessionServicesReference/Reference/reference.html#//apple_ref/doc/c_ref/kAudioSessionCategory_PlayAndRecord )

person DouglasHeriot    schedule 02.05.2012
comment
Да, но это для записи. Не уверен, что этого достаточно для воспроизведения, а это то, что нам нужно. - person Mark A. Donohoe; 03.05.2012
comment
Подтверждено: это не так. Он только отключает системные звуки во время записи, и хотя он и есть, он не поддерживает любое воспроизведение, ни ваше, ни системное. Как вы сказали, есть сопутствующий вариант PlayAndRecord, но он все еще чувствителен к системным звукам. - person Mark A. Donohoe; 08.05.2012

Примечание: сейчас передо мной нет iPad, но я предполагаю, что он имеет те же возможности, что и мой iPod. РЕДАКТИРОВАТЬ: нет, не имеет.

ТОЛЬКО для iPod: в разделе «Настройки» => «Звуки» можно полностью перетащить громкость «Звонок и оповещения». Мой iPod вообще не издает никаких звуков, когда этот ползунок громкости полностью опущен, за исключением шумов от программ, которые я открываю.

Скриншот настроек iPod

Кажется, что iPad не позволяет раздельно регулировать громкость системных звуков и программных звуков, как это делает iPod.

Фото настроек iPad

person Moshe Katz    schedule 01.05.2012
comment
Вы не знаете, можно ли это сделать программно? Вот что мы пытаемся выяснить. Мы хотим, чтобы наше приложение автоматически делало это, когда мы переходим в «живой» режим. Если мы не можем изменить его с помощью кода, мы надеемся, что сможем, по крайней мере, запросить его с помощью кода, чтобы предупредить пользователя, если он не установлен полностью. - person Mark A. Donohoe; 02.05.2012
comment
На самом деле, провел еще некоторые исследования здесь. Две вещи. Во-первых, да, вы можете понять, как это сделать программно (хотя это частный API), но что более важно, я не думаю, что то, что вы сказали, на самом деле верно, поскольку, когда я перетаскиваю его полностью влево, вы все еще можете услышать звук, хотя и очень немного. Его даже в наушниках слышно. Другими словами, вы не можете полностью заглушить его. - person Mark A. Donohoe; 04.05.2012
comment
Как я упоминал выше, на моем iPod системные звуки полностью замолкают, когда вы перетаскиваете мышь до упора влево. - person Moshe Katz; 04.05.2012
comment
Вы, должно быть, используете более старую версию программного обеспечения для iPad, потому что на моем iPad, как и на iPhone, под ползунком громкости есть переключатель с надписью «Изменить с помощью кнопок». В любом случае, как я уже сказал, как на моем iPhone, так и на iPad установка ползунка полностью влево только устанавливает громкость на самый низкий уровень, а не отключает его. Однако у меня нет iPod для тестирования. Тем не менее, я был бы очень удивлен, если бы Apple сделала что-то по-другому для одной и той же версии ОС. Я могу ошибаться, но я бы принял это пари. Дважды проверьте это, поднеся его к уху. Это очень низко. - person Mark A. Donohoe; 08.05.2012