Last time I checked the Android source code, the only two APIs that would use the low-latency path added in Jellybean were OpenSL ES
and SoundPool
(and maybe ToneGenerator
as well, but I guess that's irrelevant here).
If you've got a bunch of static sounds, using a SoundPool
would be the most convenient option. For real-time generated audio you'll have to use OpenSL ES.
For the list of conditions that need to be met for the low-latency path to be chosen, I refer you to the source code of libaudioflinger and libwilhelm. Short summary: Use the native sample rate, mono or stereo linear PCM, no effects.