Record a call through MIC on Samsung devices (Android 7.0)

前端 未结 2 598
南笙
南笙 2021-01-05 22:54

I\'ve simple Android app that record a call and it works fine on Android 6 + Samsung devices (both with MIC source and VOICE_COMMUNICATION). But once Samsung devices updated

2条回答
  •  广开言路
    2021-01-05 23:50

    Normally for recording phone call, we can use 4 types: DEFAULT, MIC, VOICE_CALL, VOICE_COMMUNICATION. But with 3 types below is enough for all

    MIC, VOICE_CALL, VOICE_COMMUNICATION

    base on the android version of your phone that will support or don't support some of them.

    So to make your app work perfectly with all android versions we should change the AudioSource type following the android version with this rule:

    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";
    }
    

    I am using this on my application and it worked on most devices. It's no need to add any C library. Check my example application to see how they react with a dedicated Android version.

    Github: https://github.com/tntkhang/call-recording-master

提交回复
热议问题