GreenVideoController constructor

GreenVideoController()

Implementation

GreenVideoController() {
  _eventSubscription = _channels.getPlayerEvents.listen((event) {
    final jsonData = event.cast<String, dynamic>();
    final playerEvent = GreenVideoPlayerEvent.fromJson(jsonData);
    if (viewId == null || playerEvent.viewId != viewId) {
      return;
    }

    if (playerEvent is OnPlayerInitEvent) {
      final muted = playerEvent.muted;
      if (muted != null) {
        isMuted = muted;
      }
      connected = true;
      if (startCommand != null) {
        execute(startCommand!);
        startCommand = null;
      }
    }

    if (playerEvent is OnTimeUpdateEvent) position = playerEvent.position;
    if (playerEvent is OnSeekEvent) position = playerEvent.position;
    if (playerEvent is OnPlayEvent) isPlaying = true;
    if (playerEvent is OnPauseEvent) isPlaying = false;
    if (playerEvent is OnMuteEvent) isMuted = true;
    if (playerEvent is OnUnmuteEvent) isMuted = false;
    if (playerEvent is OnEnterFullscreenEvent) isFullscreen = true;
    if (playerEvent is OnExitFullscreenEvent) isFullscreen = false;
    if (playerEvent is OnShowUiEvent) showsUi = true;
    if (playerEvent is OnHideUiEvent) showsUi = false;
    if (_playerEventsController.isClosed) return;
    _playerEventsController.add(playerEvent);
  });
}