news 2026/1/3 17:15:11

安卓 之 PassthruPatchRecord

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
安卓 之 PassthruPatchRecord

1. 类介绍

PassthruPatchRecord 是 Android AudioFlinger 中一个特殊的 patch。它的核心设计目标是实现一种 “直通” 模式,用于 AUDIO_SOURCE_VOICE_PERFORMANCE 等需要极低延迟的音频场景。

• 继承关系: PassthruPatchRecord -> PatchRecord -> RecordTrack -> TrackBase。

• 特殊之处: 普通的 PatchRecord 在两个音频线程(如 PlaybackThread 和 RecordThread)之间建立一个软件缓冲区进行数据中转。而 PassthruPatchRecord 旨在绕过内部软件混音器,尽可能直接地将来自输入流(如麦克风)的数据传递到输出流(如扬声器/耳机),以最小化延迟。

• 工作原理: 它本质上是一个“傀儡”或“桥梁”。它本身不持有大的音频缓冲区,而是在 RecordThread(生产者)和 PlaybackThread(消费者)之间协调,促使数据直接从 HAL 层读取后,尽快写入到 HAL 层。

2. 数据流转

数据流转涉及两个关键的线程和它们之间的交互:

  1. RecordThread(录制线程 - 生产者):
    这个线程代表音频输入源(如麦克风)。

    它调用 PassthruPatchRecord 的 read 方法,试图获取音频数据。

    关键点: PassthruPatchRecord 的 read 方法并不提供真实的音频数据,而是模拟读取(返回静音数据),并同时通知另一个线程去执行真正的 I/O 操作。

  2. PlaybackThread(播放线程 - 消费者):
    这个线程代表音频输出目标(如扬声器)。

    它调用 PassthruPatchRecord 的 obtainBuffer 方法,请求可用的音频数据进行播放。

    关键点: 正是在 obtainBuffer 方法中,真正的音频 I/

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/1/1 10:05:52

YOLOv8 训练与检测系统智慧化交通公路上落石检测数据集 智慧道路交通路面障碍物检测数据集 智慧交通、山区公路监控、应急预警平台 YOLOv8 训练与检测系统

道路落石及障碍物检测数据集【共2套】 第一套: 智慧化道路落石检测数据集 nc一类:shitou1第二套:6类 道路障碍物检测数据集 落石 滑坡检测数据集 6 names: [‘Car’, ‘Motorcycle’, ‘People’, ‘shitou’, ‘Warning-Crash’, ‘landslide’]1111111…

作者头像 李华
网站建设 2026/1/2 17:23:50

基于django智慧农业管理系统设计开发实现

背景分析农业现代化转型需求日益迫切,传统农业依赖人工经验、资源利用率低、环境监测滞后等问题突出。全球气候变化加剧、人口增长导致的粮食安全压力,推动农业向精准化、数据化方向发展。物联网(IoT)、大数据、人工智能等技术的成…

作者头像 李华
网站建设 2025/12/31 1:39:59

Android架构师面试指南:基于跨越速运职位要求的全面解析与参考答案

跨越速运 Android架构师 职位描述 架构设计/优化Android客户端产品研发架构设计能力Kotlin 1、负责Android客户端的应用架构设计和承担核心功能代码编写; 2、负责设计模块与模块间及与第三方模块代码之间高效解耦方案; 3、负责参与产品需求分析并参与技术实施方案设计; 4、负责…

作者头像 李华
网站建设 2026/1/3 1:48:18

【2025最新】基于SpringBoot+Vue的企业项目管理系统管理系统源码+MyBatis+MySQL

摘要 随着信息技术的快速发展,企业对高效、智能的项目管理系统的需求日益增长。传统项目管理方式依赖人工操作,存在效率低下、数据易丢失、协同困难等问题,难以满足现代企业对实时性和精准性的要求。尤其是在多部门协作、资源分配和进度跟踪方…

作者头像 李华
网站建设 2026/1/3 8:08:02

企业级大学生考勤系统管理系统源码|SpringBoot+Vue+MyBatis架构+MySQL数据库【完整版】

摘要 随着高校信息化建设的不断推进,传统的大学生考勤管理方式逐渐暴露出效率低下、数据统计不准确、人工操作繁琐等问题。尤其是在大规模班级或复杂课程安排的情况下,手动记录考勤数据容易出错,且难以实现实时动态管理。为了解决这些问题&am…

作者头像 李华
网站建设 2026/1/2 20:18:45

【2025最新】基于SpringBoot+Vue的物资综合管理系统管理系统源码+MyBatis+MySQL

摘要 随着企业规模的扩大和信息化程度的提高,物资管理成为企业运营中不可或缺的重要环节。传统物资管理方式依赖人工操作,效率低下且容易出错,难以满足现代企业对物资高效调配、实时监控和数据分析的需求。物资综合管理系统的开发旨在解决这些…

作者头像 李华