public void addTrackPositionListener(int player, TrackPositionListener listener) {
        listenerPlayerNumbers.put(listener, player);
        TrackPositionUpdate currentPosition = positions.get(player);
        if (currentPosition !=  null) {
            listener.movementChanged(currentPosition);
            trackPositionListeners.put(listener, currentPosition);
        } else {
            trackPositionListeners.put(listener, NO_INFORMATION);
        }
    }
public void addTrackPositionListener ( int player , TrackPositionListener listener ) { listenerPlayerNumbers . put ( listener , player ) ; TrackPositionUpdate currentPosition = positions . get ( player ) ; if ( currentPosition != null ) { listener . movementChanged ( currentPosition ) ; trackPositionListeners . put ( listener , currentPosition ) ; } else { trackPositionListeners . put ( listener , NO_INFORMATION ) ; } }
Add a listener that wants to closely follow track playback for a particular player. The listener will be called
as soon as there is an initial {@link TrackPositionUpdate} for the specified player, and whenever there is an
unexpected change in playback position, speed, or state on that player.

@param player the player number that the listener is interested in
@param listener the interface that will be called when there are changes in track playback on the player