Обработка прерываний от оповещений во время записи голоса - PullRequest
5 голосов
/ 25 декабря 2010

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

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

Вот мои вопросы:

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

Любая помощь будет принята с благодарностью. Любая другая идея справиться с этой ситуацией приветствуется.

1 Ответ

2 голосов
/ 28 февраля 2011

Вы можете попытаться реализовать методы делегата приложения

-(void)applicationWillResignActive:(UIApplication *)application{
    [recorder playSound];
    [recorder pause];
}

-(void)applicationDidBecomeActive:(UIApplication *)application{
    [recorder record];
}

Поместить эти методы в класс appDelegate.

Если вы хотите реализовать собственное предупреждение, сделайте это в applicationWIllResignActive, но яЯ не уверен, что вам следует это делать, так как все оповещения, такие как SMS, push-уведомления или предупреждения о батарее, вызывают вибрации и звуки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...