19

iOS采集录制音视频API选择推荐

 4 years ago
source link: https://xiaodongxie1024.github.io/2019/05/11/20190511_AudioSelect/?amp%3Butm_medium=referral
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

对于整个iOS体系中音视频众多框架,我们不应该盲目选择,针对音视频的采集录制,需要根据自己的实际需求选择最适合项目的API,以致于最高效的完成项目任务.

以下是一些主要中低层框架的选择推荐与原理讲述,代码实战,可以通过以下链接了解你需要的,也可以从文中链接找到对应文章,去github下载相应的Demo帮助你快速开发.

iOS中音频架构图

QBvm2ub.png!web

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
  • 音频录制: Audio File - 简书 , 掘金 , 博客

Audio Queue与Audio Unit的选择

  • Audio Queue: 以队列的形式高效采集视频数据,可以直接设置采集PCM,AAC等压缩,未压缩类型格式音频数据.
  • Audio Unit: 比起Audio Queue, 提供更加专业音频处理,支持混合,均衡,格式转换和实时输入/输出,用于录制,播放,离线渲染和实时对话,例如VoIP(互联网协议语音).可以从iOS应用程序动态加载和使用它.

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK