文章目录

  • I . AAudio 音频流创建流程
  • II . AAudio 音频流构建器
  • III . AAudio 音频流构建器 代码示例
  • IV . AAudio 音频流构建器创建方法 AAudio_createStreamBuilder
  • V . AAudio 音频流 音频设备设置
  • VI . AAudio 音频流 音采样设置
  • VII . AAudio 音频流构建器 销毁

I . AAudio 音频流创建流程


使用 AAudio 音频库 , 首先需要导入 AAudio.h 头文件 ;

#include <AAudio.h>

创建 AAudio 音频流 , 需要先创建 AAudio 音频流构建器 , 然后在通过该构建器创建音频流 ;

    //创建构建器 , AAudio 音频流通过该构建器创建//声明 AAudio 音频流构建器 指针AAudioStreamBuilder *builder = nullptr;//创建 AAudio 音频流构建器 , 注意传入二维指针aaudio_result_t result = AAudio_createStreamBuilder(&builder);

下面会着重对上面的流程细节进行详细解析 ;
每个方法的参数 , 原理 , 返回值 等细节都会讲解到 ;

II . AAudio 音频流构建器


AAudio 音频流构建器 ( AAudioStreamBuilder ) :

  • ① 构建器模式 ( 设计模式 ) : 创建一个对象实例时 , 不直接进行创建操作 , 而是先创建一个构建器 , 然后通过构建器创建该实例 ;
  • ② 音频流 构建器 : AAudio 音频流需要使用相应构建器进行创建 , 首先要先创建 AAudio 音频流构建器 , 然后再通过构建器创建 AAudio 音频流 ;

III . AAudio 音频流构建器 代码示例


创建 AAudio 音频流构建器 :

  • ① 导入包 : 使用 AAudio 音频库前 , 先把头文件 AAudio.h 导入 ;
#include <AAudio.h>
  • ② 创建 AAudio 音频流 : 先声明音频流构建器指针 , 然后将该指针地址传入 AAudio_createStreamBuilder 方法 , 注意参数是一个二维指针 ;
    //创建构建器 , AAudio 音频流通过该构建器创建//声明 AAudio 音频流构建器 指针AAudioStreamBuilder *builder = nullptr;//创建 AAudio 音频流构建器aaudio_result_t result = AAudio_createStreamBuilder(&builder);

IV . AAudio 音频流构建器创建方法 AAudio_createStreamBuilder


AAudio 音频流构建器创建方法解析 :

  • ① 方法原型 :
AAUDIO_API aaudio_result_t AAudio_createStreamBuilder(AAudioStreamBuilder **builder
)
  • ② 方法作用 : 创建 AAudio 音频流构建器 , 该构建器可以用于创建 AAudio 音频流 ;

V . AAudio 音频流 音频设备设置


音频流 相关 默认设置 :

  • ① 音频设备 ID 默认 : AAudio 音频流刚创建时 , 没有指定音频设备 , 那么使用当前默认的 输入 或 输出 音频设备 , 即 耳机 > 自带音响 , 外接麦克风 > 自带麦克风 ;
  • ② 音频流方向 默认 : 默认的音频流方向是输出方向 , AAUDIO_DIRECTION_OUTPUT , 即 使用 耳机 或 音箱 发音 ;
  • ③ 音频设备访问模式 默认 : 默认的音频设备访问模式为 AAUDIO_SHARING_MODE_SHARED , 共享模式 , 非独占模式 ( AAUDIO_SHARING_MODE_EXCLUSIVE ) ;

VI . AAudio 音频流 音采样设置


音频流 在打开时进行的设置 :

  • ① 必要设置 : 有一些必须设置的配置项 , 没有默认选项 , 但是必须进行设置 , 在音频设备打开时进行配置 ; 下面的配置就是这种类型的配置 ;
  • ② 采样数据格式 : 采样是 浮点型 ( AAUDIO_FORMAT_PCM_FLOAT ) 的 还是 16 位整型 ( AAUDIO_FORMAT_PCM_I16 ) 的 ;
  • ③ 每帧的采样数 : 每个数据帧有多少个 PCM 采样 ;
  • ④ 音频流采样率 : 如 44100 Hz , 表示 1 秒钟有 44100 个 音频 采样 点 ;

VII . AAudio 音频流构建器 销毁


AAudio 音频流构建器 销毁 : 使用 AAudio 音频流构建器 ( AAudioStreamBuilder ) 创建完 AAudio 音频流后 , 必须 调用 AAudioStreamBuilder_delete() 方法 销毁该构建器 , 释放相关资源 ;

AAudio 音频流构建器 AAudioStreamBuilder 创建完毕之后 , 需要对 AAudio 音频流 进行一系列的设置 , 下面开始讲解重要的 七个设置 :
① 音频设备 ID ,
② 音频流方向 ,
③ 音频设备共享模式 ,
④ 音频流采样率 ,
⑤ 音频流通道个数 ,
⑥ 音频样本格式 ,
⑦ 每帧采样数 ;

