iOS TTS с прерыванием телефонного звонка

У меня есть приложение iOS7, которое воспроизводит некоторые голосовые команды с использованием движка Apple TTS, я использую его для настройки своего аудиосеанса:

[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback
                          withOptions:AVAudioSessionCategoryOptionDuckOthers
                                error:&error];
[[AVAudioSession sharedInstance] setActive:YES error:&err];

тогда сыграй мою команду.

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

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


person user3456603    schedule 22.05.2014    source источник


Ответы (1)


Когда поступает телефонный звонок, в вашем делегате приложения должен вызываться метод - (void)applicationWillResignActive:(UIApplication *)application. Здесь вы должны приостановить звук.

person 67cherries    schedule 22.05.2014
comment
Спасибо за помощь, но что, если мое приложение уже находится в фоновом режиме, когда мне позвонили? метод -(void)applicationWillResignActive:(UIApplication *)application НЕ будет вызываться в этом случае!! (пробовал, не вызывается) - person user3456603; 23.05.2014
comment
Вам нужно воспроизводить звук, когда ваше приложение находится в фоновом режиме? Если вы этого не сделаете, вы можете просто приостановить звук при вызове метода -applicationDidEnterBackground:. - person 67cherries; 23.05.2014
comment
Спасибо, у меня такой сценарий, мое приложение на переднем плане, приходит телефонный звонок, мое приложение получает UIApplicationWillResignActiveNotification и приложение переходит в состояние UIApplicationStateInactive, я сбросил вызов (т.е. нажал красную кнопку) мое приложение остается в состоянии UIApplicationStateInactive состояние, я ожидал, что оно станет активным. - person user3456603; 27.05.2014