返回顶部
首页 > 资讯 > 移动开发 >flutter系列之:在flutter中使用媒体播放器
  • 569
分享到

flutter系列之:在flutter中使用媒体播放器

flutterandroidios程序那些事架构 2023-09-16 14:09:09 569人浏览 泡泡鱼
摘要

文章目录 简介使用前的准备工作在flutter中使用video_player总结 简介 现在的app功能越来越强大,除了基本的图文之外,还需要各种各样的其他的功能,比如视频,和直播。 直播

文章目录

简介

现在的app功能越来越强大,除了基本的图文之外,还需要各种各样的其他的功能,比如视频,和直播。

直播可能会比较复杂,因为涉及到了拉流和推流,需要服务器端的支持,但是视频播放就比较简单了,那么如何在Flutter中使用媒体播放器呢?

一起来看看吧。

使用前的准备工作

flutter本身是不支持媒体播放功能的,为了实现这个功能,我们需要使用额外的第三方插件叫做video_player。

首先我们需要向flutter应用中添加video_player。添加起来也非常简单,只需要执行下面的命令即可:

flutter pub add video_player 

该命令会向pubspec.xml中添加如下的内容:

dependencies:  flutter:    sdk: flutter  video_player: ^2.4.7

添加好依赖包之后,我们还需要为应用添加相应的权限,你确保能够使用影音播放的权限。

如果是在Android中,需要向AndroidManifest.xml文件中添加类似下面的内容:

            

iOS中则需要在Info.plist中添加下面的内容:

NSAppTransportSecurity  NSAllowsArbitraryLoads  

在flutter中使用video_player

video_player中和video播放相关的类叫做VideoPlayerController,在ioS中底层使用的是AVPlayer,在Android中底层使用的是ExoPlayer。

VideoPlayerController有好几种构造方法,我们一起来看看。

  VideoPlayerController.asset

asset方法表示video是从应用程序的asset中获取的。

 VideoPlayerController.network

network方法表示video是从网络中获取的。

  VideoPlayerController.file

file方法表示video是通过’file://${file.path}’ 这样的格式来获取的。

还有一个只用在andorid中的方法,表示从contentUri中加载video:

  VideoPlayerController.contentUri

为了简单起见,这里我们选择网易上面的一个科教视频,作为要播放的video。

那么我们可以通过 VideoPlayerController.network方法来构建这个controller:

    videoPlayerController = VideoPlayerController.network(      'https://flv.bn.netease.com/1c04bfd72901f0661b486465e09cfdc01754c20db0686786f4e20a5f7d271ba0de6c1177a0da1c4c2d7c367e20ee16d4a90ac7ff4ea664820ba1b401f3e53f135f72cdff855e78ca5fb7849fb6ff7ccb9de1613ad3bfc59db83493b5f18a0a27f15048df6585361cd67c3b37551e10981c40dcdfdb77b7e6.mp4',    );

在使用video之前,还需要进行初始操作,初始化是调用它的initialize方法,这个方法的作用是打开给定的数据源,并加载它的元数据。

