当应用程序从后台到前台时,音乐会停止

时间:2014-05-12 06:34:49

标签: ios uilocalnotification

我正在开发聊天应用程序,如果有人向我发送任何消息&我的应用程序在后台,然后我收到该消息,我在收到消息时播放音调,而音调正在播放时,应用程序打开然后音乐停止。当应用程序到达前台时如何使其继续。 (必须按照可用的持续时间init完成音调)。如何解决这个问题。等待答案。

2 个答案:

答案 0 :(得分: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

答案 1 :(得分: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告诉系统在播放声音后通知背景音频继续播放。