VideoPlayer插件的用法

文章目录

  • 1. 概念介绍
  • 2. 使用方法
    • 2.1 实现步骤
    • 2.2 具体细节
  • 3. 示例代码
  • 4. 内容总结

我们在上一章回中介绍了"如何获取文件类型"相关的内容,本章回中将介绍如何播放视频.闲话休提,让我们一起Talk Flutter吧。

1. 概念介绍

播放视频是我们常用的功能,不过Flutter官方SDK中没有提供这样的API,怎么办呢?官方也想到了这点,因此提供了video_player包供开发人员使用,本章回中将
详细介绍如何通过该包提供的API来播放视频。

在这里插入图片描述

2. 使用方法

2.1 实现步骤

下面是使用video_palyer包播放视频的详细步骤,请大家参考:

  • 在yaml配置文件中添加包,并且获取包到项目中;
  • 创建控制器对象,也就是包中提供的VideoPlayerController类的实例;
  • 使用控制器对象初始化,并且设置声音等视频播放参数;
  • 使用控制器对象创建视频播放器对象,也就是包中提供的VideoPlayer类的实例;
  • 通过控制器对象操作视频,比较播放视频,暂停播放视频等;
  • 视频播放完成后释放控制器相关资源;

2.2 具体细节

在上面介绍的步骤中还有一些细节需要说明,主要是创建控制器对象和创建视频播放器对象这两个步骤:

  • 创建控制器对象需要使用VideoPlayerController的file()或者networkUrl()方法。这两个方法用来把本地存储中的视频文件,或者网络上的视频文件转换成
    控制器对象,方法的参数是本地视频文件的绝对地址或者网络视频文件的链接,此外,播放网络视频时还需要在配置文件中添加网络权限;
  • 创建视频播放器对象时直接使用VideoPlayer类的构造方法就可以,该方法只有一个控制器类型的参数,把控制器对象传递给该方法就可以;
  • 视频播放时有一定宽高比,最好在视频播放器外层嵌套一个AspectRatio组件,这样可以限制视频播放器的宽高比,进而达到良好的播放效果;
    我们先用文本介绍这些细节内容,在后面的小节中将通过示例代码来演示。

3. 示例代码

///创建控制器对象并且进行初始化操作VideoPlayerController? _controller = VideoPlayerController.file(File(file_path));await _controller?.setVolume(0.0);await _controller?.initialize();await _controller?.setLooping(true);///创建视频播放器对象Center(///控制视频的宽高比child: AspectRatio(aspectRatio: controller!.value.aspectRatio,child: VideoPlayer(controller!),),);///通过按钮播放、暂停视频
Container(width: 64,color: Colors.green,child: IconButton(onPressed: () {setState(() {_controller!.value.isPlaying? _controller?.pause(): _controller?.play();});},icon: _controller == null? const Icon(Icons.video_call): (Icon(_controller!.value.isPlaying? Icons.pause: Icons.play_arrow)),),
),///释放控制器相关资源

void dispose() {_controller = null;super.dispose();
}

4. 内容总结

最后,我们对本章回的内容做一个全面总结:

  • 在Flutter开发中需要使用三方包video_player来播放视频;
  • 该包主要通过控制器和视频播放器两个类来播放视频;
  • 控制器用来初始化视频文件,对视频文件进行播放,暂停等操作;
  • 视频播放器主要用来播放视频文件,相当于提供一个播放窗口;
  • 视频播放完成后要释放控制器相关的资源;
    看官们,与"如何播放视频"相关的内容就介绍到这里,欢迎大家在评论区交流与讨论!

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

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

相关文章

Windows11下wsl闪退的解决

wsl闪退 1. 原因分析 解释:WSL(Windows Subsystem for Linux)闪退通常指的是在Windows操作系统中运行的Linux环境突然关闭。这可能是由于多种原因造成的,包括系统资源不足、WSL配置问题、兼容性问题或者是Linux内核的问题。&…

【Python学习-UI界面】PyQt5 小部件13-Slider 拖动条

高级布局管理器,允许通过拖动边界来动态改变子小部件的大小。 Splitter控件提供一个手柄,可以拖动以调整控件的大小 样式如下: 常用方法如下: 序号方法描述1addWidget将小部件添加到拆分器的布局中2indexOf返回布局中小部件的索引3insetW…

MySQL架构与数据库基础

文章目录 一、数据库概念二、数据库的简单概念三、SQL四、MySQL架构 一、数据库概念 数据库是一个以某种由组织的方式存储的数据集合。我们可以把数据库想象称为一个文件柜。此文件柜是一个存放数据的物理位置,不管数据是什么以及如何组织的。数据库本质也需要像文…

EMC学习笔记2——电磁兼容问题分析

分析一个电磁兼容问题一般从三方面入手,分别是骚扰源、敏感源、耦合路径。解决掉其中一个问题,就能解决大部分的电磁兼容问题。 例如:当骚扰源是雷电时,敏感源是电子线路时,我们需要消除的就是耦合电路。 耦合路径就是…

LLM - 微调(Fine-Tuning) Llama3 以及合并微调模型 教程

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/141218047 在微调 Llama3 大模型时,需要注意一些事项: 合适的预训练模型:不同的预训练模型具有不同的特点和适…

Java 操作 Redis和redis持久化

一、Jedis 我们要使用 Java 来操作 Redis&#xff0c;Jedis 是 Redis 官方推荐的 java连接开发工具&#xff01; 使用Java 操作 Redis 中间件&#xff01; 1.导入对应的依赖 https://mvnrepository.com/artifact/redis.clients/jedis <dependency><groupId>redi…

