您的位置:首页 > 移动开发

iOS开发小结 - 让你的APP后台运行

2016-09-07 15:08 405 查看

最近项目有个需求需要让app在后台一直运行计时着,找了一些资料,只能用比较无耻的做法了,播放一段没有声音的音频文件,这样你的APP就不会被系统杀掉~~



我们只需要用到
<AVFoundation/AVFoundation.h>
框架,然后播放一段没有声音的音频文件就可以实现了,贴代码:

#pragma mark - 音频播放,让后台一直运行
//播放器
- (AVAudioPlayer *)audioPlayer {
if (_audioPlayer == nil) {
dispatch_queue_t dispatchQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_async(dispatchQueue, ^(void) {
NSError *audioSessionError = nil;
AVAudioSession *audioSession = [AVAudioSession sharedInstance];
//激活会话
[audioSession setActive:true error:nil];
if ([audioSession setCategory:AVAudioSessionCategoryPlayback error:&audioSessionError]){
NSLog(@"成功设置音频对话.");
} else {
NSLog(@"设置音频对话失败");
}

NSBundle *mainBundle = [NSBundle mainBundle];
NSString *filePath = [mainBundle pathForResource:@"timeBlankSound" ofType:@"mp3"];
NSData *fileData = [NSData dataWithContentsOfFile:filePath];
NSError *error = nil;

_audioPlayer = [[AVAudioPlayer alloc] initWithData:fileData error:&error];

if (_audioPlayer != nil){
_audioPlayer.delegate = self;
//让它无限循环播放
[_audioPlayer setNumberOfLoops:-1];
if ([_audioPlayer prepareToPlay] && [_audioPlayer play]){
NSLog(@"成功播放");
} else {
NSLog(@"播放失败");
}
}
});
}
return _audioPlayer;
}


然后调用
[self.audioPlayer play];
就能播放了~

空音乐文件的下载地址


非常简单粗暴的方法,大家有好的办法可以提出来,谢谢大家阅读~

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: