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

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

空音乐文件的下载地址

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

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值