开发音乐播放器时遇到的问题:
1,当在使用其他音乐播放软件播放音乐时,进入APP,未打开音乐播放模块,此时外面第三方音乐播放器停止播放。
需求:使用第三方播放音乐软件时,此时进入APP浏览其他内容,如果不打开音乐播放模块,则不停止第三方音乐软件的使用。
同类产品测试:其他厂商音乐播放软件,发现从网易云音乐进入到QQ音乐,会暂停,但是使用斗鱼时发现,从其他音乐播放软件进入,未关闭。
问题原因:查看代码文档,发现关键在于这一行代码[[AVAudioSession sharedInstance] setActive:YES error:nil]; 它控制着音乐播放器的激活,执行时机过早,导致其它第三方音乐软件被关闭
解决办法:触发APP内音乐模块播放功能,才调用上面激活代码
2,播放网络音乐,发现置于后台的情况下,一会音乐自己关闭,采用如下办法:申请了一个后台任务ID
// 下面的代码主要是为了防止APP进入后台后,申请一个后台ID,防止后台播放音乐被暂停
1 | UIApplication *app =[UIApplication sharedApplication]; |
3,使用AVPlayer播放一个远程mp3地址,监听playItem的status发现当已经准备好播放时,调用AVPlayer的play方法播放,需要等待好长时间才能播放。解决办法:
1 | - (void)play { |
建议文章:
- 《MP3缓冲2MB才开始播放的解决方法》
- 《实现输出h264直播流的rtmp服务器》
- 《iOS音频研究》
- 《iOS音频开发(录音+播放+剪辑+合成+压缩转码)》
- 《iOS视频开发经验》
- 《iOS 系统中,H.264 视频流可以硬件解码吗? 具体如何实现?》
- 《iOS视频边下边播–缓存播放数据流》
- 《iOS 继续播放或暂时其他app的背景音乐》
- 《利用NSURLProtocol和本地代理实现在线视频边播放边缓存》
- 《Audio Session 编程指南(一)》
- 《HLS-iOS视频播放服务架构深入探究(一)》
- 《最近市面上很火爆的17、花椒、虎牙直播、periscope的直播功能,是自研还是第三方直播SDK服务?》
- 《HTTP Live Streaming直播(iOS直播)技术分析与实现》
- 《[总结]FFMPEG视音频编解码零基础学习方法》
- 《IOS使用ijkPlayer》
- 《iOS弹幕(源码)实现原理解析》
- 本文链接:http://songdeveloper.github.io/2017/01/04/audio/
- 版权声明:本博客所有文章除特别声明外,均默认采用 许可协议。
GitHub Discussions