AudioTrack
AudioSystem AudioPolicyService AudioPolicyInterface AudioPolicyManager
getStrategy()
getDeviceForStrategy()
setParameters()
parameterCommand()
AudioCommandThread::threadLoop()
AudioCommandThread::insetCommand_l()
alsa_default
s_route(deivce,mode)
alsa-libALSAStreamOpsAudioStreamOutALSA
result
alsa-lib
遍历
MixerThread::threadLoop()
MixerThread::threadLoop()
standby()
ThreadBase::setParameters()
write()
write()
open()/close()
snd_pcm_*
MixerThread::checkForNewParameters_l()
setParameters() setParameters()
open(device,mode) snd_pcm_*
standby()
audioHardwareALSA
ALSAMixer
getAnalogLoop()
setAnalogLoop()
startOutput() startOutput() startOutput()
setParameters()
setParameters()
setParameters()
IBinder.transact(SET_PARAMETERS)
setStreamVolume()......
applyStreamVolumes()
AudioPolicyClientInterface
setStreamVolume()
setStreamVolume() setStreamVolume()
AudioTrack.java
Android_media_AudioTrack.
cpp
native_setup()
AudioTrack
android_media_AudioTrack_native_setup()
new AudioTrack(streamType,sampleRate,channel,mode)
评论7