iOS音频学习之五做个本地播放器

经过前面几章,我们要来写一个简单的本地播放器,运用到之前说到的AudioFileStream,AudioFile,AVAudioSession

AudioFileStream vs AudioFile

两种都是解析音频信息及分离帧,为什么要同时使用
1.对于网络流播放必须要AudioFileStream,因为我们之前在AudioFile说过Open的时候要求使用者提供数据,如果提供的数据不足会直接跳过并且返回错误码,而数据不足的情况在网络流中很常见,所以没办法使用AudioFile单独进行网络流数据的解析
2.本地音乐播放选用AudioFile更为合适,原因是AudioFileStream是主要用在流播放,虽然不限于网络流和本地流,但是流数据是按顺序提供的所以AudioFileStream也是顺序解析的,被解析的音频文件还是需要符合流播放的特性,对于不符合的本地文件AudioFileStream会在Parse返回NotOptimized错误;而AudioFile的解析过程并不是顺序的,它会在解析时通过回调向使用者索要某个位置的数据,即使数据在文件末尾也没关系,所以AudioFile适用于所有类型的音频文件;

所以我们需要同时使用这两个类,前者可以应对流播放的音频数据,实现边播边缓冲的体验,用AudioFile处理无法流播放的音频数据,让用户在下载完成之后仍然能够进行播放

具体demo看https://github.com/chanbendong/ZJAudioPlayer

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 原文链接http://www.cnblogs.com/kenshincui/p/4186022.html 音频在i...
    Hyman0819阅读 22,100评论 4 74
  • 初次接触JS,对一些基本概念进行探究。 this与优先级 this是一个完全根据调用点(函数是如何被调用的)而为每...
    ShawnZhong阅读 4,066评论 1 0
  • 突然间就遭到了冷落,却不知道为什么?想了很多的理由,又否定了这些理由。如果这是一部推理剧,那就需要更多的细节。有时...
    夹白阅读 1,414评论 0 0
  • 思考了很久的东西一直不执行等于没想。从今日开始完成早晚两个清单。
    艾三毛阅读 1,540评论 0 0

友情链接更多精彩内容