需求
对于整个iOS体系中音视频众多框架,我们不应该盲目选择,针对音视频的采集录制,需要根据自己的实际需求选择最适合项目的API,以致于最高效的完成项目任务.
以下是一些主要中低层框架的选择推荐与原理讲述,代码实战,可以通过以下链接了解你需要的,也可以从文中链接找到对应文章,去github下载相应的Demo帮助你快速开发.
iOS中音频架构图
1.上层API
对于仅仅想直接播放个音频或视频的需求,没有必要使用底层的API,这些API可以简单的直接调用一些类似start,stop,设置一些资源文件路径就可以做录制与播放.
- 视频播放:AVPlayer
- 视频录制:UIImagePickerController
- 音频播放:AVAudioRecorder
- 音频录制:AVAudioPlayer
以上API如需了解使用自行百度,简单易用.
2.中层API
如果想采集到视频帧,音频帧加以利用,需要使用一些中层的API,对于采集而言,视频最底层即AVCaptureSession,我们可以通过回调函数拿到指定格式的音频视频.录制基本也同理.但对音频而言,如果不对音频有太多具体设置,仅仅做同步,可以直接使用AVCaputureSession中的音频采集.
3.底层,功能最多的API
音频采集方面还可以使用更底层,更好用的Audio Queue, Audio Unit.
Audio Queue与Audio Unit的选择