自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(6)
  • 收藏
  • 关注

原创 Android音频录制:AudioRecord.read()接口深度解析

本文详细解析了Android应用如何通过AudioRecord获取音频数据的过程。首先介绍了AudioRecord的基本使用流程,重点分析了read()方法的实现机制,包括参数校验和JNI层调用。随后深入追踪了native层AudioRecord::read()函数,特别剖析了obtainBuffer接口的设计原理。揭示了Android音频系统中应用层与AudioFlinger通过共享内存环形缓冲区交互的底层原理。

2025-07-22 21:59:46 2275

原创 深入解析Android WiredAccessoryManager(有线辅助管理器)

本文分析Android系统WiredAccessoryManager是如何对各类有线音频设备(耳机、麦克风、DP/HDMI等)插拔状态的管理。

2025-07-21 23:54:49 391

原创 Android 音频录制核心:ServerProxy::obtainBuffer揭秘

本文深入分析了Android音频系统中ServerProxy::obtainBuffer函数的工作原理,该函数是音频服务端与客户端共享内存环形缓冲区数据交互的核心机制。文章详细解析了函数的分步执行流程,特别强调了该函数在播放流(AudioTrack)和录音流(AudioRecord)中的不同处理逻辑,以及环形缓冲区"首段"的计算原理。

2025-07-18 22:42:02 1862

原创 Android音频录制核心:RecordThread::threadLoop解析

摘要:RecordThread::threadLoop()是Android音频系统的核心录音线程函数,主要负责从HAL层读取音频数据并分发到各录音客户端。该函数实现了双缓冲机制:首先将原始数据存入线程级的环形缓冲区mRsmpInBuffer,再通过RecordBufferConverter进行格式转换后分发到各Track的应用层缓冲区。

2025-07-16 22:32:53 1912

原创 Android系统多USB mic插入机制解析

本文基于Android 11源码分析了USB麦克风的插入处理流程。当插入多个USB MIC时,系统会选择后插入的设备,这是由于会先删除已连接的设备,再将新设备添加到全局列表并选中。该过程通过扫描声卡、创建Alsa设备对象,并最终实现设备状态更新。

2025-07-15 22:32:08 663

原创 0dB与-12dB:音频电性能的黄金法则

指标信号强度与 0dB 的关系实际作用0dB最大不失真电平基准线(上限)信号不可超过此值,否则失真,是音频系统的 “安全红线”。-12dB中等强度信号比 0dB 低 12 分贝(1/4 强度)常见的工作电平,平衡了信号清晰度与动态余量,避免过载的同时保证音量足够。简单来说:0dB 是 “不能超的上限”,-12dB 是 “推荐的工作区”,两者共同构成了音频信号的安全控制范围。

2025-07-14 22:04:41 1127

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除