Can the app indicate native sample rate?
The github description mentions sampling at native rate, so it sounds like the app already has a way of detecting this. Is it possible to display a line of text indicating the native call sample rate at the screen where output format is selected? I suppose if you're really enthusiastic, you could change the text on the buttons to something like "16kHz (native)". It's hard for the user to know and wasteful to sample at a higher rate than the call outputs.
Oops, that feature was removed a while ago. I didn't realize I forgot to remove it from the README.
Android unfortunately does not provide a way to query the native sample rate. The only way to do it is to actually attempt to record a call and see which sample rate Android picked.
There's also a second issue where codecs are limited in which sample rates they support (eg. ogg/opus does not support 44.1kHz). I opted to just have a list of hardcoded sample rates (8, 12, 16, 24, 48 kHz) instead of having the call fail to record if the user chose a codec that's incompatible with the native sample rate.
Currently, BCR defaults to 48 kHz since I believe that's guaranteed to work on every device that support call recording. Ideally, it'd default to 16 kHz since that's the maximum sample rate of the actual phone call. Anything higher is wasting space.