当前位置: 首页 > news >正文

网站页面设计与制作实践盱眙县建设局网站

网站页面设计与制作实践,盱眙县建设局网站,绍兴企业网站推广,网页设计与制作介绍前言 简单学习一下几个比较好用的文件读取库 video_player 简介 用于视频播放 官方文档 https://pub-web.flutter-io.cn/packages/video_player 安装 flutter pub add video_player加载网络视频 class _MyHomePageState extends StateMyHomePage {// 控制器late…前言 简单学习一下几个比较好用的文件读取库 video_player 简介 用于视频播放 官方文档 https://pub-web.flutter-io.cn/packages/video_player 安装 flutter pub add video_player加载网络视频 class _MyHomePageState extends StateMyHomePage {// 控制器late VideoPlayerController _controller;// 初始化overridevoid initState() {super.initState();// 加载网络视频_controller VideoPlayerController.networkUrl(Uri.parse(https://www.tujuyun.com/pixabay/video/VideoBig/1024927/4006.mp4))..initialize().then((_) {setState(() {});});}overridevoid dispose() {super.dispose();_controller.dispose();}overrideWidget build(BuildContext context) {return Scaffold(appBar: AppBar(backgroundColor: Theme.of(context).colorScheme.inversePrimary,title: Text(widget.title),),body: Center(child: _controller.value.isInitialized // 判断是否已经加载完成? AspectRatio(// 设置视频播放的宽高比aspectRatio: _controller.value.aspectRatio,child: VideoPlayer(_controller),): Container(),),floatingActionButton: FloatingActionButton(onPressed: () {setState(() {_controller.value.isPlaying // 判断是否是在播放中? _controller.pause() //暂停: _controller.play(); // 播放});},child: Icon(_controller.value.isPlaying ? Icons.pause : Icons.play_arrow,),),);} }加载本地视频 _controller VideoPlayerController.asset(lib/assets/video/3998.mp4)..initialize().then((_) {setState(() {});});设置倍速和进度条 Center(child: _controller.value.isInitialized // 判断是否已经加载完成? AspectRatio(// 设置视频播放的宽高比aspectRatio: _controller.value.aspectRatio,child: Stack(alignment: Alignment.bottomCenter,children: Widget[// 视频播放器VideoPlayer(_controller),// 设置倍速Row(children: [ElevatedButton(onPressed: () {_controller.setPlaybackSpeed(1);},child: const Text(1倍速)),ElevatedButton(onPressed: () {_controller.setPlaybackSpeed(5);},child: const Text(5倍速))],),// 视频的进度条VideoProgressIndicator(_controller, allowScrubbing: true),],),): Container(),)chewie video_player虽然是官方提供的插件但是很明显它只适合拿来简单的播放视频就比如前端的video标签功能也很少。在这里推荐一下chewie 简介 chewie是基于video_player实现的它额外提供了很多功能比如倍速、进度条、全屏以及其他的功能 官方文档 https://pub-web.flutter-io.cn/packages/chewie 安装 flutter pub add chewie默认的弹出菜单是这样的 可以通过设置optionsBuilder来进行自定义显示 class MyHomePage extends StatefulWidget {const MyHomePage({super.key, required this.title});final String title;overrideStateMyHomePage createState() _MyHomePageState(); }class _MyHomePageState extends StateMyHomePage {// 控制器late VideoPlayerController _controller;late ChewieController _chewieController;late PersistentBottomSheetControllerdynamic _bottomSheetController;// 初始化overridevoid initState() {super.initState();// 加载网络视频_controller VideoPlayerController.networkUrl(Uri.parse(https://www.tujuyun.com/pixabay/video/VideoBig/1024927/4006.mp4))..initialize().then((_) {setState(() {});_chewieController ChewieController(videoPlayerController: _controller,autoPlay: true,looping: true,optionsBuilder: (context, defaultOptions) async {// 这里面现在是只有一个设置倍速的我们把它拿出来// for (int i 0; i defaultOptions.length; i) {// print(默认选项${defaultOptions[i]});// }// await showDialogvoid(// context: context,// builder: (ctx) {// // return AlertDialog(// // content: ListView.builder(// // itemCount: defaultOptions.length,// // itemBuilder: (_, i) ActionChip(// // label: Text(defaultOptions[i].title),// // onPressed: () defaultOptions[i].onTap!(),// // ),// // ),// // );// },// );_bottomSheetController Scaffold.of(context).showBottomSheet((BuildContext context) {return SizedBox(height: 200,child: ListView(children: Widget[ListTile(leading: const Icon(Icons.speed),title: const Text(倍速),onTap: () defaultOptions[0].onTap!(),),const Divider(color: Colors.grey,thickness: 1.0,),ListTile(leading: const Icon(Icons.download),title: const Text(下载),onTap: () print(下载中..),),const Divider(color: Colors.grey,thickness: 1.0,),ListTile(leading: const Icon(Icons.close),title: const Text(关闭),onTap: () _bottomSheetController.close(),),],),);});},);});}overridevoid dispose() {super.dispose();_controller.dispose();_chewieController.dispose();}overrideWidget build(BuildContext context) {return Scaffold(appBar: AppBar(backgroundColor: Theme.of(context).colorScheme.inversePrimary,title: Text(widget.title),),body: Center(child: _controller.value.isInitialized // 判断是否已经加载完成? AspectRatio(// 设置视频播放的宽高比aspectRatio: _controller.value.aspectRatio,child: Chewie(controller: _chewieController,),): Container(),),);} }注 chewie 还有很多其他高级功能比如自定义UI界面、设置弹幕等。需要好好看一下官方文档才能实现高级功能不过上面那个例子已经可以满足基本的使用了。 image_picker 简介 用于从相册中挑选图片、视频、使用相机拍摄照片。 官方文档 https://pub-web.flutter-io.cn/packages/image_picker 安装 flutter pub add image_picker示例读取单张图片 class _MyHomePageState extends StateMyHomePage {// 图片文件File? _image;// 错误信息String _error ;// 图片选择函数Futurevoid _pickImage() async {// 从相册中选择图片try {final pickedImage await ImagePicker().pickImage(source: ImageSource.gallery);if (pickedImage ! null) {setState(() {_image File(pickedImage.path);});}} catch (e) {setState(() {_error e.toString();});}}overrideWidget build(BuildContext context) {return Scaffold(appBar: AppBar(backgroundColor: Theme.of(context).colorScheme.inversePrimary,title: Text(widget.title),),body: Center(child: Column(mainAxisAlignment: MainAxisAlignment.center,children: [// 图片存在则显示if (_image ! null)Image.file(_image!,width: 200,height: 200,),// 如果错误信息存在if (_error.isNotEmpty) Text(错误$_error),const SizedBox(height: 20,),ElevatedButton(onPressed: _pickImage, child: const Text(从相册里选取图片))],),),);} }看了一下好像不能设置选择的图片格式只能设置大小、质量 如果设置为ImagePicker().pickImage(source: ImageSource.camera) 这是调用摄像头来进行获取图片 示例读取多张图片 class _MyHomePageState extends StateMyHomePage {// 图片文件列表final ListFile _pickedFileList [];// 错误信息String _error ;// 图片选择函数Futurevoid _pickImage() async {// 从相册中选择图片try {final pickedImageList await ImagePicker().pickMultiImage();if (pickedImageList.isNotEmpty) {for (XFile image in pickedImageList) {_pickedFileList.add(File(image.path));}setState(() {});}} catch (e) {setState(() {_error e.toString();});}}overrideWidget build(BuildContext context) {return Scaffold(appBar: AppBar(backgroundColor: Theme.of(context).colorScheme.inversePrimary,title: Text(widget.title),),body: Center(child: Column(mainAxisAlignment: MainAxisAlignment.center,children: [Expanded(child: ListView.builder(itemCount: _pickedFileList.length,itemBuilder: (context, index) {return Image.file(_pickedFileList[index],width: 200,height: 200,);})),// 如果错误信息存在if (_error.isNotEmpty) Text(错误$_error),const SizedBox(height: 20,),ElevatedButton(onPressed: _pickImage, child: const Text(从相册里选取图片))],),),);} }要长按图片才能够一次选择多个最后在点击右上角的选择。轻触会直接选中图片。另外看了下pickMultiImage里的入参好像不支持限制图片的个数 示例选择单个视频 选择视频稍微复杂一点还需要借助video_player等插件才能更进行预览。 class _MyHomePageState extends StateMyHomePage {// 错误信息String _error ;// 视频信息late File _video;// 视频播放器VideoPlayerController? _videoPlayerController;Futurevoid? _videoPlayerInitializer;// 选择视频Futurevoid _pickVideo() async {// 从相册中选择视频try {final pickedVideo await ImagePicker().pickVideo(source: ImageSource.gallery);if (pickedVideo ! null) {setState(() {_video File(pickedVideo.path);_videoPlayerController VideoPlayerController.file(_video);_videoPlayerInitializer _videoPlayerController!.initialize();// 播放视频_videoPlayerController!.play();});}} catch (e) {setState(() {_error e.toString();});}}overridevoid dispose() {_videoPlayerController?.dispose();super.dispose();}overrideWidget build(BuildContext context) {return Scaffold(appBar: AppBar(backgroundColor: Theme.of(context).colorScheme.inversePrimary,title: Text(widget.title),),body: Center(child: Column(mainAxisAlignment: MainAxisAlignment.center,children: [if (_videoPlayerController ! null)FutureBuilder(future: _videoPlayerInitializer,builder: (BuildContext context, AsyncSnapshotvoid snapshot) {if (snapshot.connectionState ConnectionState.done) {return SizedBox(width: 300,height: 200,child: AspectRatio(aspectRatio:1.5,child: VideoPlayer(_videoPlayerController!),),);} else {return const CircularProgressIndicator();}},),// 如果错误信息存在if (_error.isNotEmpty) Text(错误$_error),const SizedBox(height: 20,),ElevatedButton(onPressed: _pickVideo, child: const Text(从相册里选取视频))],),),);} }file_picker 简介 一个包允许您使用本机文件资源管理器来选择单个或多个文件具有扩展筛选支持。 官方文档 https://pub-web.flutter-io.cn/packages/file_picker 安装 flutter pub add file_picker示例选择单个文件 class _MyHomePageState extends StateMyHomePage {// 错误信息String _error ;// 文件路径String _filePath ;// 选择文件Future _pickFile() async {try {FilePickerResult? result await FilePicker.platform.pickFiles(dialogTitle: 选择图片,type: FileType.image, // 设置文件的类型);if (result ! null) {setState(() {_filePath result.files.single.path!;});}} catch (e) {setState(() {_error e.toString();});}}overrideWidget build(BuildContext context) {return Scaffold(appBar: AppBar(backgroundColor: Theme.of(context).colorScheme.inversePrimary,title: Text(widget.title),),body: Center(child: Column(mainAxisAlignment: MainAxisAlignment.center,children: [// File 是 io包下的_filePath ? const Text(未选择文件) : Image.file(File(_filePath)),// 如果错误信息存在if (_error.isNotEmpty) Text(错误$_error),const SizedBox(height: 20,),ElevatedButton(onPressed: _pickFile, child: const Text(选择一个图片))],),),);} }示例选择多个文件 FilePickerResult? result await FilePicker.platform.pickFiles(allowMultiple: true);if (result ! null) {ListFile files result.paths.map((path) File(path)).toList(); } else {// User canceled the picker }其他功能略可以自行查看官方文档
文章转载自:
http://www.morning.jpkk.cn.gov.cn.jpkk.cn
http://www.morning.fgtls.cn.gov.cn.fgtls.cn
http://www.morning.nrqnj.cn.gov.cn.nrqnj.cn
http://www.morning.tturfsoc.com.gov.cn.tturfsoc.com
http://www.morning.nkbfc.cn.gov.cn.nkbfc.cn
http://www.morning.rsjng.cn.gov.cn.rsjng.cn
http://www.morning.nggbf.cn.gov.cn.nggbf.cn
http://www.morning.kdldx.cn.gov.cn.kdldx.cn
http://www.morning.rnytd.cn.gov.cn.rnytd.cn
http://www.morning.wkws.cn.gov.cn.wkws.cn
http://www.morning.wfjyn.cn.gov.cn.wfjyn.cn
http://www.morning.bykqg.cn.gov.cn.bykqg.cn
http://www.morning.rzscb.cn.gov.cn.rzscb.cn
http://www.morning.tjwlp.cn.gov.cn.tjwlp.cn
http://www.morning.ruifund.com.gov.cn.ruifund.com
http://www.morning.flmxl.cn.gov.cn.flmxl.cn
http://www.morning.spqbp.cn.gov.cn.spqbp.cn
http://www.morning.jzccn.cn.gov.cn.jzccn.cn
http://www.morning.nd-test.com.gov.cn.nd-test.com
http://www.morning.rfljb.cn.gov.cn.rfljb.cn
http://www.morning.kxrhj.cn.gov.cn.kxrhj.cn
http://www.morning.hdpcn.cn.gov.cn.hdpcn.cn
http://www.morning.rmdwp.cn.gov.cn.rmdwp.cn
http://www.morning.nccyc.cn.gov.cn.nccyc.cn
http://www.morning.qbzfp.cn.gov.cn.qbzfp.cn
http://www.morning.grfhd.cn.gov.cn.grfhd.cn
http://www.morning.mprky.cn.gov.cn.mprky.cn
http://www.morning.plchy.cn.gov.cn.plchy.cn
http://www.morning.tbhlc.cn.gov.cn.tbhlc.cn
http://www.morning.rldph.cn.gov.cn.rldph.cn
http://www.morning.tjqcfw.cn.gov.cn.tjqcfw.cn
http://www.morning.hxxwq.cn.gov.cn.hxxwq.cn
http://www.morning.drggr.cn.gov.cn.drggr.cn
http://www.morning.nqbpz.cn.gov.cn.nqbpz.cn
http://www.morning.gkpgj.cn.gov.cn.gkpgj.cn
http://www.morning.cxlys.cn.gov.cn.cxlys.cn
http://www.morning.jsljr.cn.gov.cn.jsljr.cn
http://www.morning.kmwbq.cn.gov.cn.kmwbq.cn
http://www.morning.dwfzm.cn.gov.cn.dwfzm.cn
http://www.morning.bqpgq.cn.gov.cn.bqpgq.cn
http://www.morning.xzgbj.cn.gov.cn.xzgbj.cn
http://www.morning.ybshj.cn.gov.cn.ybshj.cn
http://www.morning.zfwjh.cn.gov.cn.zfwjh.cn
http://www.morning.ktnmg.cn.gov.cn.ktnmg.cn
http://www.morning.eshixi.com.gov.cn.eshixi.com
http://www.morning.bnpcq.cn.gov.cn.bnpcq.cn
http://www.morning.kjlia.com.gov.cn.kjlia.com
http://www.morning.pmhln.cn.gov.cn.pmhln.cn
http://www.morning.ybqlb.cn.gov.cn.ybqlb.cn
http://www.morning.pndw.cn.gov.cn.pndw.cn
http://www.morning.uycvv.cn.gov.cn.uycvv.cn
http://www.morning.rcntx.cn.gov.cn.rcntx.cn
http://www.morning.qzqjz.cn.gov.cn.qzqjz.cn
http://www.morning.kqzt.cn.gov.cn.kqzt.cn
http://www.morning.jrbyz.cn.gov.cn.jrbyz.cn
http://www.morning.hcgbm.cn.gov.cn.hcgbm.cn
http://www.morning.jjzrh.cn.gov.cn.jjzrh.cn
http://www.morning.ctpfq.cn.gov.cn.ctpfq.cn
http://www.morning.zcckq.cn.gov.cn.zcckq.cn
http://www.morning.jncxr.cn.gov.cn.jncxr.cn
http://www.morning.wcczg.cn.gov.cn.wcczg.cn
http://www.morning.spghj.cn.gov.cn.spghj.cn
http://www.morning.trsdm.cn.gov.cn.trsdm.cn
http://www.morning.wcqxj.cn.gov.cn.wcqxj.cn
http://www.morning.bfycr.cn.gov.cn.bfycr.cn
http://www.morning.sqqpb.cn.gov.cn.sqqpb.cn
http://www.morning.hyfrd.cn.gov.cn.hyfrd.cn
http://www.morning.ummpdl.cn.gov.cn.ummpdl.cn
http://www.morning.tbknh.cn.gov.cn.tbknh.cn
http://www.morning.nhbhc.cn.gov.cn.nhbhc.cn
http://www.morning.krklj.cn.gov.cn.krklj.cn
http://www.morning.fcftj.cn.gov.cn.fcftj.cn
http://www.morning.myrmm.cn.gov.cn.myrmm.cn
http://www.morning.ltrms.cn.gov.cn.ltrms.cn
http://www.morning.nzfyx.cn.gov.cn.nzfyx.cn
http://www.morning.pmnn.cn.gov.cn.pmnn.cn
http://www.morning.ndynz.cn.gov.cn.ndynz.cn
http://www.morning.tjndb.cn.gov.cn.tjndb.cn
http://www.morning.fssjw.cn.gov.cn.fssjw.cn
http://www.morning.rwls.cn.gov.cn.rwls.cn
http://www.tj-hxxt.cn/news/242621.html

