video_player: ^2.3.0
chewie: ^1.3.1
用此库必须也引入video_player这个官方的库。
// ChewieController({
// required this.videoPlayerController,//视频播放器控制器
videoPlayerController 【说明】
// {
// VideoPlayerController.network('dataSource');
// VideoPlayerController.asset('dataSource');
// VideoPlayerController.file('dataSource');
// VideoPlayerController.contentUri('dataSource');
例子:
{
_videoPlayerController = VideoPlayerController.network(
//视频地址
'https://flutter.github.io/assets-for-api-docs/assets/videos/butterfly.mp4',
//视频选项
videoPlayerOptions: VideoPlayerOptions(
//允许后台播放
allowBackgroundPlayback: false,
//将此设置为 true 以将视频播放器音频与其他音频源混合。默认值为 false 注意:该选项在 web 平台中将被静默忽略(目前在此平台中没有办法实现此功能)。
mixWithOthers: false));
///{属性}
await _videoPlayerController.closedCaptionFile; //隐藏式字幕文件
await _videoPlayerController.dataSource; //数据源
await _videoPlayerController.dataSourceType; //数据源类型
await _videoPlayerController.formatHint; //格式提示
await _videoPlayerController.httpHeaders; //http 标头
await _videoPlayerController.package; //包裹
await _videoPlayerController.videoPlayerOptions; //视频播放器选项
///{异步方法}
await _videoPlayerController.initialize(); //初始化
await _videoPlayerController.dispose(); //关闭
await _videoPlayerController.pause(); //暂停
await _videoPlayerController.play(); //播放
await _videoPlayerController.setCaptionOffset(position); //设置字幕偏移
await _videoPlayerController.setLooping(position); //设置循环
await _videoPlayerController.setPlaybackSpeed(position); //设置播放速度
await _videoPlayerController.setVolume(position); //设置音量
await _videoPlayerController.seekTo(
position); //将视频的当前时间戳设置为 [moment{片刻}]。下次播放视频时,它将从给定的 [时刻] 恢复。如果 [moment{片刻}] 超出视频的完整范围,它将被自动且无声地钳制。
///{方法}
_videoPlayerController.notifyListeners(); //通知监听器
_videoPlayerController.addListener(() {}); //添加监听器
_videoPlayerController.removeListener(() {}); //移出监听器
}
// }
// this.optionsTranslation,//选项翻译
// this.aspectRatio,//纵横比
// this.autoInitialize = false,//自动初始化
// this.autoPlay = false,//自动播放
// this.startAt,//开始于
// this.looping = false,//循环
// this.fullScreenByDefault = false,//默认全屏
// this.cupertinoProgressColors,//库比蒂诺进步颜色
// this.materialProgressColors,//材料进度颜色
// this.placeholder,//占位符
// this.overlay,//覆盖
// this.showControlsOnInitialize = true,//初始化时显示控件
// this.showOptions = true,//显示选项
// this.optionsBuilder,//选项生成器
// this.additionalOptions,//其他选项
// this.showControls = true,//显示控件
// this.zoomAndPan = false,//缩放和平移
// this.maxScale = 2.5,//最大比例
// this.subtitle,//字幕
// this.subtitleBuilder,//字幕生成器
// this.customControls,//自定义控件
// this.errorBuilder,//错误生成器
// this.allowedScreenSleep = true,//允许屏幕睡眠
// this.isLive = false,//正在直播
// this.allowFullScreen = true,//允许全屏
// this.allowMuting = true,//允许静音
// this.allowPlaybackSpeedChanging = true,//允许播放速度更改
// this.useRootNavigator = true,//使用根导航器
// this.playbackSpeeds = const [0.25, 0.5, 0.75, 1, 1.25, 1.5, 1.75, 2],//播放速度
// this.systemOverlaysOnEnterFullScreen,//系统覆盖进入全屏
// this.deviceOrientationsOnEnterFullScreen,//进入全屏时的设备方向
// this.systemOverlaysAfterFullScreen = SystemUiOverlay.values,//全屏后系统叠加
// this.deviceOrientationsAfterFullScreen = DeviceOrientation.values,//全屏后的设备方向
// this.routePageBuilder,//路线页面构建器
// })
ChewieController 【方法】
{
///{方法}
_controller.isFullScreen; //是全屏
_controller.isPlaying; //正在播放
_controller.toggleFullScreen(); //切换全屏
_controller.togglePause(); //切换暂停
_controller.enterFullScreen(); //进入全屏
_controller.exitFullScreen(); //退出全屏
_controller.notifyListeners(); //通知监听器
_controller.copyWith(); //复制
_controller.notifyListeners(); //通知监听器
_controller.setSubtitle(newSubtitle); //设置字幕
_controller.setVolume(newSubtitle); //设置音量
_controller.setLooping(newSubtitle); //设置循环
_controller.seekTo(newSubtitle); //将视频的当前时间戳设置为 [moment{片刻}]。下次播放视频时,它将从给定的 [时刻] 恢复。如果 [moment{片刻}] 超出视频的完整范围,它将被自动且无声地钳制。
}
THE END