Я установил категорию аудиосессии kAudioSessionCategory_MediaPlayback, я активировал сессию, которая не возвращает ошибок, и музыка iPod все равно останавливается, когда я блокирую устройство. Это происходит на iOS 5 GM, поэтому я предполагаю, что это произойдет в финальной версии. На iOS 4+ текущий код работает нормально. Любые идеи, как это исправить? Огромное спасибо :)
applicationMusicPlayer останавливается, когда пользователь блокирует экран на iOS 5
Ответы (2)
Это не ошибка. Для экономии энергии блокировка телефона теперь обрабатывается так, как если бы пользователь нажал кнопку «Домой». Тот факт, что applicationMusicPlayer
теперь останавливается при блокировке, является лишь побочным эффектом этого изменения.
Чтобы обойти эту проблему, вы должны переключиться на AVPlayer и использовать звук iOS 4 в фоновом режиме.
Исправлена эта проблема для моей конкретной проблемы — как определить разницу между поведением OS4 и OS5, когда устройство переходит на экран блокировки.
В OS4 приложение делает «applicationWillResignActive», но в OS5 оно доходит до «applicationDidEnterBackground», который выглядит точно так же, как пользователь, нажимающий кнопку «Домой».
Оказывается, если вы проверите UIApplicationState приложения, указанное в '- (void)applicationDidEnterBackground:(UIApplication *)application', оно имеет 3 возможных значения:
typedef enum {
UIApplicationStateActive,
UIApplicationStateInactive,
UIApplicationStateBackground
} UIApplicationState;
Когда пользователь попадает домой в OS5, вы получаете UIApplicationStateBackground, но когда пользователь нажимает Lock, вы получаете UIApplicationStateInactive.
Надеюсь, это поможет.
С праздником всех.