解决使用个推后背景音乐音量变小问题
2015-11-13 12:04
375 查看
问题描述:
项目集成个推之后,假如后台APP正在播放音乐,结果一打开项目APP,正在播放的音乐的音量就自动降低了。
解决方案2:放在个推初始化代码之前即可
实际效果为:进入APP后背景音乐就自动关掉了,手动重新打开音乐后,音量不变小。
解决方案1:在初始化个推之后加上以下代码即可(实测在iPhone4 7.1.2可以用,但是在iPhone6 Plus 9.1上却达不到效果)
实际效果为:
会有一瞬间音量降低了,但是又马上恢复了,因为调用setActive为NO的缘故吧;但是上面的setCategory的参数不能随意修改,实际测试过程中改动之后,效果就没了。
待验证的有:
这样做之后,个推后台是否还能申请到足够的时间片运行推送代码。
参考资料:
Technical Q&A QA1668: Playing media while in the background using AV Foundation on iOS
https://developer.apple.com/library/ios/qa/qa1668/_index.html
Defining an Audio Session
https://developer.apple.com/library/prerelease/tvos/documentation/Audio/Conceptual/AudioSessionProgrammingGuide/ConfiguringanAudioSession/ConfiguringanAudioSession.html
iOS 开发 初级:Audio 之 Audio Session - songrotek的专栏 - 博客频道 - CSDN.NET
/article/1352172.html
By:AsionTang
At:2015年11月13日 12:11:27
项目集成个推之后,假如后台APP正在播放音乐,结果一打开项目APP,正在播放的音乐的音量就自动降低了。
解决方案2:放在个推初始化代码之前即可
AVAudioSession *audioSession = [AVAudioSession sharedInstance]; NSError *setCategoryError = nil; BOOL success = [audioSession setCategory:AVAudioSessionCategorySoloAmbient withOptions:AVAudioSessionCategoryOptionMixWithOthers error:&setCategoryError]; if(!success) { NSLogE(@"AVAudioSession setCategory Error:%@",setCategoryError); } else { NSError *setActiveError=nil; success=[audioSession setActive:YES withOptions:AVAudioSessionSetActiveOptionNotifyOthersOnDeactivation error:&setActiveError]; if(!success) { NSLogE(@"AVAudioSession setActive Error:%@",setCategoryError); } }
实际效果为:进入APP后背景音乐就自动关掉了,手动重新打开音乐后,音量不变小。
解决方案1:在初始化个推之后加上以下代码即可(实测在iPhone4 7.1.2可以用,但是在iPhone6 Plus 9.1上却达不到效果)
AVAudioSession *audioSession = [AVAudioSession sharedInstance]; NSError *setCategoryError = nil; BOOL success = [audioSession setCategory:AVAudioSessionCategoryPlayback withOptions:AVAudioSessionCategoryOptionMixWithOthers error:&setCategoryError]; if(!success) { NSLogE(@"AVAudioSession setCategory Error:%@",setCategoryError); } else { NSError *setActiveError=nil; success=[audioSession setActive:NO withOptions:AVAudioSessionSetActiveOptionNotifyOthersOnDeactivation error:&setActiveError]; if(!success) { NSLogE(@"AVAudioSession setActive Error:%@",setCategoryError); } }
实际效果为:
会有一瞬间音量降低了,但是又马上恢复了,因为调用setActive为NO的缘故吧;但是上面的setCategory的参数不能随意修改,实际测试过程中改动之后,效果就没了。
待验证的有:
这样做之后,个推后台是否还能申请到足够的时间片运行推送代码。
参考资料:
Technical Q&A QA1668: Playing media while in the background using AV Foundation on iOS
https://developer.apple.com/library/ios/qa/qa1668/_index.html
Defining an Audio Session
https://developer.apple.com/library/prerelease/tvos/documentation/Audio/Conceptual/AudioSessionProgrammingGuide/ConfiguringanAudioSession/ConfiguringanAudioSession.html
iOS 开发 初级:Audio 之 Audio Session - songrotek的专栏 - 博客频道 - CSDN.NET
/article/1352172.html
By:AsionTang
At:2015年11月13日 12:11:27
相关文章推荐
- 谈谈我自己(创业四个多月)
- websocket 无法找到ws://localhost:8080/WebSocket/message
- POJ2495(棋盘分治,染色)
- linux进程相关概念
- UIview 和 CALayer
- Rails接口(interface)入门
- HBase安装及简单使用
- vim配置及插件安装管理(超级详细)
- editplus快捷键大全
- 关于C语言的fprintf与fwrite使用区别
- Activity启动模式总结
- Adreno Profiler分析任意安卓游戏特效+抓取资源
- 前端开发工程师
- 6个Linux chkconfig命令实例 - 增加,删除,查看和修改services的自动启动选项
- jquery判断div是否显示或者隐藏
- C#判断窗体是否存在重复打开
- 学习JavaScript正则表达式
- 从网络获取图片本地保存
- Spring的方法注入lookup-method(转)
- Linux系统中的sudo命令使用讲解