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];就能播放了~
空音乐文件的下载地址
非常简单粗暴的方法,大家有好的办法可以提出来,谢谢大家阅读~
相关文章推荐
- iOS开发小结 - 让你的APP后台运行
- iOS让App后台运行方法小结
- iOS App进入后台获取更多的运行时间
- iOS开发之系统后台运行弹出本地通知
- iOS App进入后台获取更多的运行时间
- IOS App 后台运行
- phonegap ios插件开发及无限后台运行解决
- IOS开发~开机启动&无限后台运行&监听进程
- iOS App进入后台获取更多的运行时间
- XE6 & IOS开发之免证书真机调试(2):连接真机并运行App(有图有真相)
- IOS高级开发~开机启动&无限后台运行&监听进程
- XE6 & IOS开发之免证书真机调试(2):连接真机并运行App(有图有真相)
- iOS App进入后台获取更多的运行时间
- IOS高级开发~开机启动&无限后台运行&监听进程
- ios开发小结之app发布升级
- IOS高级开发~开机启动&无限后台运行&监听进程
- IOS高级开发~开机启动&无限后台运行&监听进程
- iOS App运行在后台实现定位以及播放音频功能
- iOS开发笔记--iOS 无限后台运行
- IOS高级开发~开机启动&无限后台运行&监听进程