Move player update logic from timeline to player