таймер запаздывает

подскажите есть ли по этому коду альтернативный вариант, у меня такое чувство что таймер(или задержка) немного запаздывает когда вызывается этот метод раз за разом:

void cycle() {
    var a = data.duration *
        (data.position.length);
    play();
    Timer(Duration(milliseconds: (60000 / a).floor()), () {
      setState(() {
        cursor =
            operations.cursorMoveForward(cursor, data, _scrollController);
      });
      if (
          cursor.position == position.length - 1 || !onPlay) {
      } else {
        cycle();
      }
    });
  }

Ответы (0 шт):