需要深入修改音频系统的路由策略和硬件抽象层。以下是具体实现方案:
核心实现路径 修改音频路由策略(AudioPolicyManager)
控制音频硬件输出(Audio HAL)
强制静音系统音量(AudioService)
方案一:禁用扬声器路由策略 修改文件:
frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
代码修改:
// 在 getDevicesForStrategy() 中移除扬声器设备
DeviceVector getDevicesForStrategy(...) {
DeviceVector devices;
switch (strategy) {
case STRATEGY_MEDIA:
case STRATEGY_SONIFICATION:
case STRATEGY_ACCESSIBILITY:
// 原代码:devices.add(mAvailableOutputDevices.getDevicesFromType(AUDIO_DEVICE_OUT_SPEAKER))
// 修改为强制使用其他设备
if (mAvai