版本记录
版本号 | 时间 |
---|---|
V1.0 | 2018.06.24 |
前言
AudioUnit框架作为您的应用程序添加复杂的音频操作和处理功能。 创建在主机应用程序中生成或修改音频的音频单元扩展。接下来几篇我们就一起看一下这个框架,感兴趣的看上面几篇文章。
1. AudioUnit框架详细解析(一) —— 基本概览
2. AudioUnit框架详细解析(二) —— 关于Audio Unit Hosting之概览(一)
3. AudioUnit框架详细解析(三) —— 关于Audio Unit Hosting之如何使用本文档和参考资料(二)
4. AudioUnit框架详细解析(四) —— 音频单元提供快速的模块化音频处理之iOS中的Audio Units(一)
5. AudioUnit框架详细解析(五) —— 音频单元提供快速的模块化音频处理之在Concert中使用两个音频单元API(二)
6. AudioUnit框架详细解析(六) —— 音频单元提供快速的模块化音频处理之使用标识符来指定和获取音频单元(三)
Use Scopes and Elements to Specify Parts of Audio Units - 使用范围和元素来指定音频单元的部分
音频单元的各个部分被组织成范围和元素,如图1-2所示。 当调用一个函数来配置或控制音频单元时,可以指定范围和元素来标识函数的特定目标。
范围scope是音频单元中的编程上下文。 虽然名称global scope
可能建议使用,但这些上下文从不嵌套。 您可以通过使用Audio Unit Scopes
枚举中的常量来指定要定向的范围。
元素element是嵌套在音频单元范围内的编程上下文。 当元素是输入或输出范围的一部分时,它类似于物理音频设备中的信号总线 - 因此有时称为总线。 这两个术语 - 元素和总线(element and bus)
- 在音频单元编程中指向完全相同的东西。 本文档在强调信号流时使用bus
,并在强调音频单元的特定功能方面(如I / O单元的输入和输出单元)时使用element
(请参阅Essential Characteristics of I/O Units
)。
您可以通过零索引整数值指定一个元素(或总线)。 如果设置作为一个整体适用于作用域的属性或参数,请指定元素值为0。
图1-2说明了音频单元的一种通用架构,其中输入和输出上的元素数量相同。 但是,各种音频单元使用各种体系结构。 例如,混合器单元可能具有多个输入elements,但具有单个输出elements。 尽管体系结构有所不同,您可以将您在此学到的有关scopes and elements
的内容扩展到任何音频单元。
图1-2底部显示的global scope
适用于整个音频单元,并且不与任何特定的音频流关联。 它只有一个元素,即元素0。某些属性(如每个切片的最大帧数(kAudioUnitProperty_MaximumFramesPerSlice)
)仅适用于global scope
。
输入和输出scope
直接参与通过音频单元移动一个或多个音频流。 正如您所期望的那样,音频在输入范围输入并在输出范围离开。 例如,属性或参数可以作为整体应用于输入或输出范围,如元素计数属性(kAudioUnitProperty_ElementCount)
的情况。 其他属性和参数(例如,启用I / O属性(kAudioOutputUnitProperty_EnableIO)
或卷参数(kMultiChannelMixerParam_Volume)
)适用于范围内的特定元素。
后记
本篇主要讲述了使用范围和元素来指定音频单元的部分,感兴趣的给个赞或者关注~~~~