chenxiaolong / BCR

A Basic Call Recorder for rooted Android devices
GNU General Public License v3.0
1.5k stars 98 forks source link

Failed to record call #507

Closed vunghi021198 closed 3 months ago

vunghi021198 commented 4 months ago

Screenshot_20240303-135134.png

Screenshot_20240303-135133.png

Screenshot_20240303-135216.png

I've been having this issue on 1.60 only. Same setup as shown in screenshot till 1.59, same ROM, no issue recording. Hope you can look into this. Thank you.

chenxiaolong commented 4 months ago

If you change the sample rate to 48000 Hz, does it still fail?

EDIT: If you wouldn't mind, could you please install https://play.google.com/store/apps/details?id=com.parseus.codecinfo, find the opus.encoder entry, and post a screenshot of it?

vunghi021198 commented 4 months ago

If you change the sample rate to 48000 Hz, does it still fail?

Oh my god how silly of me, I dont know since when did it change to 16000, used to be 48000 since 1.40, somehow updating from 1.59 to 1.60 changed the sample rate to 16000. Everything works normally now on 48000. Thank you and sorry for wasting some of your time.

chenxiaolong commented 4 months ago

It's not a waste of my time at all :)

1.60 changed the default from 48000 Hz to 16000 Hz. During the update, if you never changed the sample rate in the past, then BCR would use the new default value. It seems that your device doesn't support 16000 Hz for some reason. (If you wouldn't mind posting some additional details, it might help with understanding why--please see my previous edited comment.)

Since 16000 Hz is clearly problematic, I will revert the change and set the default back to 48000 Hz in version 1.62.

vunghi021198 commented 4 months ago

It's not a waste of my time at all :)

1.60 changed the default from 48000 Hz to 16000 Hz. During the update, if you never changed the sample rate in the past, then BCR would use the new default value. It seems that your device doesn't support 16000 Hz for some reason. (If you wouldn't mind posting some additional details, it might help with understanding why--please see my previous edited comment.)

Since 16000 Hz is clearly problematic, I will revert the change and set the default back to 48000 Hz in version 1.62.

I'm not sure what kind of additional details I can give, if you mean my device, it's Redmi K20 Pro (raphael) Let me grab that codec thing also

chenxiaolong commented 4 months ago

Thanks! Sorry, by "additional details", I only meant the codec info

vunghi021198 commented 4 months ago

Thanks! Sorry, by "additional details", I only meant the codec info

Screenshot_20240303-145322.png

Screenshot_20240303-145405.png

Here are the two I can find

chenxiaolong commented 4 months ago

Thanks! That confirms it then. The device only supports 48000 Hz.

That's incredibly weird though. c2.android.opus.encoder is the default Opus encoder shipped in Android. The encoder has supported multiple sample rates in every version of Android since 2018. I guess Redmi must have disabled the other sample rates for some reason.

vunghi021198 commented 4 months ago

Thanks! That confirms it then. The device only supports 48000 Hz.

That's incredibly weird though. c2.android.opus.encoder is the default Opus encoder shipped in Android. The encoder has supported multiple sample rates in every version of Android since 2018. I guess Redmi must have disabled the other sample rates for some reason.

This is a Redmi series, more like a flagship killer tier so mostly some of the higher end features will be cutoff to reduce the cost and the selling price.

chenxiaolong commented 3 months ago

This will be fixed by #508, which changes BCR's behavior so that only the sample rates supported by the device are listed. This will be included in the next version of BCR (version 1.62).