Android Audio基础——音频混音结束处理(十一)

news2024/10/28 1:26:55

        上一篇文章主要介绍了混音线程 MixerThread 的创建及混音流程的处理过程,这里我们看一下完成混音后的调用流程。

一、音频处理结束

        在音频处理中,结束阶段通常分为两个主要阶段:sleep 和 standby。这两个阶段的目的是为了节省资源和优化性能。

源码位置:/frameworks/av/services/audioflinger/Threads.cpp

1、sleep

        在 sleep 阶段,还会在 threadLoop 内继续执行循环,但是不会再调用 threadLoop_mix 进行混音,而 prepareTrack_l 与 threadLoop_write 还会继续执行。

        一般来说,在音频输出结束时,会执行 AudioTrack:: stop,这会导致在 prepareTrack_l 返回状态 MIXER_IDLE。

AudioFlinger::PlaybackThread::mixer_state AudioFlinger::MixerThread::prepareTracks_l(
        Vector< sp<Track> > *tracksToRemove)
{
    ……
    mixer_state mixerStatus = MIXER_IDLE;
    size_t count = mActiveTracks.

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

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

相关文章

1U服务器和Hyper-V虚拟机使用记录

记录最近接触服务器和虚拟机的一些使用操作知识 背景&#xff1a;1U服务器上架使用&#xff0c;备份其他服务器vm虚拟机&#xff0c;Hyper-V管理虚拟机使用测试 设备&#xff1a;IBM3550服务器交换机&#xff0c; 移动硬盘&#xff1a;附加存储盘&#xff0c; u盘1&#xff1…

在虚拟化环境中,虚拟机的资源分配是否真的能够完全等效于物理服务器?是否有某些特定的工作负载在虚拟化环境中始终无法达到理想表现?

目录 1. 虚拟化技术的基本原理与资源管理 2. 资源分配的等效性问题 3. 特定工作负载在虚拟化环境中的表现 4. 性能优化与虚拟化环境的选择 5. 结论 虚拟化技术的广泛应用为数据中心的资源管理与部署带来了革命性的变化。虚拟机&#xff08;VM&#xff09;通过抽象化的方式…

【了解一下静态代理与动态代理】

文章目录 一.什么是静态代理与动态代理二.静态代理三.动态代理1.jdk动态代理2.cglib动态代理 四.小结 一.什么是静态代理与动态代理 什么是代理&#xff1f;代理是一种设计模式&#xff0c;在这种模式中&#xff0c;一个类&#xff08;代理类&#xff09;代表另一个类&#xff…

【ArcGIS Pro实操第8期】绘制WRF三层嵌套区域

【ArcGIS Pro实操第8期】绘制WRF三层嵌套区域 数据准备ArcGIS Pro绘制WRF三层嵌套区域Map-绘制三层嵌套区域更改ArcMap地图的默认显示方向指定数据框范围 Map绘制研究区Layout-布局出图 参考 本博客基于ArcGIS Pro绘制WRF三层嵌套区域&#xff0c;具体实现图形参考下图&#xf…

cloak斗篷伪装下的独立站

随着互联网的不断进步&#xff0c;越来越多的跨境电商卖家开始认识到独立站的重要性&#xff0c;并纷纷建立自己的独立站点。对于那些有志于进入这一领域的卖家来说&#xff0c;独立站是什么呢&#xff1f;独立站是指个人或小型团队自行搭建和运营的网站。 独立站能够帮助跨境…

C++ 模板编程:解锁高效编程的神秘密码

快来参与讨论&#x1f4ac;&#xff0c;点赞&#x1f44d;、收藏⭐、分享&#x1f4e4;&#xff0c;共创活力社区。 目录 &#x1f4af;前言 &#x1f4af;泛型编程 &#x1f4af;函数模板 1.函数模板概念 2.函数模板格式 3.函数模板的原理 4.函数模板的实例化 5.模板参…

如何使用DBeaver连接flink

通过DBeaver配置并连接flink&#xff1a; 1. 打开Dbeaver&#xff0c;选择“数据库”--》“数据库驱动管理器” 2.在驱动管理器界面点击新建按钮 3.在新建弹窗输入flink相关的驱动信息&#xff0c;主要包括&#xff1a; org.apache.flink.table.jdbc.FlinkDriver jdbc:flink…

Spring+ActiveMQ

1. 环境搭建 1.1 env-version JDK 1.8 Spring 2.7.13 Maven 3.6 ActiveMQ 5.15.2 1.2 docker-compose.yml version: 3.8services:activemq:image: rmohr/activemq:5.16.3container_name: activemqports:- "61616:61616"- "8161:8161"environment…

图解:什么是多租户?

大家好&#xff0c;我是汤师爷~ 什么是多租户&#xff1f; 多租户是SaaS&#xff08;软件即服务&#xff09;领域里特有的一个概念。在SaaS服务中&#xff0c;“租户”指的就是使用这个SaaS系统的客户。 那么租户和用户有什么区别呢&#xff1f;举个例子。假设你正在使用一款…

SQL实战训练之,力扣:1532最近的三笔订单

目录 一、力扣原题链接 二、题目描述 三、建表语句 四、题目分析 五、SQL解答 六、最终答案 七、验证 八、知识点 一、力扣原题链接 1532. 最近的三笔订单 二、题目描述 客户表&#xff1a;Customers ------------------------ | Column Name | Type | --------…

【C++单调栈 贡献法】907. 子数组的最小值之和|1975

本文涉及的基础知识点 C单调栈 LeetCode907. 子数组的最小值之和 给定一个整数数组 arr&#xff0c;找到 min(b) 的总和&#xff0c;其中 b 的范围为 arr 的每个&#xff08;连续&#xff09;子数组。 由于答案可能很大&#xff0c;因此 返回答案模 109 7 。 示例 1&#x…

ArcGIS计算多个面要素范围内栅格数据各数值的面积

本文介绍在ArcMap软件中&#xff0c;基于面积制表工具&#xff08;也就是Tabulate Area工具&#xff09;&#xff0c;基于1个面要素数据集与1个栅格数据&#xff0c;计算每一个面要素中各栅格数据分布面积的方法。 首先&#xff0c;来看一下本文的需求。现有一个矢量面的要素集…

动态规划 —— 斐波那契数列模型-解码方法

1. 解码方法 题目链接&#xff1a; 91. 解码方法 - 力扣&#xff08;LeetCode&#xff09;https://leetcode.cn/problems/decode-ways/description/ 2. 题目解析 1. 对字母A - Z进行编码1-26 2. 11106可以解码为1-1-10-6或者11-10-6, 但是11-1-06不能解码 3. 0n不能解码 4. …

springboot项目测试环境构建出的依赖包比本地构建出的依赖包多

本地能够正常启动服务&#xff0c;但是测试环境启动报错。 上述druid是服务pom文件中之前引入的依赖包&#xff0c;后续由于某种原因而不需要该依赖包了&#xff0c;故已在pom文件中移除掉了该依赖包。 移除该依赖包之后&#xff0c;本地服务可正常构建和启动。 而测试环境却…

C语言 | Leetcode C语言题解之第504题七进制数

题目&#xff1a; 题解&#xff1a; char * convertToBase7(int num){if (num 0) {return "0";}bool negative num < 0;num abs(num);char * digits (char *)malloc(sizeof(char) * 32);int pos 0;while (num > 0) {digits[pos] num % 7 0;num / 7;}if…

cm211-1刷机教程镜像包

cm211-1刷机教程 包含镜像包酷看桌面 s905l3-l3b通用 镜像包&#xff1a;https://www.123684.com/s/WGAwjv-5tlv3 1.刷机教程 镜像为线刷镜像包&#xff0c;需要短接刷机 短接刷机&#xff0c;导入镜像包 开始即可。到100%就证明可以了。

四期书生大模型实战营(【入门岛】- 第4关 | 玩转HF/魔搭/魔乐社区)

文章目录 1. 任务介绍闯关任务 2. 平台介绍2.1. HF 平台2.1.1. HF的Transformers库介绍 2.2. GitHub CodeSpaces 和 Hugging Face Spaces 介绍。2.2.1. GitHub CodeSpaces2.2.2. Hugging Face Spaces2.2.3. 总结 3. 模型下载3.1. GitHub CodeSpaces使用3.1.下载internlm2_5-7b-…

MySQL任意版本安装卸载和数据库原理图绘制

MYSQL任意版本安装和卸载 安装&#xff1a; 1、解压文件 --- 不能出现中文路径 2、在解压目录&#xff08;安装目录&#xff09;下&#xff1a; 1>.创建data文件夹 2>.创建配置文件my.txt 然后修改成ini格式 3、修改配置文件 basedirD:\\mysql\\mysql-5.7.28-winx64…

006:看图软件ACDSeePhotoStudio2019安装教程

摘要&#xff1a;本文主要介绍看图软件ACDSee Photo Studio2019的安装流程。 一、软件概述 ACDSee Photo Studio是ACDSee公司开发的一款面向摄影师和图像编辑者的专业软件。它提供了全面的图像处理、管理和发布功能&#xff0c;帮助用户高效地浏览、编辑、分类和分享数字照片。…

新160个crackme - 084-slayer_crackme1

运行分析 点击check&#xff0c;提示注册失败 PE分析 ASM程序&#xff0c;32位&#xff0c;无壳 静态分析&动态调试 ida搜索到关键字符串发现注册文件reg.key 通过动态调试&#xff0c;获得计算机名称为’CONCEALBEAR’通过计算得到int_2 接下来有一个剪贴板判断&#xff0…