通话录音:
从界面开始找代码,最后转了几个函数名,并转到多媒体录音模块
start_ record
voiceRecordClicked ---
|-------
com/android/incallui/
public void voiceRecordClicked() {
().startVoiceRecording();
}
|----
packages/apps/Dialer/InCallUI/src/com/android/incallui/
void startVoiceRecording() {
if (mInCallService != null) {
mInCallService.startVoiceRecording();
} else {
(this, "error startVoiceRecording, mInCallService is null");
}
}
|---- packages/services/Telecomm/src/com/android/server/telecom/
public void startVoiceRecording()
().startVoiceRecord(activeCall,
|----import
|------./Telecomm/src/com/mediatek/telecom/recording/
public void startVoiceRecord(Call activeCall, final int customValue) {
mPhoneRecorder.startRecord();
private IPhoneRecorder mPhoneRecorder;
mRecordHandler = new RecordHandler(());
|----
./Telecomm/src/com/mediatek/telecom/recording/
public void startRecord() {
startRecording(
|---./Telecomm/src/com/mediatek/telecom/recording/
private MediaRecorder mRecorder; 转化为多媒体里的录音模块
startRecording(int outputfileformat
mRecorder = new MediaRecorder();
mRecorder.setAudioSource(.VOICE_CALL);
mRecorder.start();
|-----AudioFlinger::RecordThread::RecordTrack::RecordTrack(
|------AudioFlinger::RecordThread::RecordTrack::start
|-----frameworks/av/media/libmedia/
|---- status_t AudioRecord::start(AudioSystem::sync_event_t
|----sp<IAudioRecord> AudioFlinger::openRecord(
|-----audio_module_handle_t AudioFlinger::loadHwModule_l(const char *name)