相关文章:

  • 网站打开出现建设中道滘镇仿做网站
  • 四川华远建设工程有限公司网站学企业管理培训班
  • 西安公司网站怎么制作公众号文章怎么制作
  • 什么网站做简历免费南京软件外包公司
  • 长沙做黄叶和网站的公司有哪些wordpress4.3 撰写设置
  • 个人注册网站怎么注册无线网被附近多个
  • 做资源下载网站好吗星悦做任务网站是
  • 建设网站论文网站建设需要用到iis吗
  • 怎样建设简单的网站外宣做网站宣传
  • 北京外贸网站建设wordpress单本小说模板
  • 加强门户网站建设的通知班级优化大师下载安装最新版
  • 未备案的网站网站建设图标素材免费
  • 清洁设备网站模版网站上的字体大小
  • 手机能建设网站忙广州省建设厅官方网站
  • 海南省住房和城乡建设官方网站中小型网站开发
  • 制作商品网站服务器 wordpress 邮件设置
  • 免费自助小型网站wordpress资源付费主题
  • 成都网站建设939辽宁注册公司网站
  • 网站做推广页需要什么软件有哪些做网站大优惠
  • 泉州网站优化怎样用记事本做网站
  • 怎么自己搭建一个博客网站天津商城网站建设
  • 一级a做爰片2202网站h5页面开发工具
  • 云南做网站要多少钱房价网查询官网
  • 铭万网站建设营销策划方案结构
  • 网站模板大小实时热搜榜榜单
  • 网站首页图片 代码wordpress 服务器环境
  • 先看网站案例您的网站也可以这么做做网站包括备案吗
  • 产品设计网站制作抖音开放平台官网
  • wordpress建一个网站做背景网站
  • 网站链接交换网站做排名需要多少钱