当前位置: 首页 > 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.dtcms.com/a/264531.html

相关文章:

  • 机器学习:集成学习方法之随机森林(Random Forest)
  • AWS RDS Aurora全局数据库转区域数据库实战指南:无缝迁移零停机
  • Windows VMWare Centos Docker部署Springboot 应用实现文件上传返回文件http链接
  • php上传或者压缩图片后图片出现倒转或者反转的问题
  • Hyper-YOLO: When Visual Object Detection Meets Hypergraph Computation
  • 在Ubuntu上多网卡配置HTTP-HTTPS代理服务器
  • c语言中的函数II
  • 今日学习:音视频领域入门文章参考(待完善)
  • 数据结构:数组(Array)
  • 文心快码答用户问|Comate AI IDE专场
  • 文心4.5开源模型部署实践
  • 使用Vue3实现输入emoji 表情包
  • 阿里云AppFlow AI助手打造智能搜索摘要新体验
  • 基于开源链动2+1模式AI智能名片S2B2C商城小程序的场景零售创新研究
  • 【Unity】MiniGame编辑器小游戏(八)三国华容道【HuarongRoad】
  • Active-Prompt:让AI更智能地学习推理的革命性技术
  • BlenderBot对话机器人大模型Facebook开发
  • Spring Framework 中 Java 配置
  • 51单片机外部引脚案例分析
  • 环境土壤物理Hydrus1D2D模型实践技术应用及典型案例分析
  • Docker Desktop导致存储空间不足时的解决方案
  • 【QT】ROS2 Humble联合使用QT教程
  • 【Unity】MiniGame编辑器小游戏(九)打砖块【Breakout】
  • 纹理贴图算法研究论文综述
  • 二、jenkins之idea提交项目到gitlab、jenkins获取项目
  • 将大仓库拆分为多个小仓库
  • 前端请求浏览器提示net::ERR_UNSAFE_PORT的解决方案
  • WPF路由事件:冒泡、隧道与直接全解析
  • 【Harmony】鸿蒙企业应用详解
  • 小型水电站综合自动化系统的介绍