#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
со следующим видео.
И делайте то, что вы хотите, в этом завершенном событии, если хотите.