Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3423170
  • 博文数量: 864
  • 博客积分: 14125
  • 博客等级: 上将
  • 技术积分: 10634
  • 用 户 组: 普通用户
  • 注册时间: 2007-07-27 16:53
个人简介

https://github.com/zytc2009/BigTeam_learning

文章分类

全部博文(864)

文章存档

2023年(1)

2021年(1)

2019年(3)

2018年(1)

2017年(10)

2015年(3)

2014年(8)

2013年(3)

2012年(69)

2011年(103)

2010年(357)

2009年(283)

2008年(22)

分类: 嵌入式

2012-10-30 17:14:17

现在在学习后台处理,顺便做个后台播放的例子,网上搜了半天,没招到,自己找了很多材料,大致明白了点
,要实现后台播放,需要注意一下几个问题:
 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了,我在模拟器中已测试,没有手机的烦恼啊,初学中,描述不清楚的敬请指点。

代码下载:

阅读(1436) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~