init method

void init({
  1. AudioPlayer? audioPlayer,
})

Implementation

void init({AudioPlayer? audioPlayer}) {
  if (audioPlayer != null) {
    customPrint("datadatadatdadtadtdta::::::::::::");
    playerController = audioPlayer;
  } else {
    playerController = AudioPlayer();
  }
  playerController?.setReleaseMode(ReleaseMode.stop);

  durationStream = playerController?.onDurationChanged.listen((Duration? d) {
    maxDuration.value = d?.inMilliseconds ?? 0;
  });

  positionChangeStream = playerController?.onPositionChanged.listen((
      Duration p,
      ) async {
    currentPos.value = p.inMilliseconds;
    int sHours = Duration(milliseconds: currentPos.value).inHours;
    int sMinutes = Duration(milliseconds: currentPos.value).inMinutes;
    int sSeconds = Duration(milliseconds: currentPos.value).inSeconds;
    int rHours = sHours;
    int rMinutes = sMinutes - (sHours * 60);
    int rSeconds = sSeconds - (sMinutes * 60 + sHours * 60 * 60);
    currentPositionLabel.value =
    "${(rHours <= 9) ? '0$rHours' : '$rHours'}:${(rMinutes <= 9) ? '0$rMinutes' : '$rMinutes'}:${(rSeconds <= 9) ? '0$rSeconds' : '$rSeconds'}";
  });

  playerStateChangeStream = playerController?.onPlayerStateChanged.listen((
      event,
      ) async {
    if (event == PlayerState.completed) {
      await playerController?.pause();
      isComplete.value = true;
      isPlaying.value = false;
      isPlayed.value = true;
      currentPos.value = 0;
      currentPositionLabel.value = "00:00:00";
    }
  });
}