Android AAudio——C API控制音频流(四)

news2024/11/17 8:30:14

        上一篇文章我们介绍了 C API 中音频流的创建流程,以及打开音频流操作,这里我们再来看一下音频流的其他操作流程

一、音频流操作介绍

1、操作流程图

        下图是状态变化流程图,虚线框表示瞬时状态,实线框表示稳定状态。

2、操作函数

        上图中主要包含下面几个操作函数:

aaudio_result_t result;
// 启动音频流
result = AAudioStream_requestStart(stream);
// 暂停音频流
result = AAudioStream_requestPause(stream);
// 停止音频流
result = AAudioStream_requestStop(stream);
// 清空数据缓冲区
result = AAudioStream_requestFlush(stream);

        上面的这些函数是异步调用,不会阻塞。也就是,调用完函数后,audio stream 的状态不会立马转移到指定状态。它会先转移到相应的瞬时状态,看上面的流程图就能知道,相应的瞬时状态有 Starting、Pausing、Flushing、Stopping、Closing 这几种。

3、状态回调

        那调用完 requestXXX 函数后,如何获取状态是否切换成功,可以使用面的函数:

AAUDIO_A

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1788495.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

pdb文件名称被修改导致pdb文件加载失败的实战排查案例分享

目录 1、概述 2、问题说明 3、pdb文件加载失败的可能原因有哪些? 4、使用!sym noisy打开pdb加载详情,发现pdb文件名称确实被修改了 5、Windbg是如何知道要加载pdb文件名称的? C软件异常排查从入门到精通系列教程(专栏文章列表…

前端框架中的虚拟DOM和实际DOM之间的关系

聚沙成塔每天进步一点点 本文回顾 ⭐ 专栏简介前端框架中的虚拟DOM和实际DOM之间的关系1. 实际DOM(Real DOM)1.1 定义1.2 特点 2. 虚拟DOM(Virtual DOM)2.1 定义2.2 特点 3. 虚拟DOM的工作流程3.1 创建虚拟DOM3.2 比较虚拟DOM&…

【C语言训练题库】扫雷->简单小游戏!

🔥博客主页🔥:【 坊钰_CSDN博客 】 欢迎各位点赞👍评论✍收藏⭐ 目录 1. 题目 2. 解析 3. 代码 4. 小结 1. 题目 小sun上课的时候非常喜欢玩扫雷。他现小sun有一个初始的雷矩阵,他希望你帮他生成一个扫雷矩阵。 扫雷…

鸿蒙OS初识

学习官网:https://www.harmonyos.com/cn/develop 准备 注册,安装软件(node:12, DevEco Studio): https://developer.harmonyos.com/cn/docs/documentation/doc-guides/software_install-0000001053582415#ZH-CN_TOP…

猫狗分类识别【分类识别】①分类识别

一、导入依赖库 pip install opencv-pythonpip install numpypip install tensorflow 二、分类识别实现 import osimport cv2 import numpy as np from tensorflow import keras# 加载模型model_name "dog_cat.keras"model keras.models.load_model(model_name)…

换3次燃气灶才明白,原来电焰灶才是最适合的那个

厨房,这个家的温馨角落,不仅承载着美食的诞生,更记录着我对烹饪的热爱与探索。在我漫长的烹饪生涯中,我曾三次更换燃气灶,每一次都带给我不同的体验与感悟。然而,直到最近我换上了华火电焰灶,才…

Spring运维之boot项目开发关键之日志操作以及用文件记录日志

日志基础 日志 在企业级开发中还是比较重要的 我们来写一个日志 RestController RequestMapping("/books") public class Controller {//创建记录日志的对象private static final Logger log LoggerFactory.getLogger(Controller.class);GetMappingpublic String …

BI平台概述

随着数字化浪潮的推进,企业对于数据驱动决策的需求日益增长。纷享销客作为一款领先的CRM平台,一直致力于帮助企业实现销售管理的高效与智能。纷享销客一体化BI智能分析平台作为CRM平台中的重要一环,旨在为企业提供更加全面、深入的数据分析能…

酷开科技丨酷开系统重塑家庭娱乐生态,开启家庭生活新体验

家庭是社会的“基本细胞”。每一个小家都是国家的组成部分,每一个家庭的幸福才会带来整个社会和国家的幸福安定。家庭的意义,是爱、是关心、是陪伴,是一生的牵绊。我们大部分的时间都是在家庭中度过的,与家人相聚的时候&#xff0…

【linux】swap学习

在 Linux 系统中,swap 是一种用于扩展系统内存的技术。当物理内存(RAM)不足时,系统会将一部分不常用的内存数据移至 swap 空间,从而释放物理内存供其他程序使用。Swap 空间可以是一个单独的分区(swap 分区&…

安全生产新篇章:可燃气体报警器检验周期的国家标准解读

随着工业化进程的加快,安全生产成为了重中之重。 可燃气体报警器作为预防火灾和爆炸事故的重要设备,其准确性和可靠性直接关系到企业的生产安全和员工的生命财产安全。 因此,国家对可燃气体报警器的检验周期有着明确的规定,以确…

Linux系统之mv命令的基本使用

Linux系统之mv命令的基本使用 一、mv命令介绍1. mv命令简介2. mv命令的使用结果 二、mv命令的使用帮助1. 在命令行的帮助信息2. mv常用选项 三、mv命令的基本使用1. 创建源目录和目标目录2. 新建测试文件3. 将源目录文件复制到目标目录4. 将文件进行改名5. 将目录的所有文件转移…

量化投资分析平台 迅投 QMT(三)字典数据下载后读取成Dataframe形式

量化投资分析平台 迅投 QMT [迅投 QMT](https://www.xuntou.net/?user_code7NYs7O)我目前在使用如何读取下载好的数据出来上代码历史帖子 迅投 QMT 我目前在使用 两个月前(2024年4月)迅投和CQF有一个互动的活动,进行了平台的一个网上路演&…

百度云下载不限速方式集合

百度网盘相信大家都不陌生,可以说百度网盘是当今最流行的网盘之一!我们很多在网上找到的资料大部分都是利用百度网盘分享链接提取码的方式进行分享的!然后根据我们当时的所需,进行资源的下载以完成信息传输的这么一个目。 不过大…

23.Labview中的数值类型讨论 ---- 位(bit)、字节(byte)、I8、U8、单双精度、复数

hello,大家好,本篇向大家介绍一个最常用但最容易让人忽略和最容易犯错的知识:数值。 “数值” 这个概念在Labview中被涉及的还是很多的,几乎任何一个程序都无可避免的会用到,但我相信大家绝大多数人对数值这个概念应用…

UMG绝对坐标与局部空间

在 Unreal Engine 的 UMG(Unreal Motion Graphics)中,“绝对坐标”和“局部空间”是两个常见的概念,主要用于描述 UI 元素的位置和大小。 概念与区别 绝对坐标(Absolute Coordinates):这是指相…

java自学阶段二:JavaWeb开发--day80(项目实战2之苍穹外卖)

《项目案例—黑马苍穹外卖》 目录: 学习目标项目介绍前端环境搭建(前期直接导入老师的项目,后期自己敲)后端环境搭建(导入初始项目,新建仓库使用git管理项目,新建数据库,修改登录功能&#xff…

生成随机图片

package com.zhuguohui.app.lib.tools;/*** Created by zhuguohui* Date: 2024/6/1* Time: 13:39* Desc:获取随机图片*/ public class RandomImage {// static final String url "https://picsum.photos/%d/%d?random%d";static final String url "https://…

如何让Google收录网站?

Google收录网站的前提条件是确保网站可以公开访问,并且页面加载速度需要快,这样Google爬虫才可以访问到你的网站,并且索引你网站中的内容。实现了上面的前提条件,可以通过优化数据结构、创建站点地图、使用Google Search Console、…

Django 视图探秘:FBV与CBV注册方式的异同,揭秘as_view()的执行魔法

文章目录 一、FBV、CBV注册方式及其区别FBVCBV 二、as_view()函数查看对应的view函数具体内容,最终返回的是dispatch方法查看dispatch方法 一、FBV、CBV注册方式及其区别 FBV FBV:path(index/,views.index) 通过调用函数方式,views.index是一…