【问题标题】:how to show current play time of video when using video_player plugin in flutter?在flutter中使用video_player插件时如何显示视频的当前播放时间?
【发布时间】:2020-05-31 15:30:51
【问题描述】:

当前使用来自给定链接的颤振video_player 插件流视频。问题是我不得不隐藏正常的视频交互界面,这样用户就不能跳过视频。现在大部分工作已经完成,只需要知道如何显示已播放视频的durationcurrent position

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

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】:

    使用 ValueListenableBuilder 怎么样?

    它会监听控制器的值并在每次值变化时更新它。

    这是示例:

    ValueListenableBuilder(
      valueListenable: playerController,
      builder: (context, VideoPlayerValue value, child) {
        //Do Something with the value.
        return Text(value.position.toString());
      },
    );
    

    【讨论】:

      【解决方案2】:

      使用视频播放器插件中的内置小部件。 [在 github 上查看他们的示例的更多信息][https://github.com/999eagle/plugins/blob/master/packages/video_player/example/lib/main.dart]

                 VideoProgressIndicator(
                        _videoController,//controller
                        allowScrubbing: true,
                        colors: VideoProgressColors(
                          playedColor: primary,
                          bufferedColor: Colors.red,
                          backgroundColor: black,
                        ),
                      )
      
      
        [1]: https://github.com/999eagle/plugins/blob/master/packages/video_player/example/lib/main.dart
      

      【讨论】:

      • 感谢颜色
      猜你喜欢
      • 2020-05-29
      • 1970-01-01
      • 1970-01-01
      • 2021-08-05
      • 2020-11-07
      • 1970-01-01
      • 1970-01-01
      • 2021-06-29
      • 1970-01-01
      相关资源
      最近更新 更多