现在在学习后台处理,顺便做个后台播放的例子,网上搜了半天,没招到,自己找了很多材料,大致明白了点
,要实现后台播放,需要注意一下几个问题:
1.设置分类,必须是 AVAudioSessionCategoryPlayback
[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayback error: nil];
2.设置策略
UInt32 doSetProperty = true;
//The C Style function call
AudioSessionSetProperty (
kAudioSessionProperty_OverrideCategoryMixWithOthers,
sizeof (doSetProperty),
&doSetProperty
);
3.为你的应用增加UIBackgroundModes属性, 选中 Info.plist文件添加,然后选择audio相关项
4.修改你的applicationDidEnterBackground方法:
//得到当前应用程序的UIApplication对象
UIApplication *app = [UIApplication sharedApplication];
//一个后台任务标识符
UIBackgroundTaskIdentifier taskID;
taskID = [app beginBackgroundTaskWithExpirationHandler:^{
//如果系统觉得我们还是运行了太久,将执行这个程序块,并停止运行应用程序
[app endBackgroundTask:taskID];
}];
//UIBackgroundTaskInvalid表示系统没有为我们提供额外的时候
if (taskID == UIBackgroundTaskInvalid) {
NSLog(@"Failed to start background task!");
return;
}
这样就ok了,我在模拟器中已测试,没有手机的烦恼啊,初学中,描述不清楚的敬请指点。
代码下载:
阅读(1492) | 评论(0) | 转发(0) |