【Android 高性能音频】AAudio 音频流 构建器 ( AAudio.h | 流构造器 | 音频设备配置 | 音频采样配置 | 构建器销毁 )相关推荐

  1. 【Android 高性能音频】AAudio 音频流 缓冲区 简介 ( AAudio 音频流内部缓冲区 | 缓冲区帧容量 | 缓冲区帧大小 | 音频数据读写缓冲区 )

    文章目录 I . AAudio 音频流内部缓冲区 与 音频数据读写缓冲区 概念 II . AAudio 音频流内部缓冲区 缓冲区帧容量 BufferCapacityInFrames 与 缓冲区帧大小 ...

  2. 【Android 高性能音频】AAudio 音频流 数据回调细节 ( 数据回调函数优先级 | 数据回调函数 | 采样率 | 采样数 | 缓冲区调整 | 线程不安全 )

    文章目录 I . 数据回调函数优先级 II . 数据回调函数 相关内容 III . 采样率 处理细节 IV . 数据回调函数 每次 采样个数 numFrames V . 数据回调函数 缓冲区 ( AA ...

  3. 【Android 高性能音频】AAudio 音频流 音频设备 相关配置 ( 音频设备ID | 音频流方向 | 音频设备共享模式 )

    文章目录 I . AAudio 音频流创建流程 II . AAudio 音频流构建器 设置音频设备 ID AAudioStreamBuilder_setDeviceId III . AAudio 音频 ...

  4. 【Android 高性能音频】AAudio 音频流 样本缓冲 相关配置 ( 通道数 | 样本格式 | 帧缓冲 | 采样率 | 每帧样本数 == 通道数 )

    文章目录 I . AAudio 音频流创建流程 II . AAudio 音频流构建器 设置 通道数 AAudioStreamBuilder_setChannelCount III . AAudio 音 ...

  5. 【Android 高性能音频】AAudio 音频库 简介 ( AAudio 音频库简介 | 音频流 | 音频设备 | 共享模式 | 数据模式 )

    文章目录 I . AAudio 音频库 简介 II . AAudio 音频流 三要素 ( 设备 | 共享模式 | 数据格式 ) III . AAudio 音频设备 IV . AAudio 音频设备获取 ...

  6. 【Android 高性能音频】AAudio 音频流 PCM 采样 的 采样 缓冲 播放 的 连续机制 ( 数据回调机制 | 数据回调函数指针 | 实现数据回调函数 | 设置数据回调函数 )

    文章目录 I . AAudio 音频流 采样 缓冲 播放 的连续机制 II . AAudio 音频流 数据回调函数 函数指针类型定义 III . AAudio 音频流 数据回调函数 实现 IV . A ...

  7. 【Android 高性能音频】AAudio 音频流 读写操作 ( 音频流读写数据 | 阻塞时间设定 | 注意事项 | AAudioStream_read | AAudioStream_write )

    文章目录 I . AAudio 音频流 读写操作 简介 II . AAudio 音频流 读写操作 阻塞时间设定 III . AAudio 音频流 读取 固定帧数 操作 注意点 IV . AAudio ...

  8. 【Android 高性能音频】Oboe 播放器开发 ( 为 OpenSL ES 配置参数以获得最佳延迟 | Oboe 音频流 | Oboe 音频设备 )

    文章目录 一.获得最佳延迟 二.Oboe 音频流 三.Oboe 音频设备 Oboe GitHub 主页 : GitHub/Oboe ① 简单使用 : Getting Started ② Oboe 全指 ...

  9. 使用Android高性能音频--OpenSL ES和AAudio

    AAudio的概念介绍: AAudio 是作为 OpenSL ES 库的轻量级原生 Android 替代项而开发. 与 OpenSL ES 相比,AAudio API 不仅较小,而且容易使用. AAu ...

最新文章

  1. 人力资源部如何运用OKR?看三大层面最新OKR模板
  2. 找出MySQL瓶颈的基准测试和剖析
  3. Python3.5入门到项目实战(104天课程)
  4. Vue监控器watch的全面解析
  5. 复旦大学长跑协会财务制度(初稿)
  6. 《JavaScript DOM编程艺术》笔记
  7. 主站系统服务器选择,配电网自动化主站系统的结构_功能及操作系统的选择.doc...
  8. Python练习之购物车
  9. 通过json发送html代码_Python简单程序爬取天气信息,定时以邮件发送给朋友
  10. 网络邻居上不显示计算机,网上邻居不显示或找不到自己电脑怎么办?
  11. Android 10.0 关机界面全屏显示(UI全屏显示)
  12. linux乌班图图形化设置ip,在Ubuntu 18.04 Desktop图形中配置静态和动态IP地址的方法...
  13. ArcGIS笔记2_如何将经纬度WGS84地理坐标系转换为米单位CGCS2000投影坐标系
  14. 原来在朋友眼里,我是一个闪闪发光的人
  15. 元宇宙赋能传统产业创新架构
  16. c语言单片机停车场收费系统,基于51单片机停车场车位引导系统设计
  17. 英文网站的优化怎么判断是否到位
  18. 【微信小游戏】微信对战小游戏知识储备
  19. 问题记录:从EXCEL2013导入数据CSV文件,提示报错“此文本文件包含的数据无法放置在一个工作表中。如要继续导入可容纳的数据,请单击确定。。。”
  20. Mac related cmd

热门文章

  1. Sqlserver 优化的方法
  2. 48.结构体位域获取内存模型
  3. fiddler抓取https请求
  4. 支付宝接口参数调用相关
  5. Akka Cluster原理与应用
  6. Android SlidingMenu以及ActionBarSherlock的基础使用教程
  7. 软件项目经理需具备什么样的技术水平?
  8. .Net Core Cors中间件解析
  9. BZOJ1296:[SCOI2009]粉刷匠
  10. (转载)VS2010/MFC编程入门之五十四(Ribbon界面开发:使用更多控件并为控件添加消息处理函数)...