http://udarmusic.ru/
Я там реализовал довольно просто.
Получилось псевдо-кеширование.
1. Подгружается PlayList - для каждой песни плейлиста создается объект Sound.
Когда пользователь жмет на воспроизведение песни, идет проверка, загружена она или нет...Соответственно если загружена:
SoundObject.start()
В противном случае включается прелоадер