在flutter中使用video_player插件时如何显示视频的当前播放时间?

问题描述 投票:0回答:1

当前正在使用来自给定链接的flutter video_player插件流视频。问题是我必须隐藏普通的视频交互界面,以使用户无法跳过视频。现在大部分工作已经完成,只需要知道如何显示已播放视频的durationcurrent position

[videoController.value.duration.inSeconds给我duration部分,videoController.value.position给我position. But how to keep updating the results for the位置`部分?

void checkTimer(){
    if(playerController.value.position == playerController.value.duration){
      setState(() {
        Duration duration = Duration(milliseconds: playerController?.value?.position?.inMilliseconds?.round());

      nowTime = [duration.inHours, duration.inMinutes, duration.inSeconds]
        .map((seg) => seg.remainder(60).toString().padLeft(2, '0'))
        .join(':');
      });
    }

以上代码已创建,可根据需要更新时间。但是现在的问题是如何更新时间。我应该使用setState()还是其他名称,因为上述代码对我不起作用。

未加载视频,然后加载屏幕。当用户单击“播放”按钮时,它已加载。因此,在那之前,我们甚至还没有duration值,因为数据仍在路上。

flutter video plugins position video-player
1个回答
0
投票

如何使用ValueListenableBuilder?

它将监听控制器的值并在每次值更改时对其进行更新。

这是示例:

ValueListenableBuilder(
  valueListenable: playerController,
  builder: (context, VideoPlayerValue value, child) {
    //Do Something with the value.
    return Text(value.position);
  },
);
© www.soinside.com 2019 - 2024. All rights reserved.