概述图
一,对概述图解释
第一层:Usage ,context , bus 三者关系
ContextNumber.MUSIC出处
/* package */ class CarAudioZonesHelper {
static {
CONTEXT_NAME_MAP = new HashMap<>();
CONTEXT_NAME_MAP.put("music", ContextNumber.MUSIC);
CONTEXT_NAME_MAP.put("navigation", ContextNumber.NAVIGATION);
CONTEXT_NAME_MAP.put("voice_command", ContextNumber.VOICE_COMMAND);
CONTEXT_NAME_MAP.put("call_ring", ContextNumber.CALL_RING);
CONTEXT_NAME_MAP.put("call", ContextNumber.CALL);
CONTEXT_NAME_MAP.put("alarm", ContextNumber.ALARM);
CarAudioDynamicRouting.java中
/* package */ class CarAudioDynamicRouting {
static final int[] CONTEXT_NUMBERS = new int[] {
对应值1 ContextNumber.MUSIC,
2 ContextNumber.NAVIGATION,-------------------bus3
3 ContextNumber.VOICE_COMMAND,
4 ContextNumber.CALL_RING,
5 ContextNumber.CALL,-----------bus2
6 ContextNumber.ALARM,
7 ContextNumber.NOTIFICATION,
8 ContextNumber.SYSTEM_SOUND----------bus5
};
//设置usage及context关系
USAGE_TO_CONTEXT.put(AudioAttributes.USAGE_UNKNOWN, ContextNumber.MUSIC);
USAGE_TO_CONTEXT.put(AudioAttributes.USAGE_MEDIA, ContextNumber.MUSIC);
USAGE_TO_CONTEXT.put(AudioAttributes.USAGE_VOICE_COMMUNICATION, ContextNumber.CALL);
LOG:
CAR.AUDIO: Bus number: 0 contextNumber: 1 sampleRate: 48000 channels: 8 usages: [0, 1, 14] //这里0,1,14对应的usage在AudioAttributes.java文件中去定义如: