>> + if (*rate > 48000) >> + *rate = 48000; > > Is the limit documented somewhere? AFAIK, Android sdk doc does not say anything about this. I have no idea the exact limitation. But at least 96khz is not supported on all my devices. So I just simply follow the way aout/audiotrack.c did.