可以通过VideoPlayerController的status属性获取当前的播放状态。该属性返回一个枚举值,包括以下几种状态:
- VideoPlayerControllerValue#status = PlayerStatus.unknown 表示播放状态未知。
- VideoPlayerControllerValue#status = PlayerStatus.buffering 表示正在缓冲视频数据。
- VideoPlayerControllerValue#status = PlayerStatus.playing 表示正在播放视频。
- VideoPlayerControllerValue#status = PlayerStatus.paused 表示视频已暂停播放。
- VideoPlayerControllerValue#status = PlayerStatus.completed 表示视频播放已完成。
代码示例:
VideoPlayerController _controller;
@override
void initState() {
super.initState();
_controller = VideoPlayerController.network('video_url..');
_controller.initialize().then((_) {
setState(() {
// 视频已初始化完成,开始播放
_controller.play();
});
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: _controller.value.isInitialized ? VideoPlayer(_controller) : CircularProgressIndicator(),
),
);
}
// 获取视频播放状态
PlayerStatus status = _controller.value.status;
if (status == PlayerStatus.buffering) {
// 正在缓冲视频数据
} else if (status == PlayerStatus.playing) {
// 正在播放视频
} else if (status == PlayerStatus.paused) {
// 视频已暂停播放
} else if (status == PlayerStatus.completed) {
// 视频播放已完成
}