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

来源:互联网 发布:淘宝买的负值轮毂断裂 编辑:程序博客网 时间:2024/05/29 12:25

最近项目有个需求需要让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];就能播放了~

空音乐文件的下载地址

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

1 0
原创粉丝点击