通话录音:
从界面开始找代码,最后转了几个函数名,并转到多媒体录音模块
start_ record
voiceRecordClicked --- CallButtonFragment.java
|-------
com/android/incallui/CallButtonPresenter.java
public void voiceRecordClicked() {
TelecomAdapter.getInstance().startVoiceRecording();
}
|----
packages/apps/Dialer/InCallUI/src/com/android/incallui/TelecomAdapter.java
void startVoiceRecording() {
if (mInCallService != null) {
mInCallService.startVoiceRecording();
} else {
Log.e(this, "error startVoiceRecording, mInCallService is null");
}
}
|---- packages/services/Telecomm/src/com/android/server/telecom/InCallAdapter.java
public void startVoiceRecording()
PhoneRecorderHandler.getInstance().startVoiceRecord(activeCall,
|----import com.mediatek.telecom.recording.PhoneRecorderHandler
|------./Telecomm/src/com/mediatek/telecom/recording/PhoneRecorderHandler.java
public void startVoiceRecord(Call activeCall, final int customValue) {
mPhoneRecorder.startRecord();
private IPhoneRecorder mPhoneRecorder;
mRecordHandler = new RecordHandler(mWorkerThread.getLooper());
|----
./Telecomm/src/com/mediatek/telecom/recording/PhoneRecorder.java
public void startRecord() {
startRecording(MediaRecorder.O
|---./Telecomm/src/com/mediatek/telecom/recording/Recorder.java
private MediaRecorder mRecorder; 转化为多媒体里的录音模块
startRecording(int outputfileformat
mRecorder = new MediaRecorder();
mRecorder.setAudioSource(MediaRecorder.AudioSource.VOICE_CALL);
mRecorder.start();
|-----AudioFlinger::RecordThread::RecordTrack::RecordTrack(
|------AudioFlinger::RecordThread::RecordTrack::start
|-----frameworks/av/media/libmedia/AudioRecord.cpp
|---- status_t AudioRecord::start(AudioSystem::sync_event_t
|----sp<IAudioRecord> AudioFlinger::openRecord(
|-----audio_module_handle_t AudioFlinger::loadHwModule_l(const char *name)
今天的文章 Android 通话录音代码流程分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ji-chu/98703.html