小编Tan*_*zan的帖子

flutter videoPlayerController.addListener() 监听多次。我怎样才能只听一次?

我想打印视频当前的播放时间(以秒为单位)。但我认为它每秒打印 4 次。 这是 videoPlayerController.addListener 代码。

await videoPlayerController.initialize().then((value) => {
          videoPlayerController.addListener(
            () {
              log(videoPlayerController.value.position.inSeconds.toString);
            },
          )
        });
Run Code Online (Sandbox Code Playgroud)

我希望此 videoPlayerController.value.position.inSeconds 日志每秒仅显示一次。

完整代码

void _initVideoPlayer() async {
    var url = await _extractVideoUrl();
    log('url $url');

    videoPlayerController = VideoPlayerController.network(url);
    await videoPlayerController.initialize().then((value) => {
          videoPlayerController.addListener(
            () {
              log(videoPlayerController.value.position.inSeconds.toString);
            },
          )
        });

    chewieController = ChewieController(
      videoPlayerController: videoPlayerController,
      autoPlay: true,
      looping: false,
      allowedScreenSleep: false,
      allowFullScreen: true,
      showControls: true,
      startAt: _reStoreLastPosition(),
      errorBuilder: (context, errorMessage) {
        return Center(
          child: Text(
            errorMessage,
            style: const TextStyle(color: Colors.white),
          ),
        );
      },
    ); …
Run Code Online (Sandbox Code Playgroud)

dart flutter flutter-dependencies flutter-layout

2
推荐指数
1
解决办法
1466
查看次数