iOS后台运行播放无声音频 测试可行

时间:2022-09-10 10:02:04

如果打回来了,就自认倒霉吧

制作无声音频。


@interface AppDelegate ()

{

NSInteger count;

}

@property(strong, nonatomic)NSTimer *mTimer;

@property(assign, nonatomic)UIBackgroundTaskIdentifier backIden;

- (void)applicationDidEnterBackground:(UIApplication *)application {

_mTimer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(countAction) userInfo:nil repeats:YES];

[[NSRunLoop currentRunLoop] addTimer:_mTimer forMode:NSRunLoopCommonModes];

[self beginTask];

}

//计时

-(void)countAction{

NSLog(@"%li",count++);

}

//申请后台

-(void)beginTask

{

NSLog(@"begin=============");

_backIden = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{

NSLog(@"将要挂起=============");

[self endBack];

}];

}

//注销后台

-(void)endBack

{

NSLog(@"end=============");

[[UIApplication sharedApplication] endBackgroundTask:_backIden];

_backIden = UIBackgroundTaskInvalid;

}

- (void)applicationWillEnterForeground:(UIApplication *)application {

[self endBack];

}


#import <AVFoundation/AVFoundation.h>

@property(strong, nonatomic)AVAudioPlayer *mPlayer;

@property(assign, nonatomic)CGFloat mCount;

- (void)viewDidLoad {

[super viewDidLoad];

_mCount = 0;

NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:10 target:self selector:@selector(countTime) userInfo:nil repeats:YES];

[[NSRunLoop currentRunLoop] addTimer:timer forMode:NSRunLoopCommonModes];

}

-(void)countTime{

_mCount+=10;

NSLog(@"%f",_mCount);

if ([[UIApplication sharedApplication] backgroundTimeRemaining] < 60.) {//当剩余时间小于60时,开如播放音乐,并用这个假前台状态再次申请后台

NSLog(@"播放%@",[NSThread currentThread]);

[self playMusic];

//申请后台

[[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{

NSLog(@"我要挂起了");

}];

}

}

-(void)playMusic{

//1.音频文件的url路径,实际开发中,用无声音乐

NSURL *url=[[NSBundle mainBundle]URLForResource:@"wusheng.mp3" withExtension:Nil];

//2.创建播放器(注意:一个AVAudioPlayer只能播放一个url)

_mPlayer=[[AVAudioPlayer alloc]initWithContentsOfURL:url error:Nil];

//3.缓冲

[_mPlayer prepareToPlay];

_mPlayer.numberOfLoops = -1;

//4.播放

[_mPlayer play];

}

iOS后台运行播放无声音频 测试可行的更多相关文章

  1. iOS 后台运行 类型

    iOS后台运行,需要有特定的类型才可以进行.这些内容并不是一直不变的,苹果也在逐步的更新这些内容. 本文内容是2015年11月03日时苹果支持的后台运行类型. 这是官方连接地址 其中较为重要的是下面这 ...

  2. IOS后台运行 之 后台播放音乐

    iOS 4开始引入的multitask,我们可以实现像ipod程序那样在后台播放音频了.如果音频操作是用苹果官方的AVFoundation.framework实现,像用AvAudioPlayer,Av ...

  3. iOS后台运行

    http://www.cocoachina.com/bbs/read.php?tid=149564 文一 我从苹果文档中得知,一般的应用在进入后台的时候可以获取一定时间来运行相关任务,也就是说可以在后 ...

  4. iOS 后台运行实现 --备用

    文一 我从苹果文档中得知,一般的应用在进入后台的时候可以获取一定时间来运行相关任务,也就是说可以在后台运行一小段时间. 还有三种类型的可以运行在后以,1.音乐2.location 3.voip 文二 ...

  5. IOS 后台执行 播放音乐

    iOS 4開始引入的multitask.我们能够实现像ipod程序那样在后台播放音频了. 假设音频操作是用苹果官方的AVFoundation.framework实现.像用AvAudioPlayer.A ...

  6. IOS 后台运行

    默认情况下,当app被按home键退出后,app仅有最多5秒钟的时候做一些保存或清理资源的工作.但是应用可以调用UIApplication的beginBackgroundTaskWithExpirat ...

  7. iOS用AVAudioPlayer播放m4a音频

    音频文件sound.m4a放到Supporting Files目录 引用头文件 #import <AVFoundation/AVFoundation.h> 定义一个全局的属性: @prop ...

  8. iOS 后台运行执行代码(例如定位)

  9. iOS开发:后台运行以及保持程序在后台长时间运行

    第一部分 1.先说说iOS 应用程序5个状态: 停止运行-应用程序已经终止,或者还未启动. 不活动-应用程序处于前台但不再接收事件(例如,用户在app处于活动时锁住了设备). 活动-app处于“使用中 ...

随机推荐

  1. HTML5的入门与深入理解

    HTML5是对HTML的第5次重大的修改,虽然HTML5 标准还在制定中,但不能阻碍其势不可挡的脚步,不用HTML5你就OUT了.HTML5与我们常用的HTML4有什么区别呢? 首先要说的是不是所有的 ...

  2. spring mvc 跳转后页面cs样式表丢失

    原因:../不能正确返回 解决办法:jsp文件加<% String path = request.getContextPath(); String basePath = request.getS ...

  3. Rstudio代码的快捷键

    按tab键:有自动补全的功能 Ctrl+Enter:运行改行代码 Ctrl+1: 移动焦点到source编辑区 Ctrl+2: 移动焦点到控制台 Ctrl+enter Ctrl+L:删除该控制台的所有 ...

  4. easy ui 问题

    easyui  的样式  和Bootstrap css   有冲突,不要一起使用 日期禁止输入 editable="false" ------------------------- ...

  5. 微软职位内部推荐-Senior Engineering Lead

    微软近期Open的职位: Job Title: Senior Engineering LeadDivision: Microsoft Business SolutionWork Location: S ...

  6. hdu 1728 逃离迷宫(dFS&plus;优先队列)

    求转弯最少的走路方式!!!! #include<stdio.h> #include<string.h> #include<queue> using namespac ...

  7. hdu 5465 Clarke and puzzle&lpar;前缀和,异或,nim博弈&rpar;

    Problem Description Clarke is a patient with multiple personality disorder. One day, Clarke split in ...

  8. spark 1&period;6 idea本地运行错误

    将spark maven更新至1.6,运行原有程序,发现以下错误: java.lang.IllegalArgumentException: System memory must be at least ...

  9. 获取windows所有用户名

    #include <LM.h> #pragma comment(lib, "netapi32.lib") // See more: http://msdn.micros ...

  10. sap 创建odata服务,通过http向数据库 进行增删改查

    https://blog.csdn.net/stone0823/article/details/71057172 1:通过 事物码 se11 创建 数据库表  zemp.表 zemp中 含有empid ...