第二百八十七回

2024-01-26 03:28
文章标签 八十七 第二百

本文主要是介绍第二百八十七回,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 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.chinasem.cn/article/645500

相关文章

第二百零九节 Java格式 - Java数字格式类

Java格式 - Java数字格式类 以下两个类可用于格式化和解析数字: java.text.NumberFormatjava.text.DecimalFormat NumberFormat 类可以格式化一个数字特定地区的预定义格式。 DecimalFormat 类可以格式化数字以特定区域设置的自定义格式。 NumberFormat类的 getXXXInstance()方法返回格式化

第二百零四节 Java正则表达式教程 - Java正则表达式量词

Java正则表达式教程 - Java正则表达式量词 我们可以指定正则表达式中的字符的次数可以匹配字符序列。 为了使用正则表达式表达一个数字或更多的模式,我们可以使用量词。 下表列出了量词及其含义。 量词含义*零次或更多次+一次或多次?一次或根本不{m}正好m次{m,}至少m次{m,n}至少m,但不超过n次 量词必须遵循字符或字符类。 例子 import java.util.reg

C语言试题八十七之实现选择排序算法

📃个人主页:个人主页 🔥系列专栏:C语言试题200例目录 💬推荐一款刷算法、笔试、面经、拿大公司offer神器 👉 点击跳转进入网站 ✅作者简介:大家好,我是码莎拉蒂,CSDN博客专家(全站排名Top 50),阿里云博客专家、51CTO博客专家、华为云享专家 1、题目        C语言选择排序算法 2 、温馨提示       C语言试题汇总里可用

Ubuntu18.04忘记密码解决(八十七)

一、 1、重启电脑,立即重复按" ESC"键, 2、看到会出现"> grub"字样 输入:exit,然后立即按一下" ESC" 3、选择:Ubuntu高级选项,按回车键进入 4、选择一个带" recovery mode"字样选项 然后按:" e"键 然后替换:recovery nomodeset 为:quiet splash rw init=/bin/bash 5、按F10保存并且

SpringBoot 系列教程(八十七):Spring Boot全局统一异常拦截处理

一、前言 在早几年项目开发过程中,对于异常处理太过于复杂和杂乱,项目代码中大量的try catch使用,通过try catch捕捉然后对异常处理,如果处理不了的则往上一层抛,由上一层接管异常的处理,其实不管是SpringBoot框架还是Spring+SpringMVC+Mybatis框架,都可以使用@ControllerAdvice和 @ExceptionHandler 对项目做一个全局的异常拦

C语言之strcspn用法实例(八十七)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒体系统工程师系列【原创干货持续更新中……】🚀 人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药. 更多原创,欢迎关注:Android系统攻城狮 1

一起Talk Android吧(第二百三十七回:Android中的Intent)

各位看官们大家好,上一回中咱们说的是Android中四大组件的例子,这一回咱们说的例子是Intent。闲话休提,言归正转。让我们一起Talk Android吧! 看官们,我们在本章回中将介绍Intent,它也是常用的知识,四大组件中有三大组件都使用它,比如打开Activity,绑定服务,发送广播。我们在代码中都看到过Intent的身影。 Intent可以显式和隐式两种; 显式Intent中包含

一起Talk Android吧(第二百三十六回:Android中的四大组件概述)

各位看官们大家好,上一回中咱们说的是Android中数据存储大结局的例子,这一回咱们说的例子是四大组件。闲话休提,言归正转。让我们一起Talk Android吧! 看官们,我们在这一回中介绍一下Android中的四大组件,它们是 ActivityServiceBroadcastContentProvider。 其实这些内容我们都介绍过,接下来我们一起回顾一下这些知识. Activity是程

一起Talk Android吧(第二百三十四回:Android中的数据存储之ContentProvider二)

各位看官们大家好,上一回中咱们说的是Android中数据存储之ContentProvider的例子,这一回咱们继续说该例子。闲话休提,言归正转。让我们一起Talk Android吧! 看官们,我们在上一回中介绍了如何通过ContentProvider读取联系人模块中的数据,下面是完整的代码,请大家参考: package com.example.talk8.blogappall;import a

一起Talk Android吧(第二百三十二回:Android中的数据存储之ContentProvider概述)

各位看官们大家好,上一回中咱们说的是Android中数据存储之数据库的例子,这一回咱们说的例子是ContentProvider。闲话休提,言归正转。让我们一起Talk Android吧! 看官们,contentProvider也叫内容提供器,它主要用来在应用程序之间共享数据,因此,我们把它当作一种数据存储方式。它通常有两种使用场景: 使用它访问其它应用中的数据;定义它并且提供接口让其它程序来访