Как перейти к следующему порханию видео

#flutter

#порхание

Вопрос:

Я создаю видеопроигрыватель в flutter, мне нужно знать, когда заканчивается видео, чтобы воспроизвести следующее, я нашел несколько примеров, но у меня они не сработали

это мой код

  //Init state

_videoController = VideoPlayerController.network(
      _urlVideo ?? 'https://flutter.github.io/assets-for-api-docs/assets/videos/bee.mp4'
    );
    _chewieController = ChewieController(
      videoPlayerController: _videoController,
      aspectRatio: 3/2,
      autoPlay: false,
      looping: true,
      allowFullScreen: true,
      cupertinoProgressColors: ChewieProgressColors(),
    );
  

Ответ №1:

вы можете добавить слушателя

 _videoController = VideoPlayerController.network(
      _urlVideo ?? 'https://flutter.github.io/assets-for-api-docs/assets/videos/bee.mp4'
    );
    _chewieController = ChewieController(
      videoPlayerController: _videoController,
      aspectRatio: 3/2,
      autoPlay: false,
      looping: true,
      allowFullScreen: true,
      cupertinoProgressColors: ChewieProgressColors(),
    )..addListener((){

    //do anything you want with _chewieController in listener. for example :
       if(_chewieController.videoPlayerController.value.position == finalPosition){
           var _position = _chewieController.videoPlayerController.value.position;
           var _duration = _chewieController.videoPlayerController.value.duration;
           if(_duration?.compareTo(_position) == 0 || _duration?.compareTo(_position) == -1){
              _playOtherVideo();
           }
       }  
    });
  

Комментарии:

1. Как мне получить конечную позицию видео?, Я пытался сделать это в течение нескольких дней, однако это дает мне значение null для элемента duration

2. @AndresCuello Я обновил ответ и также проверил эту проблему github.com/flutter/flutter/issues/21929

Ответ №2:

Вы можете установить loop:false ,

Затем, когда воспроизведение завершено, запустите другое play со следующим видео.

И делайте то, что вы хотите, в этом завершенном событии, если хотите.