簡體   English   中英

在Android Nougat 7.0上錄制通話

[英]record call on Android nougat 7.0

我正在使用一個簡單的mediarecorder來記錄呼叫,但在<牛軋糖上的設備上都可以正常工作,但是在牛軋糖中,它只記錄了我這一邊的通話音頻。 ?

recorder = new MediaRecorder();  
    recorder.setAudioSource(MediaRecorder.AudioSource.MIC);  
    recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);  
    recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);  
    recorder.setOutputFile(audiofile.getAbsolutePath());  

經過一個月的關於通話記錄的研究,我發現每個Android版本都喜歡MediaRecorder的類型以使其正常工作,我們不能僅將一種類型用於所有Android版本。 我正在為我的項目使用此規則,目前,該規則適用於大多數android版本。

if (android.os.Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {
    recorder.setAudioSource(MediaRecorder.AudioSource.VOICE_CALL);
    callType = "VOICE_CALL";
} else if (android.os.Build.VERSION.SDK_INT < Build.VERSION_CODES.N) {
    recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
    callType = "MIC";
} else {
    recorder.setAudioSource(MediaRecorder.AudioSource.VOICE_COMMUNICATION);
    callType = "VOICE_COMMUNICATION";
}

為了快速檢查,您可以檢查我的示例: https : //github.com/tntkhang/call-recording-master

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM