(See
http://www.cplusplus.com/forum/lounge/130478/ for an introduction.)
So, my player is now in a more or less usable state. I myself intend to start dogfooding soon. If anyone would like to give it a try:
https://github.com/Helios-vmg/CopperRat
Some notes:
* You'll need to build it, obviously. Both SDK and NDK are required.
* Needs Android 4.0.4 (API 15) or later. I should be able to bring it down to API 14, but I haven't gotten around to it yet.
* The program is less CPU-intensive than the default Android player. I take this to mean that it also uses less power, but I haven't done an actual experiment yet.
* Known bug: Changing tracks while the app is in the background (using a bluetooth headset, for example) invalidates the graphical state and nothing will get drawn until the app is restarted.
* Some missing features (that I'll add eventually): no ReplayGain, no seek bar, the option for enqueuing tracks is visible but doesn't work, no settings or anything else gets saved.
* Things that do work: gapless playback, album art (both embedded and in separate files), Vorbis, MP3, FLAC, Unicode (Unifont rules!
http://unifoundry.com/unifont.html ).
* Format conversions (resampling, bit shifting) are handled by template-generated optimal functions. The technique I used for the resampler in particular is pretty cool if I may say so myself, and I recommend checking it out.