前言
每年,毕业季后面接踵而来的就是就业季,各位准备得怎么样了?准备Android面试的朋友记得收藏点赞哦,不是准备这个方向的面试也可以转发给你这个专业的朋友,助他一臂之力。
4.2.1. 初始化
首先我们需要在initState
生命周期中对视频进行初始化,对视频是否加载成功显示不同的UI界面:加载中、加载成功、加载失败。
void _urlChange() async {
if (widget.url == null || widget.url == ‘’) return;
if (_controller != null) {
/// 如果控制器存在,清理掉重新创建
_controller.removeListener(_videoListener);
_controller.dispose();
}
setState(() {
/// 重置组件参数
_videoInit = false;
_videoError = false;
});
if (widget.type == VideoPlayerType.file) {
_controller = VideoPlayerController.file(widget.url);
} else if (widget.type == VideoPlayerType.asset) {
_controller = VideoPlayerController.asset(widget.url);
} else {
_controller = VideoPlayerController.network(widget.url);
}
/// 加载资源完成时,监听播放进度,并且标记_videoInit=true加载完成
_controller.addListener(_videoListener);
await _controller.initialize();
setState(() {
_videoInit = true;
_videoError = false;
_controller.play();
});
}
这里有一个需要注意的点: