2014-05-12 5 views
1

Я разрабатываю приложение чата, если кто-то отправляет мне какое-либо сообщение & мое приложение находится в фоновом режиме, после чего я получаю это сообщение, и я играю тон всякий раз, когда полученное сообщение, играет в среднем, пока приложение открыто, а музыка останавливается. Как это сделать, когда приложение также появится на переднем плане. (Тон должен быть заполнен в соответствии с продолжительностью, доступной init). Как решить эту проблему. Ждем ответ.Музыка прекращается, когда приложение приходит из фона на передний план

+0

Вы используете push-уведомление для получения сообщения, когда ваше приложение находится в фоновом режиме?. – Rushabh

+0

Я использую локальные уведомления, используя сервер xmpp, мой чат происходит – Romance

ответ

2

Вы должны работать на пульте дистанционного управления получили события с уведомлением ..

- (void)remoteControlReceivedWithEvent:(UIEvent *)theEvent { 

    if (theEvent.type == UIEventTypeRemoteControl) { 
     switch(theEvent.subtype)  { 
      case UIEventSubtypeRemoteControlPlay: 
       [[NSNotificationCenter defaultCenter] postNotificationName:@"TogglePlayPause" object:nil]; 
       break; 
      case UIEventSubtypeRemoteControlPause: 
       [[NSNotificationCenter defaultCenter] postNotificationName:@"TogglePlayPause" object:nil]; 
       break; 
      case UIEventSubtypeRemoteControlStop: 
       break; 
      case UIEventSubtypeRemoteControlTogglePlayPause: 
       [[NSNotificationCenter defaultCenter] postNotificationName:@"TogglePlayPause" object:nil]; 
       break; 
      default: 
       return; 
     } 
    } 
} 

you can view complete answer here

+0

Спасибо за ответ. Но я играю свой тон, используя UILocalnotification. Тогда у меня есть эта проблема. – Romance

1

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

Сначала инициализировать аудио:

AVAudioSession* audioSession = [AVAudioSession sharedInstance]; 
[audioSession setCategory:AVAudioSessionCategoryPlayback error:nil] 
[audioSession setActive:NO error:nil]; 
Playing the sound (AVAudioPlayer's play/prepareToPlay will activate the audio session for you): 

AVAudioPlayer* audioPlayer = [[[AVAudioPlayer alloc] initWithContentsOfURL:audioURL error:nil]; 
[audioPlayer play]; 

Остановка звуковой сигнал:

[audioPlayer stop]; 
[[AVAudioSession sharedInstance] setActive:NO withFlags:AVAudioSessionSetActiveFlags_NotifyOthersOnDeactivation error:nil]; 

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

+0

Спасибо, что ответили. Но я играю свой тон, используя UILocalnotification. Тогда у меня есть эта проблема. Пожалуйста, дайте мне ответ таким образом. – Romance

Смежные вопросы