1.前言
在项目开发中,在某些时候的需求中,要求在播放音乐的时候,要求有线耳机和扬声器同时发声,这就要分析下怎么同时让耳机和喇叭播放音乐
2.mtk 有线耳机和扬声器同时出声音功能实现的核心类
vendor/mediatek/proprietary/hardware/audio/common/V3/aud_drv/AudioALSAHardwareResourceManager.cpp frameworks/av/services/audiopolicy/enginedefault/src/Engine.cpp3.mtk 有线耳机和扬声器同时出声音功能实现的核心功能分析和实现
frameworks/av/services/audiopolicy/engine/Engine.cpp,音频策略引擎,与前面几问同属一条音频链路)。
Engine.cpp 的作用
它是
AudioPolicyManager(音频策略管理器)的"决策引擎",负责音频路由策略中最核心的三件事:策略映射、设备选择、音量计算。如果说
AudioService 是"总调度大脑",Engine.cpp 就是"路由决策的执行大脑"——AudioPolicyManager
只负责执行和交互,真正的"选哪个设备、走哪条通路、音量按哪条曲线算"是 Engine 说了算。
核心职责
1. 音频流 → 策略(Strategy)映射
- An