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

Android Audio基础——音频混音线程介绍(十)

        MixerThread 是 Android 音频输出的核心部分,主要负责将多个音频流混合成一个输出流,通常用于处理多个音频源(如音乐播放器、语音通话、系统提示音等)的混音操作,混音后的音频数据会被发送到音频硬件(如扬声器或耳机)进行最终输出。大多数 Android 的音频都需要经过 MixerThread 进行混音后再输出到音频设备。

一、混音线程创建

        混音线程 MixerThread 继承 PlaybackThread。在PlaybackThread中,重写了 Thread 的 threadLoop、onFirstRef 等方法,因此在调用 MixerThread 这些方法时,实际上就是调用了 PlaybackThread 的对应方法。

1、onFirstRef

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

        在 getOutput 的时候,我们创建了一个 MixerThread 对象,由于这个对象继承于 Thread,因此在创建对象时,会调用它的 onFirstRef 函数。

void AudioFlinger::PlaybackThread::onFirstRef()
{……run(mName, ANDROID_PRIORITY_URGENT_AUDIO);
}
http://www.lryc.cn/news/469868.html

相关文章:

  • 【Excel】函数各类公式总结
  • 【入门篇】2.9 系统滴答定时器 SysTick
  • BiRefNet:颠覆图像分割,AI黑科技再升级
  • 编写一个简单的Iinput_dev框架
  • ctfshow的sql注入解题思路171-211
  • 深入理解C语言中的静态库与动态库 —— 原理与实践
  • 本地缓存库分析(一):golang-lru
  • qt配置https请求
  • C语言进阶——文件操作
  • MYSQL-查看用户权限语法(二十一)
  • 在MySQL中存储IP地址的最佳实践
  • Vite打包配置
  • node集成redis (教学)
  • 江协科技STM32学习- P22 实验-ADC单通道/ADC多通道
  • RL学习笔记-马尔可夫过程
  • LeetCode Hot 100:动态规划
  • 使用Python制作雪景图片教程
  • S-Function
  • 如何具备阅读JAVA JDK虚拟机源码能力
  • Python | Leetcode Python题解之第514题自由之路
  • Docker 镜像下载问题及解决办法
  • 2分钟搞定 HarmonyOs Next创建模拟器
  • 方形件排样优化与订单组批问题探析
  • vue3组件通信--自定义事件
  • ubuntu 安装k3s
  • SQL CHECK 约束:确保数据完整性的关键
  • C++ | Leetcode C++题解之第502题IPO
  • 《虚拟现实的边界:探索虚拟世界的未来可能》
  • Rust教程
  • 测试代理IP的有效性和可用性