I am currently hard at work at replacing the underlying audioplayer that the android provides with my own custom audio engine. Why you ask? Well there are 3 big reasons
1) Audio format support. The default player only supports mp3 m4a ogg 3gp midi and wav (flac is supported in 3.1+ now). What I am working on will support mpc, wma, ape, shn, tta, and wavepack as well.
2) Gapless playback for mp3 / aac. The way mp3 and aac files are encoded leaves a slight bit of silence at the end of each track. If they are properly encoded, metadata is added to the files that give you information about this gap so you can account for it.. giving gapless playback. The default player does not give access or support any of that.
3) There is no way to access the actual binary data of the audio stream with the default player. Without this data you cannot do gapless playback, crossfading, or add equalizer support (android 2.3+ adds supports for EQ but my app needs to support older versions)
I am hoping to get the initial version finished up within the next week