I'm writing a call recording component and I am testing it on HTC One M8.
the phone is not rooted, and I am using standrad API to record calls like in this example:
MediaRecorder recorder = new MediaRecorder();
recorder.setAudioSource(MediaRecorder.AudioSource.Default); //Also tried Voice Call
//Tried all combinations of the following 2 lines
recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
recorder.setAudioSamplingRate(44100); //Also tried 48000, 8000, 16000 etc
recorder.setOutputFile(OUTPUT_FILE_NAME_GOES_HERE);
recorder.prepare();
recorder.start();
I also tried with AudioRecord
which is setup pretty much the same way, got same results.
Before upgrading to Lollipop I could hear both sides of the call very well. After the upgrade I can hear myself good, but the other side volume is very low.
I know some other apps are recording both sides of the call on HTC One M8 without root, so it is obviously something I'm missing.
Edit: please note that this worked before Lollipop and is still working on other devices on Lollipop, so I assume (of course I could easily be wrong) that something else - HTC M8 specific - is missing...
What could be applied so both sides can be heard?