1

我试图在 intiState 中启动视频,但没有用,然后我将它添加到build函数中并且它有效,但现在它不能暂停我想知道为什么:

以下是我播放视频的方式:

@override
  Widget build(BuildContext context) {
    controller!.play();
    ....
}

然后,当我尝试触发暂停时,它不再暂停,是不是因为构建方法,如何最好地实现这一点,以便状态发生变化。

4

1 回答 1

0

出现这个问题的原因是暂停视频后,您的代码会再次运行,并且因为您放入controller!.play();了构建功能,它会在每次构建后再次播放!您可以定义一个布尔参数: bool isPlayed = false

然后didChangeDependencies按如下方式使用它:

@override
  void didChangeDependencies() {
    super.didChangeDependencies();
    if(!isPlayed){
       controller!.play();
       setState(() {isPlayed = true;});
    }
  }
于 2021-07-27T06:55:12.670 回答