anchor.diff:  
     Duration _lastSeek;
   
  +  Future<String> Function(String) onPlay;
  +
     /// returns the looping state : true -> looping, false -> not looping
     bool get loop => _loop.value;
     bool get shuffle => _loop.value;
  
positive.code:     if (_players.containsKey(id)) {
        return _players[id];
      } else {
        final player = AssetsAudioPlayer._(
          id: id,
        );
        _players[id] = player;
        return player;
      }
    }
  
    factory AssetsAudioPlayer.newPlayer() => _getOrCreate(id: uuid.v4());
  
    AudioPlayerHandler audioPlayerHandler;
  
    /// empty constructor now create a new player
    factory AssetsAudioPlayer() => AssetsAudioPlayer.newPlayer();
  
negative.code:     }
    }
  }
  