Как приостановить / возобновить звук, когда iphone заблокирован / разблокирован

Вот что сейчас происходит в моем приложении:

Блокировка: нажата кнопка блокировки iPhone -> звук приостановлен
Разблокировка: нажата кнопка разблокировки iPhone -> звук возобновлен -> проведите пальцем для разблокировки -> появляется приложение

Я хочу, чтобы последовательность разблокировки была:

Разблокировка: нажата кнопка разблокировки iPhone -> Сдвиньте, чтобы разблокировать -> звук возобновлен -> появляется приложение

Я использую OS 2.2.1 и AVFoundation Framework, и вот что я уже пробовал:

  • Я пытался использовать обратные вызовы applicationWillResignActive и applicationDidBecomeActive для AppDelegate, это не работает. Хотя applicationDidBecomeActive вызывается в правильное время (т.е. когда пользователь сдвинулся, чтобы разблокировать устройство), звук возобновляется, как только нажимается кнопка разблокировки (я думаю, это из-за аудиосеансов), поэтому я попытался:

  • Я реализовал селекторы audioPlayerBeginInterruption и audioPlayerEndInterruption для AVAudioPlayerDelegate, похоже, что эти методы никогда не вызываются (я разместил вызовы журнала). Я уверен, что правильно настраиваю делегата, так как audioPlayerDidFinishPlaying правильно вызывается после завершения воспроизведения аудиофайла.

P.S: Я тестирую на устройстве, если это не было очевидно


person Community    schedule 12.04.2009    source источник


Ответы (2)


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

person PSherif    schedule 03.11.2009
comment
В конце концов я перестал пытаться достичь этого, потому что не было прямого / хорошего способа сделать это. - person ; 02.10.2010

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

person Community    schedule 30.09.2010