Yes, a repeating timer would do nicely.
Depending on the mechanism you're using to play the media, it might have a time-based callback you can register for. Then you could redraw every time a sample is processed, or a timecode interval is hit, or at various other interesting times.