AudioUnit框架详细解析(十九) —— 从选择设计模式开始之具有渲染回调函数的I / O(三)

版本记录

版本号 时间
V1.0 2018.07.04

前言

AudioUnit框架作为您的应用程序添加复杂的音频操作和处理功能。 创建在主机应用程序中生成或修改音频的音频单元扩展。接下来几篇我们就一起看一下这个框架,感兴趣的看上面几篇文章。
1. AudioUnit框架详细解析(一) —— 基本概览
2. AudioUnit框架详细解析(二) —— 关于Audio Unit Hosting之概览(一)
3. AudioUnit框架详细解析(三) —— 关于Audio Unit Hosting之如何使用本文档和参考资料(二)
4. AudioUnit框架详细解析(四) —— 音频单元提供快速的模块化音频处理之iOS中的Audio Units(一)
5. AudioUnit框架详细解析(五) —— 音频单元提供快速的模块化音频处理之在Concert中使用两个音频单元API(二)
6. AudioUnit框架详细解析(六) —— 音频单元提供快速的模块化音频处理之使用标识符来指定和获取音频单元(三)
7. AudioUnit框架详细解析(七) —— 音频单元提供快速的模块化音频处理之使用范围和元素来指定音频单元的部分(四)
8. AudioUnit框架详细解析(八) —— 音频单元提供快速的模块化音频处理之使用属性来配置音频单元(五)
9. AudioUnit框架详细解析(九) —— 音频单元提供快速的模块化音频处理之使用参数和UIKit为用户提供控制(六)
10. AudioUnit框架详细解析(十) —— 音频单元提供快速的模块化音频处理之I / O单元的基本特性(七)
11. AudioUnit框架详细解析(十一) —— 音频处理图管理音频单元之音频处理图具有一个I / O单元(一)
12. AudioUnit框架详细解析(十二) —— 音频处理图管理音频单元之音频处理图提供线程安全性(二)
13. AudioUnit框架详细解析(十三) —— 音频处理图管理音频单元之音频使用Pull通过图表(三)
14. AudioUnit框架详细解析(十四) —— 呈现回调函数将音频馈送到音频单元之了解音频单元呈现回调函数(一)
15. AudioUnit框架详细解析(十五) —— 音频流格式启用数据流之使用AudioStreamBasicDescription结构(一)
16. AudioUnit框架详细解析(十六) —— 音频流格式启用数据流之了解何处以及如何设置流格式(二)
17. AudioUnit框架详细解析(十七) —— 从选择设计模式开始之I / O传递(一)
18. AudioUnit框架详细解析(十八) —— 从选择设计模式开始之没有渲染回调函数的I / O(二)

I/O with a Render Callback Function - 具有渲染回调函数的I / O

通过在远程I / O单元的输入和输出element之间放置渲染回调函数,您可以在传入音频到达输出硬件之前对其进行操作。 在一个非常简单的情况下,您可以使用渲染回调函数来调整输出音量。 但是,您可以添加颤音,铃声调制,回声或其他效果。 通过使用Accelerate框架中提供的傅里叶变换和卷积函数(请参阅Accelerate Framework Reference),您的可能性是无穷无尽的。 该模式如图2-3所示。

AudioUnit框架详细解析(十九) —— 从选择设计模式开始之具有渲染回调函数的I / O(三)_第1张图片
Figure 2-3 Simultaneous I/O with a render callback function

如图所示,此模式使用远程I / O单元的两个元素,如本章前面的模式。 将渲染回调函数附加到输出元素的输入范围。 当该元素需要另一组音频样本值时,它会调用您的回调。 反过来,您的回调通过调用远程I / O单元的输入元素的渲染回调函数来获取新样本。

与其他I / O模式一样,您必须在远程I / O单元上显式启用输入,因为默认情况下禁用输入。 而且,对于其他I / O模式,您无需配置任何音频数据缓冲区。

请注意,当您使用渲染回调函数建立从一个音频单元到另一个音频单元的音频路径时,就像在此模式中一样,回调取代了音频单元连接。

后记

本篇主要讲述了具有渲染回调函数的I / O,感兴趣的给个赞或者关注~~~~

AudioUnit框架详细解析(十九) —— 从选择设计模式开始之具有渲染回调函数的I / O(三)_第2张图片

你可能感兴趣的:(AudioUnit框架详细解析(十九) —— 从选择设计模式开始之具有渲染回调函数的I / O(三))