The play/end functions must always be called in order for the seeking variables to be correctly updated. However the pause function is only necessary for pause/secondsPlayed events.