AudioUnit - iOS端的音频处理框架

2020-05-15  本文已影响0人  哈库呐玛塔塔__

简单介绍

在iOS平台,所有音频框架的底层都是基于AudioUnit实现的。比如熟悉的AVFoundation,AudioToolBox等等,这些框架都封装了AudioUnit,然后提供了更高层的API。
主要的功能:
1.使用低延迟的音频I/O
2.多录声音的合成并且回访
3.回声消除,Mix两轨音频,以及均衡器,压缩器,混响器等效果器。
4.需要图状结构来处理音频,可以将音频处理模块组装到灵活的图状结构中。这是iOS中唯一提供此功能的音频API

简单使用

步骤:

创建音频会话AudioSession image.png 构建一个AudioUnit,设置AudioUnit参数,首先构建一个AudioUnit描述的结构体 image.png

Audio的分类

按照用途分为五大类型

1.Effect Unit kAudioUnitType_Effect 主要提供声音特效处理的功能

常用子类型如下:

2.Mixer Unit kAudioUnitType_Mixer 主要提供Mix多路声音的功能

常用子类型如下:
3DMixer 和 多路声音混音的效果器kAudioUnitSubType_MultiChannelMixer

3.I/O Unit kAudioUnitType_Output 提供I/O功能

RemoteIO 采集音频与播放音频
Generic OutPut  只使用输出,不需要麦克风,比如播放文件

4.FormatConverter 提供格式的转换

5.Generator 提供播放器的功能

用这个描述来构造真正的AudioUnit有两种方式。
第一种:直接使用AudioUnit裸的创建方式;
根据AudioUnit的描述,找出实际的AudioUnit类型。

第二种:使用AUGraph和AUNode来构建;
构建一个AUGraph完成一个音频播放的功能


image.png
上一篇 下一篇

猜你喜欢

热点阅读