概述
本篇文章是介绍ios程序的后台长时间运行的策略的选择。如果想了解后台运行的基本原理,请查看上一篇博文http://blog.csdn.net/smiling8866/article/details/51024190
一、音频播放
当应用被设置为是一个音频播放的应用的时候,它就可以在后台持续运行。但是这种类型的应用存在一些限制:
1.audio session不能被限制
2.要另一个程序使用kAudioSessionCatgory_RecordAndPlay(如Skype)或者kAudioSession_SoloAbientSound,那么本程序会被立即打断
3.如果你的app确实为用户播放音频,你应用可以使用音频模式。如果你尝试着用这个模式来搞一个“静默”音频来让app一直在后台运行的话,苹果将会拒绝你的app上架。
下面我们将创建一个音频播放的app:
注意:只是在app退出的时候循环播放一个音频
1.设置应用的模式为音频播放
2.导入AVFoundation框架,书写循环播放音频的代码
_audioSession = [AVAudioSession sharedInstance];
[_audioSession setActive:YES error:nil];
[_audioSession setCategory:AVAudioSessionCategoryPlayback error:nil];
[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
NSString *musciPath = [[NSBundle mainBundle] pathForResource:@"Hello_backrun" ofType:@"mp3"];
NSURL *url = [[NSURL alloc] initFileURLWithPath:musciPath];
// 创建播放器
_player = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:nil];
[_player prepareToPlay];
[_player setVolume:1];
_player.numberOfLoops = -1;
[_player play];
具体代码下载地址:http://download.csdn.net/detail/smiling8866/9481574