init method

  1. @override
void init()
override

Implementation

@override
void init() {
  notify(PlayerEvent.init);
  // needBoot((){
  //   Player.boot();
  //   print("Player.boot");
  // });
  var _vlcMedia;
  if (media.type == PlayerMediaType.network) {
    _vlcMedia = dart_vlc.Media.network(media.resource);
  } else if (media.type == PlayerMediaType.asset) {
    _vlcMedia = dart_vlc.Media.asset(media.resource);
  } else if (media.type == PlayerMediaType.file) {
    _vlcMedia = dart_vlc.Media.file(File(media.resource));
  } else {
    throw Exception("media type not support");
  }

  player.open(_vlcMedia, autoStart: false);
  players.add(this);
  subscriptions.addAll([
    player.positionStream.listen((dart_vlc.PositionState _state) {
      _position = _state.position ?? _position;
      _duration = _state.duration ?? _duration;
      notify(PlayerEvent.position);
    }),
    player.playbackStream.listen((state) {
      if (state.isCompleted) {
        status = PlayerStatus.ended;
        // if loop is true, then restart the video
        if (loop) {
          replay();
        }
      }
    }),
    player.generalStream.listen((dart_vlc.GeneralState _state) {
      _volume = _state.volume;
      _speed = _state.rate;
    }),
  ]);

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