插件:flutter_vlc_player: ^7.4.3

问题1:设置循环播放_controller.setLooping(true);无用。

解决方法:

//vlcPlayer设置循环播放失效,以这种方式失效循环播放
_setLoopListener() async {if (_videoController!.value.hasError) {esLoadingToast('视频加载失败');} else {if (_videoController!.value.playingState == PlayingState.ended) {_videoController!.stop().then((_) => _videoController!.play());}}
}initState(){
super.initState();
_videoController!.addListener(_setLoopListener);
}

问题2:播放器初始化完成但是元数据还未解析完成,导致无法获取到视频的宽高

_videoController?.addOnInitListener((){if (_videoController!.value.isInitialized) {//已经初始化final size = _videoController!.value.size;//打印出来获取到0print('width= ${size.with}');//打印出来获取到1print('aspectRatio= ${_videoController!.value.aspectRatio}');}
});

解决方法:

_videoController?.addOnInitListener((){_waitForVideoSize();
});//视频虽然初始化完成但是元数据还未解析完成,使用轮询直到获取到宽高
_waitForVideoSize() {if (_videoController!.value.isInitialized) {int _attempt = 0;Timer.periodic(Duration(milliseconds: 300), (timer) {final size = _videoController!.value.size;if (size.width > 0 && size.height > 0) {timer.cancel(); // 停止轮询_totalDuration = _videoController!.value.duration;_videoController!.setVolume(0);_videoController!.setLooping(true);//VlcPlayer对于网络视频有时生效,有时失败double _videoWidth = _videoController!.value.size.width;double _videoHeight = _videoController!.value.size.height;print('_videoWidth= $_videoWidth  _videoHeight= $_videoHeight');print('aspectRatio= ${_videoController!.value.aspectRatio}');_sizeWidth = _videoWidth;_sizeHeight = _videoHeight;double _aspectRatio = _videoHeight / _videoWidth;_logic.videoAspectRatio = _aspectRatio;print('videoAspectRatio===== ${_logic.videoAspectRatio}');_videoController!.play();_isVideoInit = true;setState(() {});}else if(_attempt>= 200){timer.cancel();}});}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/87532.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/87532.shtml
英文地址,请注明出处:http://en.pswp.cn/bicheng/87532.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

React与Vue的主要区别

React和Vue都是当今最流行、最强大的前端Javascript框架,它们都能构建出色的单页面应用。 以下是React和Vue的主要区别: React: React官方自称是一个用于构建用户界面的JavaScript库(尤其是UI组件)。它专注于视图层。…

浏览器原生控件上传PDF导致hash值不同

用户要求对上传的pdf计算hash排重,上线后发现排重失败 1、postman直接调用接口没有发现问题,每次获取的hash值是一样的 2、apifox网页版,调用接口发现问题,清除缓存后(将选择的文件删除重新选择)&#xf…

.net 的依赖注入

依赖注入(Dependency Injection,简称 DI)是一种软件设计模式,旨在将对象之间的依赖关系从代码内部解耦出来,通过外部提供的方式来建立依赖关系,从而提高软件的可维护性、可测试性和可扩展性。以下从概念、工作原理、常见类型、在不同框架中的应用等方面进行详细解释: 概…

【unitrix】 4.17 类型级别右移运算实现解析(shr.rs)

一、源码 这段代码实现了类型级别的右移运算(>>),包括对整数和定点数的支持。 /*类型级别的右移运算实现* 编制人: $ource* 修改版次:0版完成版* 本版次创建时间: 2025年6月27日* 最后修改时间: 2025年7月2日 Sub1修改* 待完善问题&a…

Java 并发核心:AQS(AbstractQueuedSynchronizer) 详解

一、什么是 AQS? AbstractQueuedSynchronizer(简称 AQS)是 Java 并发包 java.util.concurrent.locks 中的一个核心同步框架,用于构建锁和同步器,如: ReentrantLockReentrantReadWriteLockCountDownLatchS…

LoRA 实战指南:NLP 与 CV 场景的高效微调方法全解析

大模型已成 AI 应用的“标配”,但高昂的训练和部署成本让很多企业望而却步。LoRA(Low-Rank Adaptation)作为一种轻量级微调方案,正成为 NLP 与 CV 场景中低成本定制的利器。本文详细通过详细介绍 LoRA 的核心原理、在文本与图像任…

centos指令

一、python 1、查询运行中脚本 ps aux | grep python2、关闭脚本进程 kill -15 <PID> # 优雅终止&#xff08;SIGTERM&#xff09; kill -9 <PID> # 强制终止&#xff08;SIGKILL&#xff09;

用c语言写一个找两张图片不同处的游戏

回答 思考完成 我们计划开发一个用C语言实现的查找两张图片不同之处的游戏。这个程序需要加载两张图片&#xff0c;然后允许用户通过点击等方式标记出差异的位置。我们将使用一个简单的图形库&#xff08;例如SDL&#xff09;来处理图像和用户交互。步骤&#xff1a;1.加载两…

【深度学习:进阶篇】--4.3.seq2seq与Attention机制

学习目标 目标 掌握seq2seq模型特点掌握集束搜索方式掌握BLEU评估方法掌握Attention机制 应用 应用Keras实现seq2seq对日期格式的翻译 目录 学习目标 1.seq2seq 1.1.定义 1.2.条件语言模型理解 1.3.应用场景 2.注意力机制 2.1.长句子问题 2.2.定义 2.3.公式 3.机器…

MYSQL与PostgreSQL的差异

一、架构设计的根本差异 进程模型 vs 线程模型 ​PostgreSQL​&#xff1a;采用多进程架构&#xff08;每个连接独立进程&#xff09;&#xff0c;通过共享内存通信。优势在于进程隔离性强&#xff0c;单连接崩溃不影响整体服务&#xff0c;但资源消耗较高。 ​MySQL​&…

Wpf布局之StackPanel!

文章目录 前言一、引言二、使用步骤 前言 Wpf布局之StackPanel&#xff01; 一、引言 StackPanel面板在水平或垂直的堆栈中放置元素。这个布局容器通常用于更大、更复杂窗口中的一些区域。 二、使用步骤 StackPanel默认是垂直堆叠 <Grid><StackPanel><Butt…

【MySQL】 内置函数

目录 1.时间函数2.字符串函数3.数学函数4.其他函数 1.时间函数 函数名称描述current_date()当前日期current_time()当前时间current_timestamp()当前时间戳date(datetime)返回datetime参数的日期部分date_add(date,interval d_value_type)在date中添加日期/时间&#xff0c;in…

【RK3568+PG2L50H开发板实验例程】Linux部分/FAN 检测案例

本原创文章由深圳市小眼睛科技有限公司创作&#xff0c;版权归本公司所有&#xff0c;如需转载&#xff0c;需授权并注明出处&#xff08;www.meyesemi.com) 1.案例简介 本案例旨在介绍如何测试开发板上风扇接口控制风扇启停与调速功能 2. FAN接口介绍 开发板上 FAN接口是一个…

Spring AI ETL Pipeline使用指南

前言&#xff08;Introduction&#xff09; 版本声明&#xff1a;本文基于 Spring AI 1.0.0 版本编写。由于 Spring AI 目前仍处于活跃开发阶段&#xff0c;API 和组件可能在后续版本中发生变化&#xff0c;请注意及时关注官方文档更新以保持兼容性。 在当今大数据和人工智能快…

Docker 入门教程(九):容器网络与通信机制

文章目录 &#x1f433; Docker 入门教程&#xff08;九&#xff09;&#xff1a;容器网络与通信机制一、Docker 网络模型二、Docker 的四种网络类型三、容器间通信机制四、相关指令 &#x1f433; Docker 入门教程&#xff08;九&#xff09;&#xff1a;容器网络与通信机制 一…

从进攻性安全角度简析 Windows PowerShell

PowerShell 是 Windows 系统中强大的脚本语言和命令行工具&#xff0c;因其灵活性和与 .NET 框架的深度集成&#xff0c;成为攻击者执行恶意操作的热门选择。从进攻性安全视角看&#xff0c;PowerShell 的语言模式、执行策略&#xff08;Execution Policy&#xff09;、AMSI 绕…

MySQL的深度分页如何优化!

MySQL深度分页&#xff08;例如 LIMIT 1000000, 20&#xff09;性能差的主要原因在于 OFFSET 需要扫描并跳过大量数据&#xff0c;即使这些数据最终并不返回。随着 OFFSET 增大&#xff0c;性能会急剧下降。 以下是优化深度分页的常用策略&#xff0c;根据场景选择最适合的方案…

K8s Pod 调度基础——1

目录 一、Replication Controller&ReplicaSet ‌一、Replication Controller (RC)‌ ‌原理‌ ‌特性‌ ‌意义‌ ‌示例与逐行解释‌ ‌二、ReplicaSet (RS)‌ ‌原理‌ ‌特性‌ ‌意义‌ ‌示例与逐行解释‌ ‌三、RC 与 RS 的对比‌ ‌四、总结‌ 二、Dea…

C# Task异步的常用方法

Task异步的常用方法 C# 中的 Task 类是 System.Threading.Tasks 命名空间的一部分&#xff0c;用于表示异步操作。 一、Task.Run(Action action): 此静态方法用于在后台运行一个新任务&#xff0c;并返回与该任务关联的 Task 实例。 本质是将任务放入线程池执行&#xff0c;自…

OpenResty实战之PB级物联网数据处理:时序数据库优化实战

某智慧能源平台通过本方案成功处理了日均1.2万亿数据点&#xff0c;存储成本降低70%&#xff0c;查询延迟从分钟级优化到亚秒级。本文将深入解析PB级物联网数据处理的核心挑战与时序数据库深度优化技巧。 一、物联网数据特性与存储挑战 1.1 物联网数据核心特征 #mermaid-svg-U…