Swift中播放音频可以通过AVPlay,AVAudioPlayer和StreamingKit 进行播放音频
- AVAudioPlayer 仅播放本地音乐文件,如果要播放网络文件需要将网络文件下载下来进行播放
- AVPlayer既可以播放本地音频文件,也可以播放在线音频
- StreamingKit 是一个适用于 iOS 和 Mac OSX 的音频播放流媒体库。StreamingKit 提供了一个简洁的面向对象 API,用于在 CoreAudio 框架下进行音频的解压和播放(采用硬件或软件编解码器)处理,Straming的主要机制是对从播放器输入的数据源进行解耦,从而使高级定制的数据源可以进行诸如基于流媒体的渐进式下载、编码解码、自动缓存、动态缓冲之类的处理,treamingKit 是唯一支持不同格式音频文件无缝播放的音频播放流媒体库
StreamingKit Github 主页
StreamKit主要特点
- 1 免费开源、简洁的 API、 可读性很强的源代码
- 2 精心使用多线程提供了一个快速响应的 API,既能防止线程阻塞,又能保证缓冲流畅缓冲并无缝播放所有不同格式的音频文件
- 3 容易实现的音频数据源(支持本地、HTTP、AutoRecovering HTTP 作为数据源)容易 扩展数据源以支持自动缓冲、编码等
- 4 低耗电和低 CPU 使用率(CPU 使用率 0%,流式处理时使用率为 1%)
- 5 优化线性数据源,仅随机访问数据源需要搜索
- 6 StreamingKit0.2.0 使用 AudioUnit API 而不是速度较慢的音频队列 API,允许对原始 PCM 数据进行实时截取以获得并行测量、EQ 等特征
- 内置的均衡器(iOS5.0 及以上版本、OSX10.9 及以上版本)支持音频播放的同时动态改变、启用、禁用均衡器
AVPlayer 播放音频的代码
let playItem = AVPlayerItem(url: url)
player = AVPlayer(playerItem: playItem)
这段代码完成了资源的加载,资源的组织和资源的播放