Interval is set in constructor, and timer is stopped.
indicatorTimer.Interval = TimeSpan
With interval set to 500 performance is so much better. But now I suffer from lack of indicator smoothness ;)
I've changed my calculating as you said. I'm new in C# and didn't know what TotalMiliseconds actually returns.
OnPlayProgress handler is just as I wrote:
timeLabel.Text = String.Format("{0:00}:{1:00}", currentTime.Minutes, currentTime.Seconds);
It looks like client will have to chose: smoothnes or no ticks.