du startest erst den mplayer und hälst den UI thraed für 4 sek an.
Warte zeiten in einen eigenen thraed machen asynctask benutzen.
Auch der Player sollte in einen eigen thread.
Deine zeitschleife wird erst am ende des players ausgeführt.da alles in einem thraed. Benutze asynctask für den player in onPostExecute also am ende des thread kannst du das Bild zurücksetzen. Du brauchst somit keine zeitschleife.
http://www.programmierenlernenhq.de/tutorial-andro…-und-asynctask/