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传递(一)

I/O Without a Render Callback Function -

Remote I/O单元的元素之间添加一个或多个其他音频单元,可以构建更有趣的应用程序。 例如,您可以使用多声道混音器单元Multichannel Mixer unit将传入的麦克风音频定位在立体声场中或提供输出音量控制。 在这种设计模式中,在播放中仍然没有回调函数,如图2-2所示。 这简化了模式,但限制了它的实用性。 如果没有渲染回调函数,则无法直接操作音频。

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

在此模式中,您可以像在传递模式中一样配置远程I / O单元的两个元素。 要设置多声道混音器单元Multichannel Mixer unit,必须在混音器输出上设置流格式的采样率,如图2-2所示。

混音器的输入流格式通过传输从远程I / O单元的输入元件的输出,通过音频单元连接自动建立。 类似地,由于来自混合器单元输出的传播,远程I / O单元输出元素的输入范围的流格式由音频单元连接建立。

在这种模式的任何实例中 - 实际上,除了I / O单元之外,每当您使用其他音频单元时 - 必须按照Audio Unit Properties Reference中的描述设置kAudioUnitProperty_MaximumFramesPerSlice属性。

pass-through模式一样,您无需配置任何音频数据缓冲区。

后记

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

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

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