视频播放项目地址
效果图

从pub.dev搜索视频播放库,但都不能满足要求,最后下载flick-video项目代码,做了功能简化和修改。

实现功能:

列表播放时,不支持拖动修改进度亮度声音,避免滑动冲突,全屏和单一视频播放时支持

1、屏幕左侧上下滑动修改屏幕亮度
2、屏幕右侧上下滑动修改视频音量
3、横向滑动切换播放进度
4、长按2倍速播放
5、支持全屏播放,并且全屏时可手动切换全屏播放方向
6、列表滑动自动播放

代码结构

Container(width: double.infinity,height: 200,child: VideoPlayerWidget(videoManager: videoManager,videoWithControls: VideoPlayerWithControlWidget(controls:VideoControlWidget(videoManager: videoManager),)),),

1. VideoPlayerWidget

使用MultiProvider注册监听
videoManagerModel :控制video player,播放暂停设置监听等操作;
viewManagerModel :控制播放过程的ui更新;

2. VideoPlayerWithControlWidget

置放视频播放器,即一些触屏操作
GestureDetector:点击、长按、横向拖动、纵向拖动操作

3 . VideoControlWidget

视频播放控制界面,操作时通过model执行操作更新界面
=注意Stack内部Positioned的lef top bottom right 对子组件尺寸的影响,开发过程遇到 因为位置设置错误影响其他组件被遮挡看不见 误以为未显示 的问题=

整个项目实质两个叠加界面 下层视频界面负责播放 上层ui界面负责控制,最外层MultiProvider监听

开发过程遇到的问题

1. Volume和Brightness调控需要通过MethodChannel

2. Satck内部Positioned位置对尺寸的影响

3. 全屏播放使用OverlayEntry显示,控制屏幕方向 实现

4. 注意状态切换,videoManagerModle中_videoListener()中有详细区分


Flutter videoplayer相关推荐

  1. Flutter视频播放、Flutter VideoPlayer 视频播放组件精要

    在码农的世界里,优美的应用体验,来源于程序员对细节的处理以及自我要求的境界,年轻人也是忙忙碌碌的码农中一员,每天.每周,都会留下一些脚印,就是这些创作的内容,有一种执着,就是不知为什么,如果你迷茫,不 ...

  2. Flutter videoplayer适配

    不留黑边适配方法 Center(child: SizedBox.expand(child: FittedBox(fit: BoxFit.cover,child: SizedBox(height: 16 ...

  3. Flutter 项目开发指导 从基础入门到精通使用目录

    Flutter 从入门 到精通系列文章 本文章为 Flutter 开发中的经验积累分享.教程分享.开发笔记分享目录,持续维护中. 题记 -- 执剑天涯,从你的点滴积累开始,所及之处,必精益求精. Fl ...

  4. flutter图片预览_Flutter 视频缩略图

    在做即时通讯前整理了一个视频缩略图的工具类,可供码农直接放入项目中使用,涉及到的插件: video_player: ^0.10.11+2 话不多说代码如下: import 'package:flutt ...

  5. flutter开发仿抖音首页面上下滑动切换播放视频效果

    题记 -- 执剑天涯,从你的点滴积累开始,所及之处,必精益求精,即是折腾每一天. -----[视频教程 感兴趣的伙伴可以瞅瞅] 本小节讲述: 1 VideoPlayer 视频播放组件使用 2 Vide ...

  6. flutter 斗音页面

    1.TabBar 与 TabBarView 实现左右滑动切换页面 2.PageView 实现视频列表上下整屏切换 3.VideoPlayer 实现视频播放 4.ModelBottomSheet 实现底 ...

  7. 跟我一步一步实现 Flutter 视频播放插件 (一)

    当团队准备着手做 APP 时,我们把目标对准了 Flutter,尤其近期 Flutter 的使用热度一直不断攀升.由于第一次使用 Flutter,就想通过自己的实践去提升自己的能力. 在做 APP 时 ...

  8. Flutter video_player视频播放器简单实用

    1.支持Android.ios.web三平台 2.在使用的页面加入下面的代码 import 'package:auto_orientation/auto_orientation.dart'; impo ...

  9. Flutter使用video_player实现视频播放

    通过flutter的video_player插件 1.首先在 pubspec.yaml 文件下添加 video_player: ^2.6.0,如果你是在 vscode开发的,ctrl + s 会自动加 ...

  10. 入坑 Flutter 前你需要知道的一些 XXX

    扳指一算,这已经是 Flutter 出道的第三个年头了.这两年来,用它写过几个类似计算器.手电筒.罗盘之类小到不能再小的应用,也算是对其有一点点拙见,本文纯属爽完后的瞎掰,不涉及过多的代码,只对准备入 ...

最新文章

  1. 《kafka中文手册》- 构架设计(一)
  2. java ecj_java - 在Maven构建中使用Eclipse Java Compiler(ecj) - 堆栈内存溢出
  3. 关闭系统进程,以及如何调用cmd并执行命令
  4. 图解 _INTSIZEOF(n)
  5. Python入门--文件对象的常用方法,write,read,readline
  6. Opencascade关键词
  7. 光纤的基本理论光纤的色散
  8. 华为举办首届用户精英论坛,携手共创数据存储新未来
  9. 消费新品周报 | 歌帝梵携手大白兔推出全冰品系列;MK推出新一代智能触屏腕表...
  10. mac 解决sudo: no valid sudoers sources found, quitting
  11. 实战篇--优惠券秒杀
  12. linux运行docker容器,添加映射端口
  13. vue的hook(钩子函数)
  14. 分布式是大数据处理的万能药?
  15. 逆水寒能不能网页预约服务器,逆水寒怎么预约春暖花开服务器 春暖花开服务器预约流程...
  16. 用友总账模块显示不能登录到服务器,用友软件部分常见问题
  17. CHAPTER 24 Dialog Systems and Chatbots
  18. SRAM 和 DRAM 的区别
  19. qlv格式无需工具快速转MP4
  20. zeplin加载 不出图片_为什么Zeplin不能解决您的所有问题

热门文章

  1. 《人人都该买保险》读书笔记
  2. 掘金mysql_MySQL学习笔记(转自掘金小册 MySQL是怎样运行的,版权归作者所有!)
  3. 优质前端掘金小册推荐及优惠购买链接
  4. 机器学习数学基础(1)-回归、梯度下降
  5. 基于PHP+MySQL的物流配送管理系统平台
  6. 手机哪个软件可以远程控制服务器,手机远程有什么功能?手机远程协助软件哪个好?...
  7. pandavan路由器升级php到7,下载宝pandavan固件+H3C交换机单线复用问题讨论
  8. IDEA external library 这个里面是空的怎么办
  9. HBase编程api介绍(转)
  10. Java将视频文件、图片文件转Base64编码