Отслеживать прогресс Flutter видео плеер

Привет, я использую плагин для видеопроигрывателя, у меня что-то похожее [{phrase:"something", startAt: 1039}, {phrase:"other somthing", startAt: 26500}] Есть ли способ изменить фразу в зависимости от времени начала во время воспроизведения видео.

Я пытался использовать таймер продолжительностью 100 мс, но я не могу определить точное время из плагина видеоплеера Flutter.

1 ответ

Возможно, вы захотите взглянуть на виджеты с сохранением состояния, поскольку они позволяют вам делать именно это. Короче говоря, вы можете установить phrase быть некоторой переменной, и как только видео начинается, вы можете позвонить setState и измените переменную. Флаттер автоматически перерисовает виджет и текст будет обновлен.

Чтобы определить, воспроизводится ли видеопроигрыватель, вы можете добавить слушателя в свой видеоконтроллер.

_controller = VideoPlayerController.network(
      'http://www.sample-videos.com/video/mp4/720/big_buck_bunny_720p_20mb.mp4',
    )
      ..addListener(() {
        final bool isPlaying = _controller.value.isPlaying;
        if (isPlaying != _isPlaying) {
          setState(() {
            _isPlaying = isPlaying;
          });
        }
      })
      ..initialize().then((_) {
        // Ensure the first frame is shown after the video is initialized, even before the play button has been pressed.
        setState(() {});
      });
Другие вопросы по тегам