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

Flutter video_player点击重新播放

视频播放完成之后,暂停视频,点击重新播放

import 'package:flutter/material.dart';
import 'package:video_player/video_player.dart';class ListViewItemWidget extends StatefulWidget{State createState() {return _ListViewItemWidgetState();}
}class _ListViewItemWidgetState extends State<ListViewItemWidget>{bool isPlay = false;bool isOver = false;late VideoPlayerController _controller;void initState() {_controller =  VideoPlayerController.network('https://sample-videos.com/video123/mp4/720/big_buck_bunny_720p_20mb.mp4')..initialize().then((_){_controller.play();setState(() {_controller.pause();});})..addListener(videoListener);}void dispose() {_controller.dispose();_controller.removeListener(videoListener);super.dispose();}void videoListener(){var curPlayPosition = _controller.value.position;var totalPlayTime = _controller.value.duration;if (curPlayPosition == totalPlayTime && curPlayPosition.toString() != "0:00:00.000000"){isOver = true;isPlay = false;_controller.initialize()..then((_) {setState(() {});});setState(() {});}}Widget build(BuildContext context) {return Column(children: [//未关注的才会显示为你推荐Row(children: [Container(width: MediaQuery.of(context).size.width - 50,height: 50,alignment: Alignment.centerLeft,padding: const EdgeInsets.only(left: 12.0),child: Text("为你推荐"),),SizedBox(width: 50,height: 50,child: InkWell(child: Icon(Icons.close),onTap: (){/*** 关闭*/},),)],),Stack(children: [Container(height: 220,color: Colors.blueGrey,margin: EdgeInsets.only(top: 10),child: Stack(children: [Positioned.fill(child: GestureDetector(child: AspectRatio(child: VideoPlayer(_controller),aspectRatio: _controller.value.aspectRatio,)),),Container(height: 40,child: Row(crossAxisAlignment: CrossAxisAlignment.center,children: [/*** 网络图片*/// Image(image: Image.network(""))Expanded(flex: 1,child:Icon(Icons.verified_user, color: Colors.white)),Expanded(flex: 6,child:Column(crossAxisAlignment: CrossAxisAlignment.start,children: [Text("userName", style: TextStyle(fontSize: 18, color: Colors.white),),Text("userName", style: TextStyle(fontSize: 12, color: Colors.white),)],),),Expanded(flex: 1,child: Text("关注",  style: TextStyle(fontSize: 12, color: Colors.white))),Expanded(flex: 1,child:   Icon(Icons.menu, color: Colors.white))],),),buildControllerWidget()],),),],),Container(margin: EdgeInsets.only(top: 10),child: Row(crossAxisAlignment: CrossAxisAlignment.center,children: [/*** 网络图片*/// Image(image: Image.network(""))Expanded(flex: 1,child:Icon(Icons.favorite_border)),Expanded(flex: 1,child:Icon(Icons.messenger_outline)),Expanded(flex: 1,child:Icon(Icons.share_outlined)),Expanded(flex: 4,child:Column(crossAxisAlignment: CrossAxisAlignment.start,children: [],),),Expanded(flex: 1,child:   Icon(Icons.collections_outlined))],),),Container(alignment: Alignment.centerLeft,padding: EdgeInsets.only(left: 18,top: 20),child: Column(crossAxisAlignment: CrossAxisAlignment.start,children: [Text("1732赞"),Text("hahhahah"),Text("总共23条评论"),Text("6天前")],),)],);}//播放界面Widget buildControllerWidget(){if(isPlay){return Container(child: GestureDetector(onTap: (){_controller.pause();isPlay = false;setState(() {});},),);}return  Positioned.fill(child: AspectRatio(aspectRatio: _controller.value.aspectRatio,child: Container(child: GestureDetector(onTap: (){if(isOver){isOver = false;_controller.play();isPlay = true;setState(() {});} else {_controller.play();isPlay = true;setState(() {});}},child: Icon(Icons.play_circle_fill, size: 44,),),)),);}
}

pubspec.yaml依赖

  video_player: ^2.3.0

要求Android compileSdkVersion 为33

相关文章:

Flutter video_player点击重新播放

视频播放完成之后&#xff0c;暂停视频&#xff0c;点击重新播放 import package:flutter/material.dart; import package:video_player/video_player.dart;class ListViewItemWidget extends StatefulWidget{overrideState createState() {return _ListViewItemWidgetState()…...

CSS3属性之text-overflow:ellipsis

语法&#xff1a; text-overflow:clip | ellipsis 默认值为clip 不显示省略标记 clip:当前对象内文本溢出时不显示省略标记,而是将溢出部分裁剪。 ellipsis:当对象内文本一处时显示省略标记(...)。 一、常见的单行文本溢出显示省略写法&#xff1a; text-overflow: ellipsis; …...

【深度学习_TensorFlow】梯度下降

写在前面 一直不太理解梯度下降算法是什么意思&#xff0c;今天我们就解开它神秘的面纱 写在中间 线性回归方程 如果要求出一条直线&#xff0c;我们只需知道直线上的两个不重合的点&#xff0c;就可以通过解方程组来求出直线 但是&#xff0c;如果我们选取的这两个点不在直…...

C++使用 auto 自动推断类型

C使用 auto 自动推断类型 在有些情况下&#xff0c; 根据赋给变量的初值&#xff0c; 很容易知道其类型。 例如&#xff0c; 如果将变量的初值设置成了 true&#xff0c;就可推断其类型为 bool。如果您使用的编译器支持 C11 和更高版本&#xff0c;可不显式地指定变量的类型&a…...

【前端面试手撕题】call、bind、new、freeze、浅拷贝

FED11 _call函数 描述 请补全JavaScript代码&#xff0c;要求实现Function.call函数的功能且该新函数命名为"_call"。 <!DOCTYPE html> <html><head><meta charset"UTF-8"><style>/* 填写样式 */</style> </head…...

MacBook Pro 16 M1 Max 升级 macOS Ventura 13.5 兼容测评

今天给大家带来了 MacBook Pro 16 M1 Max 升级 macOS Ventura 13.5 兼容 100 挑战赛 的视频&#xff0c;现在充电头再以文章的形式呈现给大家&#xff0c;让大家更清楚、直白的了解这款笔记本在升级系统后的兼容性如何。 MacBook Pro 16 M1 Max 配置了 140W 的 MagSafe 充电口&…...

实现5*5正方形网格x轴和y轴显示对应数值组件封装

实现5*5正方形网格x轴和y轴显示对应数值组件封装 需求&#xff1a;按5*5的正方形网格&#xff0c;根据目标数据的x和y轴值显示对应的文字&#xff0c;实现效果图如下&#xff1a;&#xff08;当前目标数值&#xff1a;x2&#xff0c;y2&#xff09; 代码如下&#xff1a; <…...

基于Matlab实现图像压缩技术(附上完整源码+图像+程序运行说明)

介绍 图像压缩是一种将图像数据压缩以减小文件大小的技术。在数字图像处理中&#xff0c;图像通常以像素阵列的形式表示。对于大型图像文件&#xff0c;传输和存储成本可能很高&#xff0c;因此图像压缩技术变得至关重要。在本文中&#xff0c;我们将介绍一种使用Matlab实现图…...

棒球联盟对于市场发展规划·棒球1号位

棒球联盟对于市场发展规划 1. 棒球联盟市场发展背景分析 在深入探讨棒球联盟市场发展背景之前&#xff0c;我们首先要明确&#xff0c;棒球&#xff0c;作为一种全球流行的体育项目&#xff0c;其在市场上的发展具有相当悠久的历史。棒球文化的起源可以追溯到上个世纪初&#…...

ansible控制主机和受控主机之间免密及提权案例

目录 案例描述 环境准备 案例一--免密远程控制主机 效果展示&#xff1a; 解决方案 1.添加主机 2.通过ssh-key生成密钥对 3.生成ssh-copy-id 4.验证 案例二-----免密普通用户提权 效果展示 解决方案 1.使用普通用户&#xff0c;与案例一 一样&#xff0c;进行发送密钥…...

flink1.17 eventWindow不要配置processTrigger

理论上可以eventtime processtime混用,但是下面代码测试发现bug,输入一条数据会一直输出. flink github无法提bug/问题. apache jira账户新建后竟然flink又需要一个账户,放弃 bug复现操作 idea运行代码后 往source kafka发送一条数据 a,1,1690304400000 可以看到无限输出…...

Python导出SqlServerl数据字典为excel

sql代码 SELECTtableName D.name ,tableIntroduce isnull(F.value, ),sort A.colorder,fieldName A.name,catogary B.name,bytes A.Length,lengths COLUMNPROPERTY(A.id, A.name, PRECISION),scales isnull(COLUMNPROPERTY(A.id, A.name, Scale), 0),isOrNotNull Cas…...

PB:DDE服务器函数

1、GetCommandDDE() 功 能:得到DDE客户应用发送的命令。 语 法:GetCommandDDE ( string ) 参 数:string:string类型的变量,用于保存DDE客户应用发送的命令。 返回值:Integer。函数执行成功时返回1,发生错误时返回-1。如果string参数的值为NULL, GetCommandDDE()…...

awk经典实战、正则表达式

目录 1.筛选给定时间范围内的日志 2.统计独立IP 案列 需求 代码 运行结果 3.根据某字段去重 案例 运行结果 4.正则表达式 1&#xff09;认识正则 2&#xff09;匹配字符 3&#xff09;匹配次数 4&#xff09;位置锚定&#xff1a;定位出现的位置 5&#xff09;分组…...

Python脚本-时间盲注

BlindBool_get import requests from optparse import OptionParser import threading#存放变量 DBName "" DBTables [] DBColumns [] DBData {} flag You are in #设置重连次数以及将连接改为短连接 #防止因为HTTP连接数过多导致的MAX retries exceeded with …...

面试总结-Redis篇章(十)——Redis哨兵模式、集群脑裂

Redis哨兵模式、集群脑裂 哨兵模式哨兵的作用服务状态监控 Redis集群&#xff08;哨兵模式&#xff09;脑裂解决办法 哨兵模式 为了保证Redis的高可用&#xff0c;Redis提供了哨兵模式 哨兵的作用 服务状态监控 Redis集群&#xff08;哨兵模式&#xff09;脑裂 假设由于网络原…...

el-table那些事

el-table那些事 获取el-table所有勾选的行数据 用于记录工作和日常学习遇到的坑&#xff0c;需求。 vue3element-plusts 获取el-table所有勾选的行数据 1、需要先声明一个ref变量&#xff0c;并赋值给el-table 2、通过el-table提供的getSelectionRows()函数获取选中的"行…...

kubernetes(一)

文章目录 1. k8s架构2. k8s集群搭建 1. k8s架构 2. k8s集群搭建...

计算机网络(6) --- https协议

计算机网络&#xff08;5&#xff09; --- http协议_哈里沃克的博客-CSDN博客http协议https://blog.csdn.net/m0_63488627/article/details/132089130?spm1001.2014.3001.5501 目录 1.HTTPS的出现 1.HTTPS协议介绍 2.补充概念 1.加密 1.解释 2.原因 3.加密方式 对称加…...

(三)Node.js - 模块化

1. Node.js中的模块化 Node.js中根据模块来源不同&#xff0c;将模块分为了3大类&#xff0c;分别是&#xff1a; 内置模块&#xff1a;内置模块由Node.js官方提供的&#xff0c;例如fs、path、http等自定义模块&#xff1a;用户创建的每个.js文件&#xff0c;都是自定义模块…...

手把手教你用网络分析仪调试CGH40010F:从S参数异常反推管子损坏原因与状态

深度解析CGH40010F氮化镓功率管故障诊断&#xff1a;从S参数异常到失效机理 在射频功率放大器设计中&#xff0c;CGH40010F作为一款经典的氮化镓(GaN)功率晶体管&#xff0c;因其高功率密度和高效率特性被广泛应用于基站、雷达等场景。然而在实际工程调试中&#xff0c;工程师们…...

如何通过Excel MCP Server实现无Excel环境下的自动化表格处理

如何通过Excel MCP Server实现无Excel环境下的自动化表格处理 【免费下载链接】excel-mcp-server A Model Context Protocol server for Excel file manipulation 项目地址: https://gitcode.com/gh_mirrors/ex/excel-mcp-server 你是否曾因没有安装Microsoft Excel而无…...

离散数学自然推理系统通关秘籍:从零开始手把手教你搞定Educoder所有证明题

离散数学自然推理系统通关秘籍&#xff1a;从零到精通的实战指南 1. 自然推理系统入门基础 对于初次接触离散数学自然推理系统的学习者来说&#xff0c;那些复杂的符号和规则往往让人望而生畏。但请记住&#xff0c;每个专家都曾是初学者。自然推理系统本质上是一种形式化的逻…...

sleek开发者指南:基于Electron+React的现代桌面应用架构

sleek开发者指南&#xff1a;基于ElectronReact的现代桌面应用架构 【免费下载链接】sleek todo.txt manager for Linux, Windows and MacOS, free and open-source (FOSS) 项目地址: https://gitcode.com/gh_mirrors/sl/sleek sleek是一款跨平台的todo.txt管理器&#…...

买服装模板机选中捷、川田、杰克还是慧拿?紧凑型流水线升级,空间与适配才是核心决策

在服装智能制造全面普及的今天&#xff0c;线上模板机已经成为服装企业改造紧凑流水线、实现降本增效的核心装备。当前市场上&#xff0c;中捷、川田、杰克、慧拿四大品牌稳居全球服装自动化设备第一梯队&#xff0c;技术实力、产品品质、品牌口碑均处于行业头部水平。面对 “选…...

思源宋体完全指南:免费开源中文字体的终极解决方案

思源宋体完全指南&#xff1a;免费开源中文字体的终极解决方案 【免费下载链接】source-han-serif-ttf Source Han Serif TTF 项目地址: https://gitcode.com/gh_mirrors/so/source-han-serif-ttf 还在为商业项目中的中文字体授权费用而烦恼吗&#xff1f;或者在不同平台…...

用PyTorch复现BCNet息肉分割模型:从论文到代码的保姆级实践指南

用PyTorch复现BCNet息肉分割模型&#xff1a;从论文到代码的保姆级实践指南 医学影像分析领域&#xff0c;息肉分割一直是内窥镜诊断的关键技术。传统方法依赖医生手动标注&#xff0c;效率低下且易受主观因素影响。近年来&#xff0c;深度学习在医学图像分割领域展现出强大潜…...

脉冲神经网络:低功耗AI计算的生物启发革命

1. 脉冲神经网络&#xff1a;生物启发的低功耗计算革命2014年&#xff0c;IBM发布TrueNorth芯片时&#xff0c;其每平方厘米功耗仅20毫瓦的性能震惊了整个AI界。这款基于脉冲神经网络(SNN)的芯片&#xff0c;能耗仅为传统CPU的万分之一&#xff0c;却能够实时处理视频流中的复杂…...

使用Taotoken聚合端点一个月,我的API调用延迟与稳定性观察记录

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 使用Taotoken聚合端点一个月&#xff0c;我的API调用延迟与稳定性观察记录 1. 项目背景与接入动机 我最近的一个个人项目需要持续…...

Visual C++ 运行库一体化解决方案:跨版本兼容性管理实践

Visual C 运行库一体化解决方案&#xff1a;跨版本兼容性管理实践 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist Windows 应用程序依赖的 Visual C 运行库版本碎…...