Keycloak中授权的实现-转载

在Keycloak中实现授权&#xff0c;首先需要了解与授权相关的一些概念。授权&#xff0c;简单地说就是某个&#xff08;些&#xff09;用户或者某个&#xff08;些&#xff09;用户组&#xff08;Policy&#xff09;&#xff0c;是否具有对某个资源&#xff08;Resource&#xf…

CAN总线详解-理论知识部分

目录 CAN总线简介 CAN总线硬件电路 CAN电平标准 CAN收发器 ​编辑 CAN物理层特性 CAN总线帧格式 数据帧 数据帧格式 数据帧发展历史 遥控帧 错误帧 过载帧 帧间隔 位填充 波形实例 CAN总线接收方数据采样 接收方数据采样遇到的问题 位时序 硬同步 再同步 波…

Cesium.js:webGIS领域的翘楚,开源全球地理空间数据可视化框架.

说起数据可视化/数字孪生开发&#xff0c;少不了webGIS&#xff0c;聊起webGIS不得不提大名鼎鼎的Cesium.js框架。 CesiumJS是一个用于创建地理空间应用程序的开源JavaScript库。它提供了丰富的地图和地理空间数据的可视化功能&#xff0c;可以用于构建基于地理位置的3D地图、…

nvm介绍、下载、安装、配置及使用

一、背景 在工作中&#xff0c;我们可能同时在进行2个或者多个不同的项目开发&#xff0c;每个项目的需求不同&#xff0c;进而不同项目必须依赖不同版本的NodeJS运行环境&#xff0c;这种情况下&#xff0c;对于维护多个版本的node将会是一件非常麻烦的事情&#xff0c;nvm就…

go语言源码解读之数据结构堆

概述 堆(heap)&#xff0c;是一种计算中常用的数据结构。本文我们将探讨对的特性、实现细节以及实际应用场景。 基本概念 堆是一种特殊的完全二叉树。堆分为大顶堆与小顶堆。 大顶堆的特点是&#xff0c;父节点的值总是大于或等于其子节点的值。 小顶堆的特点是&#xff0c…

DVWA-IDS测试(特殊版本)

起因 浏览DVWA历史更新记录发现有版本带有IDS插件&#xff0c;可以用于平时没有相关设备等场景演示用&#xff0c;所以开启本次测试。 下载 官方最新版本是移除了IDS插件&#xff0c;原因是“从不使用”&#xff0c;所以需要下载移除该插件之前的版本。 https://github.com/…

Excel中使用SUMIF函数对指定区域满足条件的进行求和

1.使用 SUMIF 函数对 范围 中符合指定条件的值求和。 例如&#xff0c;如果某列中含有数字&#xff0c;你只需对大于 5 的数值求和。 可使用以下公式&#xff1a;SUMIF(B2:B25,">5") 2.将条件应用于一个区域并对其他区域中的对应值求和。 例如&#xff0c;公式 S…

时钟缓冲器的相关知识

时钟缓冲器是比较常用的器件&#xff0c;其主要功能作用有时钟信号复制&#xff0c;时钟信号格式转换&#xff0c;时钟信号电平转换等。我们下面简单了解下&#xff1a; 1.时钟信号复制 例如ICS553芯片&#xff0c;其将单路输入时钟信号复制4份进行输出&#xff0c;输出信号具…

debian 常用命令

1、修改环境变量 /etc/profile export PATH/usr/local/bin:$PATHsource /etc/profile ## 生效临时改变export PATH/usr/local/bin:$PATH或者改变当前用户的vim ~/.bashrcsource ~/.bashrc // 生效 2、清除当前登录的历史操作 history -c 3、解压缩 压缩基本的命令格式 …

SD卡电路设计基础

一、定义 SD卡按尺寸分类可分为三类:标准 SD 卡、Mini SD 卡和 Micro SD 卡。其中Mini SD 卡比较少见&#xff0c;标准 SD 卡因为体积较大主要用在数码相机等对体积要求不严格的地方,我们最常用的是 Micro SD 卡&#xff0c;原名Trans-flash Card (TF 卡)。 Micro SD 作用:一…

天书般的Tree工具类

3.1 JAVA中树形对象的定义 在JAVA中树形结构是通过对象嵌套方式来定义的&#xff0c;如MenuVo对象中有一个子对象subMenus&#xff1a; Data public class MenuVo {private Long id;private Long pId;private String name;private Integer rank0;private List<MenuVo> s…

OpenHarmony UI动画-recyclerview_animators

简介 带有添加删除动画效果以及整体动画效果的list组件库 下载安装 ohpm install ohos/recyclerview-animatorsOpenHarmony ohpm 环境配置等更多内容&#xff0c;请参考如何安装OpenHarmony ohpm 包 使用说明 引入组件库 import { RecyclerView } from "ohos/recycler…

【图论】并查集(Union-find Sets)

文章目录 前言一、并查集(Union-find Sets)基本概念基本操作步骤 二、并查集的操作步骤1. 初始化 init2. 查询 find、合并 union&#xff08;未进行路径压缩&#xff09;3. 查询 find、合并 union&#xff08;路径压缩&#xff09; 三、Kruskal 算法中 环 的判断并查集的使用 总…

宝塔面板屏蔽 Censys,防止源站 IP 泄露

Censys 搜索引擎很强大。Censys 每天都会扫描 IPv4 地址空间&#xff0c;以搜索所有联网设备并收集相关的信息&#xff0c;并返回一份有关资源&#xff08;如设备、网站和证书&#xff09;配置和部署信息的总体报告。 在 IP 前加上 https 访问时&#xff0c;Nginx 会自动返回该…