前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Android 高性能音频】AAudio 音频流 构建器 ( AAudio.h | 流构造器 | 音频设备配置 | 音频采样配置 | 构建器销毁 )

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

作者头像
韩曙亮
发布2023-03-27 17:32:39
5360
发布2023-03-27 17:32:39
举报
文章被收录于专栏:韩曙亮的移动开发专栏

文章目录

I . AAudio 音频流创建流程

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

代码语言:javascript
复制
#include <AAudio.h>

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

代码语言:javascript
复制
    //创建构建器 , 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 导入 ;
代码语言:javascript
复制
#include <AAudio.h>
  • ② 创建 AAudio 音频流 : 先声明音频流构建器指针 , 然后将该指针地址传入 AAudio_createStreamBuilder 方法 , 注意参数是一个二维指针 ;
代码语言:javascript
复制
    //创建构建器 , AAudio 音频流通过该构建器创建

    //声明 AAudio 音频流构建器 指针
    AAudioStreamBuilder *builder = nullptr;

    //创建 AAudio 音频流构建器
    aaudio_result_t result = AAudio_createStreamBuilder(&builder);
IV . AAudio 音频流构建器创建方法 AAudio_createStreamBuilder

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

  • ① 方法原型 :
代码语言:javascript
复制
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 , ② 音频流方向 , ③ 音频设备共享模式 , ④ 音频流采样率 , ⑤ 音频流通道个数 , ⑥ 音频样本格式 , ⑦ 每帧采样数 ;

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-11-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
    • I . AAudio 音频流创建流程
      • II . AAudio 音频流构建器
        • III . AAudio 音频流构建器 代码示例
          • IV . AAudio 音频流构建器创建方法 AAudio_createStreamBuilder
            • V . AAudio 音频流 音频设备设置
              • VI . AAudio 音频流 音采样设置
                • VII . AAudio 音频流构建器 销毁
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档