以服务于中国广大创业者为己任,立志于做最好的创业网站。

标签云创业博客联系我们

导航菜单

抖音里边唱歌边显示字幕 抖音滚动歌词视频教程

  

     

  

  老孟导读:没有接触过音乐字幕方面知识的话,会对字幕的实现比较迷茫,什么时候转到下一句?看了这篇文章,你就会明白字幕太容易了。   

  

  先来一张效果图:   

  

     

  

  ## 字幕格式   

  

  目前市面上有很多种字幕格式,比如SSA SRT,   

  

  屁股(文本形式)和idx sub(图形格式),但不管哪一种格式都会包含2个属性:时间戳和字幕内容,格式如下:   

  

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

  

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

  

  ## 字幕实现   

  

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

  

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

  

  loadData()异步{ var jsonStr=wait defaultassetbundle。(上下文)的.loadStrIng(' assets/subtitle。txt’);var list=jsonstr。split(RegExp(' \ n ');名单。foreach((f){ if(f . is notempty){ var r=f . split(RegExp('));if(r . length=2){ _字幕列表。add(字幕条目(r[0],r[1]);} } });setState((){ });}   

  

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

  

  @ override widget build(构建上下文上下文){ return Scaffold(AppBar : AppBar(title : Text('弹幕),),体: Stack(子体:[已贴。填充(子图像:资产('资产/imgs/背景。' png ',fit: BoxFit.cover,),已发布。填充(子字幕:(_字幕列表),选择textstyle 3: TextStyle(颜色:颜色。白色,fontSize: 18),取消选择textstyle : TextStyle(颜色。黑色}   

  

  字幕控件的构建:   

  

  @ override widget build(构建上下文上下文){ if(widget。data==null | | widget。数据。长度==0){返回Container();}返回listrowscrollview。usedelegate(控制器: _ controller,直径比:小部件。直径比,项目扩展:小部件。item extend,child delegate : list wheelchildbuilderdelegate(builder :(上下文,索引){ 0返回容器(对齐:对齐。居中,子:文本($ { widget。数据[索引]).content} ',style: _ currentIndex==index?小部件。selectedtextstyle :小部件。取消选择extstyle,);},子计数:小部件。数据。长度),);}   

  

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

  

  副标题(_副标题列表,选择文本样式:文本样式(颜色:颜色。白色,字体大小: 18),选择文本样式:文本样式(颜色:颜色。黑色。带有不透明度(.6),)   

  

  效果如下:   

  

     

  

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

  

  副标题(_副标题列表,直径勘误表:5)   

  

  下面是一和5的对比:   

  

     

  

     

  

  开源代码库地址:https://github。com/781238222/flutter-   

  

  做/树/主/扑_副标题_示例   

  

  ## 交流   

  

  开源代码库地址:https://github。com/781238222/flutter-do   

  

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

  

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

  

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

  

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