我正在开发聊天应用程序,如果有人向我发送任何消息&我的应用程序在后台,然后我收到该消息,我在收到消息时播放音调,而音调正在播放时,应用程序打开然后音乐停止。当应用程序到达前台时如何使其继续。 (必须按照可用的持续时间init完成音调)。如何解决这个问题。等待答案。
答案 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;
}
}
}
答案 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告诉系统在播放声音后通知背景音频继续播放。