UILocalNotification* localNotification = [[UILocalNotification alloc] init];
localNotification.alertBody =[NSString stringWithFormat:@"meeting schedule from %@ ",[namelist objectAtIndex:i]];
localNotification.timeZone = [NSTimeZone defaultTimeZone];
localNotification.soundName = @"meetting.mp3";
[[UIApplication sharedApplication] scheduleLocalNotification:localNotification];
[[NSNotificationCenter defaultCenter] postNotificationName:@"timerInvoked" object:self];
我在create local notification
使用这些代码。本地通知声音在后台but when Enters to foreground only notification fire without sound
中有效。
请帮我解决这个问题.. 提前谢谢
答案 0 :(得分:2)
来自documentation on UILocalNotification:
如果应用程序是最重要的,并且在系统交付时可见 通知,没有显示警报,没有图标标记,没有声音 玩过的。但是,应用程序:didReceiveLocalNotification:是 如果应用程序委托实现它,则调用它。该 UILocalNotification实例传递给这个方法,并且 委托可以检查其属性或访问来自的任何自定义数据 userInfo字典。
因此,您无法在前景中播放声音,但另一个选项是您可以使用AVAudioPlayer
播放通知声音。
NSURL *url = [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/%@", [[NSBundle mainBundle] resourcePath],notification.soundName]];
AVAudioPlayer *newAudioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:NULL];
self.audioPlayer = newAudioPlayer;
self.audioPlayer.numberOfLoops = -1;
[self.audioPlayer play];