一、CarAudioService相关类
1、CarAudioService
CarAudioService是Android Automotive OS系统中提供的一个服务,类似于AudioService,它管理整个车载音频系统,包括音频路由控制、音频设备管理、音量控制、焦点管理、车载媒体播放管理等。CarAudioService提供了对车辆音频系统功能和状态的控制,为车载音频应用提供便利,并支持多个应用程序同时执行音频任务。
CarAudioService代码位于:
packages/services/Car/service/src/com/android/car/audio/audioCarAudioService.java
CarAudioService的定义:
public class CarAudioService extends ICarAudio.Stub implements CarServiceBase {}
二、CarAudioService方法
CarAudioManager通过ICarAudio.aidl的方式与CarAudioService通信,如下为ICarAudio.aidl中定义的方法:
-
void setGroupVolume(int zoneId, int groupId, int index, int flags):设置组音量
-
int getGroupMaxVolume(int zoneId, int groupId):获取组音量最大值
-
int getGroupMinVolume(int zoneId, int groupId):获取组音量最小值
-
void setVolumeGroupMute(int zoneId, int groupId, boolean mute, int flags):设置组音量静音
-
int getGroupVolume(int zoneId, int groupId):获取组音量
-
void setFadeTowardFront(float value):设置声音前后平衡
-
void setBalanceTowardRight(float value):设置声音左右平衡
-
String[] getExternalSources():获取当前系统支持的外部音源
-
CarAudioPatchHandle createAudioPatch(in String sourceAddress, int usage, int gainInMillibels):创建Audio Patch
-
void releaseAudioPatch(in CarAudioPatchHandle patch):释放Audio Patch
-
int getVolumeGroupCount(int zoneId):获取音量组数量
-
int getVolumeGroupIdForUsage(int zoneId, int usage):获取Volume组ID
-
int[] getUsagesForVolumeGroupId(int zoneId, int groupId):获取声音组ID
-
int[] getAudioZoneIds():获取所有AZID
-
int getZoneIdForUid(int uid):通过Uid获取AZID
-
boolean setZoneIdForUid(int zoneId, int uid):通过UI设置AZID
-
boolean clearZoneIdForUid(int uid):通过UID清除AZID
-
void registerVolumeCallback(@NonNull IBinder binder):注册Volume回调
-
void unregisterVolumeCallback(@NonNull IBinder binder):解除注册Volume回调