字幕实现
了解了字幕文件的形式,字幕实现起来就比较简单了,使用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),)
)

直播平台源码实现网易云音乐样式的字幕相关推荐

  1. 网红带货与直播平台源码,“直播+”的成熟模式

    为什么说KOL和网红催生出了网红直播平台源码开发市场? KOL是在其领域有号召力.影响力.公信力的账号,网红是具有巨大粉丝量和号召力的账号,他们拥有流量. 而电商卖家,他们缺少流量,如果有人能为其店铺 ...

  2. 直播平台源码搭建教程之Android音视频开发

    直播平台源码搭建教程之Android音视频开发 音频 将声音保存成音频的过程,其实就是将模拟音频数字化的过程,为了实现这个过程,就需要对模拟音频进行采样.量化和编码.接下来我们详细讲解这一过程. 采样 ...

  3. 基于Java毕业设计在线直播平台源码+系统+mysql+lw文档+部署软件

    基于Java毕业设计在线直播平台源码+系统+mysql+lw文档+部署软件 基于Java毕业设计在线直播平台源码+系统+mysql+lw文档+部署软件 本源码技术栈: 项目架构:B/S架构 开发语言: ...

  4. 手把手带你快速实现直播平台源码聊天室

    工具要求: (1) Android Studio 3.2或更高版本. (2) SDK targetVersion至少为26. 本文直播平台源码聊天室是集成环信IM SDK实现聊天功能,及实现发送礼物. ...

  5. 直播平台源码搭建教程盘点直播技术中的编解码、直播协议、网络传输与简单实现

    直播平台源码搭建教程盘点直播技术中的编解码.直播协议.网络传输与简单实现 Live CheatSheet | 直播技术理论基础与实践概论 音视频直播的基本流程都是采集 → 编码推流 → 网络分发 → ...

  6. 直播平台源码的搭建,离不开流媒体视频服务

    前言 最近自己在研究有关于直播平台源码流媒体播放的技术,网上资料甚少.出于开源精神以及在查阅资料得到各位大佬的帮助,故将自己的心得写下记录,便于分享以及日后维护. 在此极力感谢并推荐雷神(雷霄骅) 个 ...

  7. 教育源代码,培训教育源码,万岳教育直播平台源码校园版

    万岳教育直播平台源码校园版介绍 可适用于学校私有化部署,拥有直播.随堂测验.懂没懂等多种实用功能,方便讲师深入了解学生学习进度,并针对不同学生情况制定相应学习计划. 万岳教育直播平台源码校园版核心功能 ...

  8. 搭建直播平台源码,从何入手

    搭建直播平台源码需要多少人手: 产品组,包括产品经理.UI等,负责市场调研.竞品研究和效果图制作等工作 OC工程师,负责使用OC语言进行IOS端软件开发工作 JAVA工程师,负责使用JAVA进行安卓端 ...

  9. 直播系统源码App中Android酷炫礼物动画直播平台源码搭建教程(上篇)

    直播系统源码App中Android酷炫礼物动画直播平台源码搭建教程(上篇) 在当下移动直播火爆的年代,如果你曾经使用过移动端直播应用,相信会被里面那令人惊叹的礼物动画效果迷住,比如像下面这样的效果. ...

最新文章

  1. mysql数据更新回退_Mysql的几个灵魂拷问(一)
  2. oracle update批量修改sql语句编写
  3. EM 期望最大化算法
  4. 观点 | 容器内应该运行什么?
  5. erlang精要(10)-erl(2)
  6. 报告解读|远程银行:从扎根网络到加速上云
  7. 用数据库实现了一个分布式锁,虽简陋,但能用!
  8. 在centos6.7用yum安装redis
  9. HANA report里默认filter的工作机制
  10. P2403 [SDOI2010]所驼门王的宝藏(强连通分量)(拓扑排序)
  11. 原型——设计思维之建立模型
  12. 自然语言处理 matlab,程序员罗杰
  13. AMD CEO苏姿丰称芯片短缺还将持续 今年相当紧缺
  14. 浅析GDAL库C#版本支持中文路径问题(续)
  15. idea Spring-boot 项目debug启动过慢 spring debug启动过慢解决办法:已解决
  16. Java之品优购课程讲义_day12(2)
  17. 2021-09-13Top-N 推荐系统,通常指的是个性化推荐系统,有别于热门推荐。
  18. 获取代理IP的三种途径
  19. 愤怒的小鸟是如何长大的
  20. 18.Consent 实现思路介绍

热门文章

  1. 好用的在线二维码生成器网站PHP源码
  2. [Zookeeper] 安装and各 配置参数详解
  3. 【Grace卫星】Grace卫星精度知识点。
  4. 关于树莓派(四):安装树莓派时遇见的错误
  5. 器件选型 贴片还是直插好?
  6. ACS711KLCTR-12AB-T霍尔效应线性电流传感器Allegro ACS711
  7. excel设置行高和列宽
  8. 社群运营和用户运营的区别
  9. 基于Insightface的人脸识别
  10. ncbi blast MATLAB,NCBI-BLAST在线使用教程详细攻略(图解)