因为initialize方法是一个耗时的操作,所以这个方法返回类型是Future:

  Future initialize() async {

我们可以这样使用:

late Future playerFuture;playerFuture = videoPlayerController.initialize();

有了播放器的Future,我们可以配合flutter中的FutureBuilder一起使用:

body: FutureBuilder(        future: playerFuture,        builder: (context, snapshot) {          if (snapshot.connectionState == ConnectionState.done) {            return AspectRatio(              aspectRatio: videoPlayerController.value.aspectRatio,              child: VideoPlayer(videoPlayerController),            );          } else {            return const Center(              child: CircularProgressIndicator(),            );          }        },      ),

在FutureBuilder中,我们通过判断connectionState来判断视频是否加载完毕,如果没有加载完毕,则使用CircularProgressIndicator表示正在加载中。

如果加载完毕之后,就直接展示VideoPlayer组件即可。

因为不同的video有不同的纵横比,为了在flutter界面上完美的展示加载的video,我们将VideoPlayer封装在一个AspectRatio组件中。

最后我们还要添加一个控制装置,用来控制video的暂停和播放:

floatingActionButton: FloatingActionButton(        onPressed: () {          setState(() {            if (videoPlayerController.value.isPlaying) {              videoPlayerController.pause();            } else {              videoPlayerController.play();            }          });        },        child: Icon(          videoPlayerController.value.isPlaying ? Icons.pause : Icons.play_arrow,        ),      )

这里通过videoPlayerController.value.isPlaying来判断视频是否在播放状态,同时在onPressed方法中调用了setState来调用videoPlayerController.pause或者videoPlayerController.play方法。

总结

这样一个可以播放外部视频的app就做好了,运行之后它的界面是这样的:

大家可以在这个播放器的基础上进行扩张,一个属于你自己的视频APP就完成了。

本文的例子:https://github.com/ddean2009/learn-flutter.git

来源地址:https://blog.csdn.net/superfjj/article/details/129818918

--结束END--

本文标题: flutter系列之:在flutter中使用媒体播放器

本文链接: https://lsjlt.com/news/409947.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • flutter系列之:在flutter中使用媒体播放器
    文章目录 简介使用前的准备工作在flutter中使用video_player总结 简介 现在的app功能越来越强大,除了基本的图文之外,还需要各种各样的其他的功能,比如视频,和直播。 直播...
    99+
    2023-09-16
    flutter android ios 程序那些事 架构
  • 怎么在Flutter中使用媒体播放器
    今天小编给大家分享一下怎么在Flutter中使用媒体播放器的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。使用前的准备工作fl...
    99+
    2023-07-05
  • Flutter怎么使用Android原生播放器
    这篇文章主要介绍“Flutter怎么使用Android原生播放器”,在日常操作中,相信很多人在Flutter怎么使用Android原生播放器问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Flutter怎么使用...
    99+
    2023-07-05
  • Flutter使用Android原生播放器详解
    接上篇:播放器-IOS(Swift)篇 安卓端原生播放器的接入思路与ios基本一致,所以本篇就不废话了,直接上代码: 创建插件VideoViewPlugin实现FlutterPlug...
    99+
    2023-02-28
    Flutter播放器 Android Flutter播放器 Flutter原生播放器
  • Flutter中视频播放器插件如何使用
    这篇文章主要讲解了“Flutter中视频播放器插件如何使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Flutter中视频播放器插件如何使用”吧!创建一个新的视频播放器在使用视频播放器插件...
    99+
    2023-06-29
  • 详解Flutter中视频播放器插件的使用教程
    目录创建一个新的视频播放器添加播放和暂停按钮创建一个快进添加一个视频进度指示器应用视频的字幕结论您已经看到很多包含视频内容的应用程序,比如带有视频教程的食谱应用程序、电影应用程序和体...
    99+
    2024-04-02
  • Flutter中GetX系列六--GetxController/GetView使用详情
    1.GetxController介绍 在实际的项目开发过程中,我们不可能把UI代码、业务逻辑都放在一起处理,这样对项目的架构、代码的可读性、后期的维护将会是致命的,好在GetX为我们提供了GetxController,GetxControl...
    99+
    2023-10-01
    flutter GetxController 数据更新 事件监听 改变唯一的值 GetView使用详情
  • 利用MAC中的QuickTime视频播放器来播放各种媒体视频
      QuickTime 是MAC中的视频播放器,但是很多新手用户并不清楚QuickTime 的使用技巧,或者是仅仅知道一部分。不过别担心,现在小编就为大家讲解一下如何利用 QuickTime 播放程式来播放各种媒体档案。...
    99+
    2023-06-10
    MAC QuickTime 媒体视频 播放器 媒体 视频
  • 使用Python怎么实现一个流媒体播放器
    今天就跟大家聊聊有关使用Python怎么实现一个流媒体播放器,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。python有哪些常用库python常用的库:1.requesuts;2.s...
    99+
    2023-06-14
  • 使用android如何制作一个多媒体音乐播放器
    使用android如何制作一个多媒体音乐播放器?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。首先,在AndroidManifest.xml中配置权限 <!-- ...
    99+
    2023-05-31
    android roi
  • Android 使用Vitamio打造自己的万能播放器(6)——在线播放(播放列表)
    前言   新版本的VPlayer由设计转入开发阶段,预计开发周期为一个月,这也意味着新版本的Vitamio将随之发布,开发者们可以和本系列文章一样,先开发其他功能。本章内容为"...
    99+
    2022-06-06
    万能 vitamio 列表 Android
  • 如何在ArchLinux中安装和使用多媒体编解码器以支持音视频播放
    在ArchLinux中安装多媒体编解码器以支持音视频播放可以通过安装一些常见的多媒体库和软件包来实现。以下是一个简单的步骤指南: ...
    99+
    2024-04-02
  • Android开发中利用VideoView实现一个多媒体视频播放器
    本篇文章给大家分享的是有关Android开发中利用VideoView实现一个多媒体视频播放器,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1)、SurfaceView在布局文件...
    99+
    2023-05-31
    android videoview roi
  • Ubuntu系统中怎么使用SMPlayer播放器
    这篇文章主要讲解了“Ubuntu系统中怎么使用SMPlayer播放器”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Ubuntu系统中怎么使用SMPlayer播放器”吧!Ubuntu 也是一款...
    99+
    2023-06-13
  • 怎么在Android中使用GSYVideoPlayer播放视频器
    怎么在Android中使用GSYVideoPlayer播放视频器?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。GSYVideoPlayerGSYVideoPla...
    99+
    2023-06-14
  • 怎么在CentOS中使用yum方式安装VLC播放器
    这篇文章将为大家详细讲解有关怎么在CentOS中使用yum方式安装VLC播放器,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Linux环境:CentOS 6.5以下安装命令使用root用户权...
    99+
    2023-06-10
  • 怎么在c#中使用winform制作一个音乐播放器
    这篇文章将为大家详细讲解有关怎么在c#中使用winform制作一个音乐播放器,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。AxWindowsMediaPlayer的方法1 首先新建一个页面 ...
    99+
    2023-06-14
  • 在Java项目中使用 swing制作一个音乐播放器
    这期内容当中小编将会给大家带来有关在Java项目中使用 swing制作一个音乐播放器,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。实现代码: package com.baiting;import...
    99+
    2023-05-31
    java swing
  • 如何在vue中使用video实现一个播放器功能
    这期内容当中小编将会给大家带来有关如何在vue中使用video实现一个播放器功能,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。当现有video播放器不能满足需求时,需要自己对video进行封装。video...
    99+
    2023-06-06
  • win8系统使用IE浏览器播放在线视频提示没有安装flash插件
      Win8系统用户使用IE浏览器播放在线视频出现:“您还没有安装flash播放器,请点击这里安装”   解决方案:   1. 进入IE浏览器打开管理加载项,观察flash的加载项...
    99+
    2022-06-04
    没有安装 在线视频 插件
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作