Flutter 颤振-视频播放器侦听器被调用的速度非常慢
我想获得实时播放的视频的当前位置。我想用一个听者,但如果我这么做了:Flutter 颤振-视频播放器侦听器被调用的速度非常慢,flutter,flutter-video-player,Flutter,Flutter Video Player,我想获得实时播放的视频的当前位置。我想用一个听者,但如果我这么做了: \u controller.addListener(()=>print(\u controller.value.position.in毫秒)) 它仅每500毫秒打印一次值。这太慢了,视频每33毫秒更新一次,甚至更频繁。任何人都知道为什么会发生这种情况,以及实现我想要的目标的正确方式是什么 另外,当视频开始时,我可以通过启动AnimationController来实现我想要的,但这似乎是一个黑客行为。延迟的原因是VideoPl
\u controller.addListener(()=>print(\u controller.value.position.in毫秒))
它仅每500毫秒打印一次值。这太慢了,视频每33毫秒更新一次,甚至更频繁。任何人都知道为什么会发生这种情况,以及实现我想要的目标的正确方式是什么
另外,当视频开始时,我可以通过启动AnimationController来实现我想要的,但这似乎是一个黑客行为。延迟的原因是
VideoPlayerController
每500毫秒通知一次听众。您可以使用定时器
定期获取视频播放器的位置。下面是一个示例代码
class VideoPlayerScreen extends StatefulWidget {
@override
VideoPlayerState createState() => VideoPlayerState();
}
class VideoPlayerState extends State<VideoPlayerScreen> {
Timer _timer;
VideoPlayerController videoPlayerController;
void startTimer() {
_timer = Timer.periodic(const Duration(milliseconds: 100), (Timer timer) async {
print(await videoPlayerController.position);
});
}
@override
void dispose() {
_timer?.cancel();
videoPlayerController?.dispose();
super.dispose();
}
}
class VideoPlayerScreen扩展了StatefulWidget{
@凌驾
VideoPlayerState createState()=>VideoPlayerState();
}
类VideoPlayerState扩展状态{
定时器(u定时器),;
视频播放控制器;
void startTimer(){
_定时器=定时器。周期(常数持续时间(毫秒:100),(定时器)异步{
打印(等待videoPlayerController.位置);
});
}
@凌驾
无效处置(){
_计时器?.cancel();
videoPlayerController?.dispose();
super.dispose();
}
}
这对我不起作用。位置videoPlayerController.value.position
仅每500毫秒更新一次,以便代码在同一位置上打印5次,然后在500毫秒前打印一个不同的位置!我已经更新了答案,请再次检查@若昂·奥布兰特斯