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

网站栏目建设方案实时热搜

网站栏目建设方案,实时热搜,自己网站做问卷调查,发布做任务网站先来一张效果图: image 字幕格式 目前市面上有很多种字幕格式,比如srt, ssa, ass(文本形式)和idxsub(图形格式),但不管哪一种格式都会包含2个属性:时间戳和字幕内容,格…

先来一张效果图:

image

字幕格式

目前市面上有很多种字幕格式,比如srt, ssa, ass(文本形式)和idx+sub(图形格式),但不管哪一种格式都会包含2个属性:时间戳和字幕内容,格式如下:

 

00:00 歌词:
00:25 我要穿越这片沙漠
00:28 找寻真的自我
00:30 身边只有一匹骆驼陪我
00:34 这片风儿吹过
00:36 那片云儿飘过

上面字幕的意思是:在25秒的时候跳转到下一句,在28秒的时候跳转到下一句...

字幕实现

了解了字幕文件的形式,字幕实现起来就比较简单了,使用ListWheelScrollView控件,然后通过ScrollController在合适的时机进行滚动,使当前字幕始终保持在屏幕中间。

解析字幕文件,获取字幕数据:

 

loadData() async {var jsonStr =await DefaultAssetBundle.of(context).loadString('assets/subtitle.txt');var list = jsonStr.split(RegExp('\n'));list.forEach((f) {if (f.isNotEmpty) {var r = f.split(RegExp(' '));if (r.length >= 2) {_subtitleList.add(SubtitleEntry(r[0], r[1]));}}});setState(() {});
}

设置字幕控件及背景图片:

 

@override
Widget build(BuildContext context) {return Scaffold(appBar: AppBar(title: Text('弹幕'),),body: Stack(children: <Widget>[Positioned.fill(child: Image.asset('assets/imgs/background.png',fit: BoxFit.cover,)),Positioned.fill(child: Subtitle(_subtitleList,selectedTextStyle: TextStyle(color: Colors.white,fontSize: 18),unSelectedTextStyle: TextStyle(color: Colors.black.withOpacity(.6),),diameterRatio: 5,itemExtent: 45,))],),);
}

字幕控件的构建:

 

@override
Widget build(BuildContext context) {if (widget.data == null || widget.data.length == 0) {return Container();}return ListWheelScrollView.useDelegate(controller: _controller,diameterRatio: widget.diameterRatio,itemExtent: widget.itemExtent,childDelegate: ListWheelChildBuilderDelegate(builder: (context, index) {return Container(alignment: Alignment.center,child: Text('${widget.data[index].content}',style: _currentIndex == index? widget.selectedTextStyle: widget.unSelectedTextStyle,),);},childCount: widget.data.length),);
}

字幕控件封装了选中字体和未选中字体样式参数,用法如下:

 

Subtitle(_subtitleList,selectedTextStyle: TextStyle(color: Colors.white,fontSize: 18),unSelectedTextStyle: TextStyle(color: Colors.black.withOpacity(.6),)
)

效果如下:

image

设置圆筒直径和主轴渲染窗口的尺寸的比,默认值是2,越小表示圆筒越圆

 

Subtitle(_subtitleList,diameterRatio: 5,
)

下面是1和5的对比:

image

 

image

Github地址:https://github.com/781238222/flutter-do/tree/master/flutter_subtitle_example

交流

Github地址:https://github.com/781238222/flutter-do

170+组件详细用法:http://laomengit.com

如果你对Flutter还有疑问或者技术方面的疑惑,欢迎加入Flutter交流群(微信:laomengit)。

同时也欢迎关注我的Flutter公众号【老孟程序员】,公众号首发Flutter的相关内容。

Flutter生态建设离不开你我他,需要大家共同的努力,点赞也是其中的一种,如果文章帮助到了你,希望点个赞。



作者:老孟程序员
链接:https://www.jianshu.com/p/02858a58e602
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

http://www.lbrq.cn/news/2493523.html

相关文章:

  • 慈溪做无痛同济&网站百度广告电话号码是多少
  • 专业优化网站建设百度竞价什么意思
  • 南昌政府网站建设seo自己怎么做
  • 网站的涂鸦效果图怎么做的百度刷自己网站的关键词
  • 怎么在qq上自己做网站做百度推广销售怎么找客户
  • 做网站是什么时候分页长春seo网站管理
  • 如何制作微信网站武汉武汉最新
  • 西昌市做网站的品牌广告策划方案
  • 网站诊断分析今日热搜榜
  • 查询网站备案进度精准客源app
  • 二手图书交易网站建设自媒体推广
  • 质量好网站建设公司服装品牌营销策划方案
  • 网站建设财务计划与预测产品宣传方案
  • 神华两学一做网站事件营销成功案例
  • 有关网站建设的书籍举例说明什么是seo
  • 做网站思路长沙市云网站建设
  • 做婚纱摄影网站多少钱百度官网客服
  • 做招聘网站怎么赚钱制作一个网站步骤
  • 网站会员系统怎么做模版企业查询
  • 网站公司怎么找客户百度经验官网首页
  • 有什么公司是建设网站的吗搜索引擎优化的常用方法
  • 免费网站制作推广plc培训机构哪家最好
  • 做音乐网站曲库在哪找百度在线使用网页版
  • 精神文明建设网站关键词优化资讯
  • 网站制作软件价格百度网址大全官方下载
  • wordpress自适应 分页宁波seo推广费用
  • 代做课程设计的网站挖掘关键词工具
  • 常德做网站的公司东莞网络推广平台
  • 南宁好的网站建设公司武汉本地seo
  • 怎样到国外做合法博彩法网站ciliba磁力猫
  • 数学建模——灰色关联分析
  • Valgrind Helgrind 工具全解:线程同步的守门人
  • 基于Java的KTV点歌系统的设计与实现
  • 【H264视频编码】一、基本概念
  • 深入理解Java内存与运行时机制:从对象内存布局到指针压缩
  • vmware虚拟机中 ubuntu 20.04通过nat设置静态ip(固定ip)