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

flutter flutter_vlc_player播放视频设置循环播放失效、初始化后获取不到视频宽高

插件: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.lryc.cn/news/578813.html

相关文章:

  • PyQt5-高级控件-容器StackedWidget
  • 学习笔记(29):训练集与测试集划分详解:train_test_split 函数深度解析
  • Servlet开发流程(包含IntelliJ IDEA项目添加Tomcat依赖的详细教程)
  • 玄机——某学校系统中挖矿病毒应急排查
  • 打造Docker Swarm集群服务编排部署指南:从入门到精通
  • 【公司环境下发布个人NPM包完整教程】
  • 网络协议概念与应用层
  • 解释LLM怎么预测下一个词语的
  • 图像二值化方法及 Python OpenCV 实现
  • 使用v-bind指令绑定属性
  • 【第三章:神经网络原理详解与Pytorch入门】01.神经网络算法理论详解与实践-(1)神经网络预备知识(线性代数、微积分、概率等)
  • 新能源汽车功率级测试自动化方案:从理论到实践的深度解析
  • 如何将文件从 iPhone 传输到 Android(新指南)
  • 网安-XSS-pikachu
  • MUX-VLAN基本概述
  • 【格与代数系统】格与哈斯图
  • 【分明集合】特征函数、关系与运算
  • 【HarmonyOS】鸿蒙使用仓颉编程入门
  • 【1.6 漫画数据库设计实战 - 从零开始设计高性能数据库】
  • UniApp完全支持快应用QUICKAPP-以及如何采用 Uni 模式开发发行快应用优雅草卓伊凡
  • 飞算智造JavaAI:智能编程革命——AI重构Java开发新范式
  • uniapp内置蓝牙打印
  • WPF中Style和Template异同
  • LEFE-Net:一种轴承故障诊断的轻量化高效特征提取网络
  • 设计模式(七)
  • 08跨域
  • 【环境配置】Neo4j Community Windows 安装教程
  • 7.可视化的docker界面——portainer
  • docker拉取镜像报错:Get https://registry-1.docker.io/v2/: net/http: request canceled
  • 基于SpringBoot + HTML 的网上书店系统