Yep I got an idea, cause i had the same problem.

First I was looking for a solution and finally I came up with this : (not the best way to solve the problem)

Everytime I got new data (readyRead()) i pass this data to a class member and call setCurrentSource() again. Before I do this i save the time which has been played already and after calling setCurrentSource i seek that phonon media object to that time. it works pretty good even if i call stop to that media object and start again i don't get any kinds of lags or so on