当前位置: 首页 > article >正文

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

        上一篇文章主要介绍了混音线程 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.kler.cn/a/369202.html

相关文章:

  • Win11安装基于WSL2的Ubuntu
  • 电脑程序变化监控怎么设置?实时监控电脑程序变化的五大方法,手把手教会你!
  • 《数据结构》学习系列——树(下)
  • 查看spring boot 的版本情况
  • Sentinel详解
  • Vue 组件之间通信的多种方式汇总
  • 基于Matlab 火焰识别技术
  • 使用 Python 的 BeautifulSoup(bs4)解析复杂 HTML
  • remote: The project you were looking for could not be found.
  • ThingsBoard规则链节点:Device Profile节点详解
  • 字节的学习
  • iOS Swift逆向——被编译优化后的函数参数调用约定修复
  • C#中的事件
  • 029_Common_Plots_Matlab常见二维绘图
  • 【阅读笔记】Instruction-based Hypergraph Pretraining
  • PHP如何实现字符串翻转
  • 【实战案例】Django框架表单处理及数据库交互
  • 【YOLOv11[基础]】实例分割 + 跟踪
  • 二叉树习题其六【力扣】【算法学习day.13】
  • 基于KV260的基础视频链路通路(MIPI+Demosaic+VDMA)
  • Page Cache(页缓存)的大小如何确定
  • Win11安装基于WSL2的Ubuntu
  • 大型语言模型与人类价值观对齐:去中心化开放数据获取平台
  • NVR管理平台EasyNVR多个NVR同时管理汇聚方案
  • STM32 RTC时间无法设置和读取
  • 【K8s】Kubernetes 证书管理工具 Cert-Manager