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

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

文章目录

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>

1

② 创建 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 ,
② 音频流方向 ,
③ 音频设备共享模式 ,
④ 音频流采样率 ,
⑤ 音频流通道个数 ,
⑥ 音频样本格式 ,
⑦ 每帧采样数 ;


目录
相关文章
|
2月前
|
安全 Android开发 iOS开发
Android vs. iOS:构建生态差异与技术较量的深度剖析###
本文深入探讨了Android与iOS两大移动操作系统在构建生态系统上的差异,揭示了它们各自的技术优势及面临的挑战。通过对比分析两者的开放性、用户体验、安全性及市场策略,本文旨在揭示这些差异如何塑造了当今智能手机市场的竞争格局,为开发者和用户提供决策参考。 ###
|
3月前
|
存储 Java Android开发
探索安卓应用开发:构建你的第一个"Hello World"应用
【9月更文挑战第24天】在本文中,我们将踏上一段激动人心的旅程,深入安卓应用开发的奥秘。通过一个简单而经典的“Hello World”项目,我们将解锁安卓应用开发的基础概念和步骤。无论你是编程新手还是希望扩展技能的老手,这篇文章都将为你提供一次实操体验。从搭建开发环境到运行你的应用,每一步都清晰易懂,确保你能顺利地迈出安卓开发的第一步。让我们开始吧,探索如何将一行简单的代码转变为一个功能齐全的安卓应用!
|
2月前
|
Java API Android开发
安卓应用程序开发的新手指南:从零开始构建你的第一个应用
【10月更文挑战第20天】在这个数字技术不断进步的时代,掌握移动应用开发技能无疑打开了一扇通往创新世界的大门。对于初学者来说,了解并学习如何从无到有构建一个安卓应用是至关重要的第一步。本文将为你提供一份详尽的入门指南,帮助你理解安卓开发的基础知识,并通过实际示例引导你完成第一个简单的应用项目。无论你是编程新手还是希望扩展你的技能集,这份指南都将是你宝贵的资源。
52 5
|
2月前
|
前端开发 JavaScript 测试技术
Android适合构建中大型项目的架构模式全面对比
Android适合构建中大型项目的架构模式全面对比
46 2
|
2月前
|
开发工具 Android开发 iOS开发
Android vs iOS:构建移动应用时的关键考量####
本文深入探讨了Android与iOS两大移动平台在开发环境、性能优化、用户体验设计及市场策略方面的差异性,旨在为开发者提供决策依据。通过对比分析,揭示两个平台各自的优势与挑战,帮助开发者根据项目需求做出更明智的选择。 ####
|
2月前
|
调度 Android开发 开发者
构建高效Android应用:探究Kotlin多线程优化策略
【10月更文挑战第11天】本文探讨了如何在Kotlin中实现高效的多线程方案,特别是在Android应用开发中。通过介绍Kotlin协程的基础知识、异步数据加载的实际案例,以及合理使用不同调度器的方法,帮助开发者提升应用性能和用户体验。
51 4
|
2月前
|
编解码 Android开发 UED
构建高效Android应用:从内存优化到用户体验
【10月更文挑战第11天】本文探讨了如何通过内存优化和用户体验改进来构建高效的Android应用。介绍了使用弱引用来减少内存占用、懒加载资源以降低启动时内存消耗、利用Kotlin协程进行异步处理以保持UI流畅,以及采用响应式设计适配不同屏幕尺寸等具体技术手段。
51 2
|
2月前
|
编译器 Android开发
配置环境变量,使CMakeLists.txt可直接使用Android NDK工具链编译项目
配置环境变量,使CMakeLists.txt可直接使用Android NDK工具链编译项目
|
2月前
|
Java Android开发 Windows
玩转安卓之配置gradle-8.2.1
为安卓开发配置Gradle 8.2.1,包括下载和解压Gradle、配置环境变量、修改配置文件以增加国内镜像,以及在Android Studio中配置Gradle和JDK的过程。
87 0
玩转安卓之配置gradle-8.2.1
|
3月前
|
开发框架 Android开发 iOS开发
探索安卓与iOS开发的差异:构建未来应用的指南
在移动应用开发的广阔天地中,安卓与iOS两大平台各占半壁江山。本文将深入浅出地对比这两大操作系统的开发环境、工具和用户体验设计,揭示它们在编程语言、开发工具以及市场定位上的根本差异。我们将从开发者的视角出发,逐步剖析如何根据项目需求和目标受众选择适合的平台,同时探讨跨平台开发框架的利与弊,为那些立志于打造下一个热门应用的开发者提供一份实用的指南。
61 5