iOS 4 Background Audio
iOS 4 Background Audio
- 首先,你得使用最新版的Xcode
- 接着,打开使用旧版Xcode创建的工程文件,修改***info.plist文件,其实也就是告诉Xcode,“我这app呀,它打算支持后台音乐播放”
- 如果音频操作是用苹果官方的AVFoundation.framework实现的话,每播放完一首歌曲,app就会自动被iOS给suspend 掉。这有一个山寨的解决办法:另init一个AVAudioPlayer的实例,从app启动开始,就不断重复播放一个无声的音频片段。这个方法能够保证 歌曲切换的间隙里app仍然有音频输出。而只要不断有音频输出,iOS就不会把你的app给suspend掉。真的很山寨,但如果你使用的就是 AVFoundation这个framework的话,这招对付旧版Xcode的代码真的很管用。
- 如果你使用的是著名的开源的AudioStreamer的旧版代码。恩,这个这个,上述偷偷放歌的方法就不是很管用了。app启动以后就会自己 crash掉。可是,万幸的是,AudioStreamer最近刚刚推出了更新版,已经可以很好的支持iOS 4的后台播放功能了,看这里:http://github.com/DigitalDJ/AudioStreamer。
iOS 4 Background Audio 续
- Audiostreamer的更新版放弃了对iOS 3的支持。如果你将Audiostreamer搬进iOS 3的工程的话,会直接crash。沿着crash report找到崩溃的原因,恩, handlePropertyChangeForQueue 函数比之前的iOS 3版本多出了些iOS 4才有的东西。iOS 3到这里会挂掉。
- 恩,不过我们可以修改一下这里的代码。执行 handlePropertyChangeForQueue 函数之前先做个判断。如果是老的iOS,我们就还是按老的代码来办。行,没问题,程序到这OK。不过还是有问题。Audiostreamer的网络链接部 分老是报错,无法从服务器端拿到数据。原因不明。
- 接管iPod控制钮和实现后台播放,其实是一件事。这个,下面详细讲。
- 首先,进 ***-info.plist 文件里,建立一个新的key,名叫 UIBackgroundModes ,在右侧 Value 栏,新增一个值, audio .
- 然后找到工程里那个负责音频播放的类。
- 依次重载这个类的 viewDidAppear 、 viewWillDisappear 、 canBecomeFirstResponder 、 remoteControlReceivedWithEvent 函数。这里贴一下 viewDidAppear 的代码:
转载于:https://blog.51cto.com/mkhgg/689760
iOS 4 Background Audio相关推荐
- Unity之iOS报错Audio effect Resonance Audio Renderer could not be found.
Unity之iOS报错Audio effect Resonance Audio Renderer could not be found. 报错 解决方法 链接 报错 如题,报错的详细信息如下: Aud ...
- ios设置音乐audio自动播放
因为audio标签的自动播放:autoplay.在ios系统中不能自动播放,此时需要设置,在进入页面自动播放音乐. 第一步,先引入js微信 <script src="js/jweixi ...
- IOS上的 Audio Memos SE 如何分享和传输录音到电脑?
Audio Memos SE 是 Audio Memos 的精简版 ,顾名思义就是少了很多实用功能.当初下载这个就是因为广告比较少一些,没有全屏幕的广告. 好了,录了音,想分享和传到电脑要怎么弄呢? ...
- 微信网页Audio自动播放(IOS安卓)
尝试很多网上的方法无效,自己整理的可行方案 //之前一直是用dom元素(在ios下无效)<audio ref="audio" loop><source :src= ...
- Audio Unit: iOS中最底层最强大的音频控制API
阅读的前提: Audio Session基础(Audio Session) Core Audio基本数据结构(Core Audio) 音视频基础知识 C/C++ 简单数据结构,函数使用 以下概念是文中 ...
- Audio Unit: iOS中最底层最强大音频控制API
阅读前提: Audio Session基础(Audio Session) Core Audio基本数据结构(Core Audio) 音视频基础知识 C/C++ 简单数据结构,函数使用 以下概念是文中常 ...
- iOS-Core Bluetooth Background Processing for iOS Apps(API Reference) the fifth part
Core Bluetooth Background Processing for iOS Apps 对于iOS程序,它是至关重要的,它知道你的app是否在前台后者后台运行.一个app后台比前台必须是行 ...
- IOS 4.0 以上版本 home键退出 后台执行代码
今天调查了下IOS 4.0 支持的多任务的事宜,系统是4.2, 初步结果如下: Ios 4.0 多任务不是传统意义上的多任务.只是把程序的状态保存起来,程序挂起.因为Apple还没准备好多任务同时运行 ...
- 超酷的iOS动画集合
github地址: https://github.com/jackyzh/awesome-ios-animation awesome-ios-animation Awesome iOS Animati ...
- IOS 后台运行 播放音乐
iOS 4开始引入的multitask,我们可以实现像ipod程序那样在后台播放音频了.如果音频操作是用苹果官方的AVFoundation.framework实现,像用AvAudioPlayer,Av ...
最新文章
- vue 怎么全局到入常量_午后躺椅上看关于Vue的20点
- 通过反射获取成员变量并使用
- Codis的源码编译生成tar包
- 漫画:要跳槽?这道缓存设计题你有必要看看!
- VMware 6.5下载地址及序列号(转,备用)
- ehcache 的 diskStore path
- Asp.net发布的CheckList
- Linux服务器问题排查工具sar命令 sysstat工具集使用
- 过滤器为JSP文件生成静态页面
- JVM、JRE、JDK、java ee sdk with jdk四者的区别
- 单链表反转--Java实现
- Hive窗口函数保姆级教程
- C#利用QRCode动态生成自定义二维码图片
- 在 Win10系统,所有程序默认都以管理员身份运行
- 【在PowerPoint中插入视频的三种方法】
- django自带模块实现翻页功能
- UC-Android逆向工程师面试第2题分析
- USB3.0传输数据、解析处理和帧率计算
- memcache 学习
- Oracle 字段自增
热门文章
- vue cli3.0 解决跨域问题和axios等问题,配合Django
- matlab条形图颜色矩阵,Matlab条形图 – 根据符号和大小填充不同颜色的条形图
- OFFICE技术讲座:连续内容分断的规则
- 怎样获得正确的LINUX用户的文档音乐视频等目录?
- C代码中__LINE__输出时与代码行号不同的解决办法
- Windows BAT中7zip压缩时排除某些目录
- 检查库文件的rpath命令
- Linux上RandomAccessFile访问FTP文件出错
- 为了中性含义替换man,英文可以引入拼音ren
- 亲身经历:如何判断一个字符在a/z之前?