AudioSystem类

1、白手起家,没有父类。


2、定义了一堆枚举,包括stream类型,音频格式,音频channel等。


3、函数get_audio_flinger中,会获取AudioFlinger,然后创建一个AudioFlingerClient对象,并调用AudioFlinger的函数registerClient注册该AudioFlingerClient。


4、接下来,函数的实现,基本上都是通过调用AudioFlingerClient的函数来实现的。
包括(列的不全):
muteMicrophone
isMicrophoneMuted
setMasterVolume
setMasterMute
getMasterVolume
getMasterMute
setStreamVolume
setStreamMute
getStreamVolume
getStreamMute
setMode
isStreamActive
setParameters
getParameters
setVoiceVolume


5、函数get_audio_policy_service中获取AudioPolicyService,然后创建一个AudioPolicyServiceClient对象,并调用AudioPolicyService函数linkToDeath完成关联。


6、接下来一部分函数是通过调用AudioPolicyService的函数来实现的。
setDeviceConnectionState
getDeviceConnectionState
setPhoneState
setRingerMode
setForceUse
getForceUse
getOutput
startOutput
stopOutput
releaseOutput
getInput
startInput
stopInput
releaseInput
initStreamVolume
setStreamVolumeIndex
getOutputForEffect
registerEffect
unregisterEffect


7、接下来是对状态的判断以及一些辅助函数。

你可能感兴趣的:(Stream,service,audio)