我试图在 intiState 中启动视频,但没有用,然后我将它添加到build
函数中并且它有效,但现在它不能暂停我想知道为什么:
以下是我播放视频的方式:
@override
Widget build(BuildContext context) {
controller!.play();
....
}
然后,当我尝试触发暂停时,它不再暂停,是不是因为构建方法,如何最好地实现这一点,以便状态发生变化。
我试图在 intiState 中启动视频,但没有用,然后我将它添加到build
函数中并且它有效,但现在它不能暂停我想知道为什么:
以下是我播放视频的方式:
@override
Widget build(BuildContext context) {
controller!.play();
....
}
然后,当我尝试触发暂停时,它不再暂停,是不是因为构建方法,如何最好地实现这一点,以便状态发生变化。
出现这个问题的原因是暂停视频后,您的代码会再次运行,并且因为您放入controller!.play();
了构建功能,它会在每次构建后再次播放!您可以定义一个布尔参数:
bool isPlayed = false
然后didChangeDependencies
按如下方式使用它:
@override
void didChangeDependencies() {
super.didChangeDependencies();
if(!isPlayed){
controller!.play();
setState(() {isPlayed = true;});
}
}