iOS 10 音频相关框架及工具总结

2017-01-19  本文已影响0人  珈谊

iOS 9以来,相关音频编程的框架越来越趋于完善,较之前版本有很大变化,至iOS 10,大量主要Framework已经全部用swift语言实现,性能优越,编程效率大大提高,现整理总结相关内容如下:

主要音频相关API框架

iOS音频相关API框架.png

底层CoreAudio因为大量C风格代码,基础保持不变的前提下,之上AudioToolBox部分功能移动至AVFoundation,并用swift重新封装成OOP风格,特别强化完善了AVAudioEngine的高效性能,使得复杂的音频操作不再完全依赖C代码。

AVAudioSession

AVAudioSession完全取代旧版AudioSession,使得App可以创造出更好的用户体验。

AVAudioSession Configuration.png AVAudioSession Interact.png

AVAudioSession 编程要点

  1. 注册系统notifications
  1. 为不同的应用需求设置category, mode, and options
  2. 设置并激活Session状态
  3. 响应并处理notifications

AVAduioPlayer 简单播放音频文件(低延时)

AVAudioRecorder 简单录音

AVPlayer 播放器

支持播放控制的UI类,包含AVPlayerView / AVPlayerViewController
可以同时播放音频和视频

AVAudioEngine 高级的音频播放和录制

AVAudioEngine是一套由Objective-C/Swift重新封装的功能丰富,性能强大的API,可以用简洁的方式处理实时音频(延时在5-20ms以内),管理AudioUnit,配置AUGraph节点,用流程化的方式配置、组合音频路由,还支持3D空间定位。

AVAudioEngine应用场景一.png AVAudioEngine应用场景二.png AVAudioEngine 3D 配置.png

相关工具类

工具类间关系.png 工具类和AVAudioEngine的关系.png

CoreMIDI

MIDI相关的内容在iOS9以后也得到了充分的完善,不仅可以支持外部MIDI设备,还加入了AVAudioSequencer音序器,控制MIDI数据更加简洁了。

MIDI相关API.png

更多详细内容请参考WWDC 2016 507 - Delivering an Exceptional Audio Experience

上一篇 下一篇

猜你喜欢

热点阅读