audiorecord 之 抢占优先级
规则介绍
在 Android 系统中,不同音频源的抢占优先级由系统策略动态决定,主要基于音频源类型、应用属性(特权/普通)和运行状态(前台/后台)等因素综合判定。
一、音频源优先级核心规则
1. 隐私敏感型音频源优先级最高
VOICE_COMMUNICATION
(语音通话、视频会议等)和CAMCORDER
(摄像录音)被系统视为隐私敏感源,优先级高于普通音频源(如MIC
)。- 抢占行为:
- 当隐私敏感源(如
VOICE_COMMUNICATION
)激活时,普通音频源(如MIC
)会被强制静音,即使后者正在前台运行。 - 例如:微信语音通话进行中,普通录音 App 即使在前台也会收到空数据。
- 当隐私敏感源(如
2. 特权应用 vs. 普通应用
- 特权应用:预装系统应用(如 Google 助理、无障碍服务)可抢占普通应用。
- 普通应用:用户安装的第三方应用优先级较低[citation:1][citation:6]。
- 例外:
- 特权应用若使用普通音频源(如
MIC
),可能被隐私敏感型普通应用抢占。
- 特权应用若使用普通音频源(如
3. 前台应用优先级高于后台应用
- 前台可见界面的应用优先获得音频输入权限。
- 示例:两个普通应用均使用
MIC
:- 前台应用:正常录音。
- 后台应用:被静音。
二、不同组合场景下的抢占结果
场景组合 | 抢占结果 |
---|---|
VOICE_COMMUNICATION + MIC | 通话应用独占输入,普通录音 App 被静音 |
CAMCORDER + MIC | 摄像应用独占输入,普通录音 App 被静音 |
特权应用(助理) + MIC | 助理在后台时,普通应用可录音;助理在前台时,普通应用被静音 |
两个普通应用均用 MIC | 前台应用获得输入,后台应用被静音;均后台时,后启动者优先 |
VOICE_COMMUNICATION + 特权应用 | 通话始终优先,特权应用仅限无障碍服务或拥有 CAPTURE_AUDIO_OUTP |