: The issue is that you can't get any more accurate information from the decoded mp3 data. The decoder only provides 1 second semi-accurate information.
If you want to get hyper-accurate, then you could directly map file positions from the mp3 file, then query the mp3 file position as it plays (FC I 4
is the low-level command, use the RogueSD command: RogueSDCommandObject.getfileinfo(4)
- the MP3 file plays from file handle 4).
It's a bit overkill, IMO, though. If you have some sort of playback issue, there are probably bigger problems afoot.
Using a timer on the controller is considerably easier and more accurate than you think.
FYI: I've been running 2 of our MP3 units (1 uMP3
and 1 rMP3
) non-stop for more than 6 months (the uMP3
unit has been running non-stop for over 1 year!) without hiccups. The uMP3
unit displays data (i.e. constant status queries) on an LCD (it's played well over 130000 songs back to back). The rMP3
module is on the POV clock/player - and has been running for over 6 months non-stop (playing songs and displaying spectrum analyzer data).