init method

  1. @override
Future<void> init()
override

Implementation

@override
Future<void> init() async {
  await notify(PlayerEvent.init);
  // reset the prefix of assets
  player.audioCache.prefix = "";
  // needBoot((){
  //   Player.boot();
  //   print("Player.boot");
  // });
  await setMedia(media);

  // await player.audioCache.clearAll();

  subscriptions.addAll([
    player.onPositionChanged.listen((Duration position) async {
      _position = position;
      await notify(PlayerEvent.position);
      // if (position == duration) {
      //   notify(PlayerEvent.end);
      // }
    }),
    player.onPlayerStateChanged
        .listen((audioplayers.PlayerState status) async {
      if (status == audioplayers.PlayerState.playing) {
        _status = PlayerStatus.playing;
      } else if (status == audioplayers.PlayerState.paused) {
        _status = PlayerStatus.paused;
      } else if (status == audioplayers.PlayerState.stopped) {
        _status = PlayerStatus.stopped;
      } else if (status == audioplayers.PlayerState.completed) {
        _status = PlayerStatus.ended;
      }
      await notify(PlayerEvent.status);
    }),
    player.onDurationChanged.listen((Duration duration) async {
      _duration = duration;
      await notify(PlayerEvent.duration);
    }),
  ]);

  if (autoPlay) {
    await play();
  }
  await super.init();
}