init method

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

初始化

Implementation

@override
Future<void> init() async{
  DartVLC.initialize();
  _player= Player(id: 1);
  _onListener = () {

    _player.playbackStream.listen((event) {
      if(event.isCompleted){
        _playlistFinished.add(event.isCompleted);
      }

      AudioPlayerState audioPlayerState;
      if(_player.playback.isPlaying){
        audioPlayerState =AudioPlayerState.play;
        _isPlaying.add(_player.playback.isPlaying);

      }else {
        audioPlayerState = AudioPlayerState.pause;
        _isReadPlay = false;
      }
      _playerState.add(audioPlayerState);
    });

    _player.generalStream.listen((event) {
      _playSpeed.add(event.rate);
      _volume.add(event.volume);
    });

    _player.positionStream.listen((event) {
      if(_player.playback.isPlaying){
        if(!_isReadPlay){
          AudioDataSource audioDataSource = _covertMediaToAudioDataSource(_player.current.media??Media.asset(''));
          _onReadyToPlay.add(audioDataSource);
          _isReadPlay = true;
        }
      }
      _currentPosition.add(event.position??Duration.zero);
    });
    _player.bufferingProgressStream.listen((event) {
      _isBuffering.add(!(_player.bufferingProgress == 100));
    });
    _player.currentStream.listen((event) {
      if(event.media != null ){
        _current.add(
            _covertMediaToAudioDataSource(event.media??Media.asset(''))
        );
      }
    });
  };
  _player.textureId.addListener(_onListener);
}