简介

flutter_tencentplayer_plus 是基于腾讯云点播封装的flutter版的播放器插件 提供video_player 相似的api, 是flutter_tencentplayer的优化版本 ,flutter_tencentplayer 开源项目是我和大帅一起合作的一个开源项目,

支持功能

  1. 支持直播源

  2. 视频跳转

  3. 切换视频源

  4. 边下边播放

  5. 清晰度切换

  6. 设置播放速度

效果图

1.Setup

flutter_tencentplayer_plus: ${last_version}

orflutter_tencentplayer_plus:    git:      url: https://github.com/yxwandroid/flutter_tencentplayer_plus.git

For Android

  1. project/android/build.gradle 添加依赖的aar:

def flutterProjectRoot = rootProject.projectDir.parentFile.toPath()def plugins = new Properties()def pluginsFile = new File(flutterProjectRoot.toFile(), '.flutter-plugins')if (pluginsFile.exists()) {    pluginsFile.withReader('UTF-8') { reader -> plugins.load(reader) }}

allprojects {repositories {        google()        jcenter()flatDir {            dirs "${plugins.get("flutter_tencentplayer")}android/libs"        }    }}
  1. AndroidManifest.xml 声明权限:

    <uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /><uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /><uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

For Ios

//项目的info.plist文件上添加如下权限<key>NSAppTransportSecuritykey><dict><key>NSAllowsArbitraryLoadskey><true/>dict>

2.Usage(TencentPlayer)

1.初始化播放器

提供 asset、network、filePath、fileId四种方式播放

TencentPlayerController _controller;

_MyAppState() {    listener = () {if (!mounted) {return;      }      setState(() {});    };}

initState() {    _controller = TencentPlayerController.network('http://file.jinxianyun.com/testhaha.mp4', playerConfig: PlayerConfig())//_controller = TencentPlayerController.asset('static/tencent1.mp4')//_controller = TencentPlayerController.file('/storage/emulated/0/test.mp4')//_controller = TencentPlayerController.network(null, playerConfig: {auth: {"appId": 1252463788, "fileId": '4564972819220421305'}})    ..initialize().then((_) {        setState(() {});      });    _controller.addListener(listener);}

2.PlayerConfig (播放器配置参数 )

_controller = TencentPlayerController.network(url, playerConfig: PlayerConfig())

Prop Type Default Note
autoPlay bool true 是否自动播放
loop bool false 是否循环播放
headers Map 请求头
cachePath String 缓存路径(边播放边下载)
progressInterval int 200 播放进度回调频率(毫秒)
startTime int 0 哪里开始播放(秒)
auth Map 云点播视频源appId&fileId

3.TencentPlayerValue (播放器回调)

Text("总时长:" + _controller.value.duration.toString())
Prop Type Note
initialized bool 是否初始化完成从而显示播放器
aspectRatio double 用来控制播放器宽高比
duration Duration 时长
position Duration 播放进度
playable Duration 缓冲进度
isPlaying bool 是否在播放
size Size 视频宽高
isLoading bool 是否在加载
netSpeed int 视频播放网速
rate double 播放速度
bitrateIndex int 视频清晰度

4.Event (播放器事件)

a.跳转进度

_controller.seekTo(Duration(seconds: 5));

b.设置播放速度

_controller.setRate(1.5); // 1.0 ~ 2.0

c.切换播放源

controller?.removeListener(listener);controller?.pause();controller = TencentPlayerController.network(url, playerConfig: PlayerConfig(startTime: startTime ?? controller.value.position.inSeconds));controller?.initialize().then((_) {if (mounted) setState(() {});});controller?.addListener(listener);

d.切换清晰度(实质就是切换播放源)

3.Usage(Download)

离线下载, 支持断点续传(这里只支持m3u8视频、fileId), 支持多文件同时下载

1.初始化下载器

DownloadController _downloadController;

_MyAppState() {    downloadListener = () {if (!mounted) {return;      }      setState(() {});    };}

initState() {    _downloadController = DownloadController('/storage/emulated/0/tencentdownload', appId: 1252463788);    _downloadController.addListener(downloadListener);}

2.Event (下载事件)

a. 下载

_downloadController.dowload("4564972819220421305", quanlity: 2);// _downloadController.dowload("http://1253131631.vod2.myqcloud.com/26f327f9vodgzp1253131631/f4bdff799031868222924043041/playlist.m3u8");

b. 暂停下载

_downloadController.pauseDownload("4564972819220421305");// _downloadController.stopDownload("http://1253131631.vod2.myqcloud.com/26f327f9vodgzp1253131631/f4bdff799031868222924043041/playlist.m3u8");

b. 取消下载

_downloadController.cancelDownload("4564972819220421305");// _downloadController.cancelDownload("http://1253131631.vod2.myqcloud.com/26f327f9vodgzp1253131631/f4bdff799031868222924043041/playlist.m3u8");

3.DownloadValue (下载信息回调)

因为支持多文件同时下载,回调以Map返回,key为url/fileId

Prop Type Note
downloadStatus String "start"、"progress"、"stop"、"complete"、"error"
quanlity int 1: "FLU"、2: "SD"、3: "HD"、4: "FHD"、5: "2K"、6: "4K"
duration int
size int 文件大小
downloadSize int 已下载大小
progress int 已下载大小
playPath String 下载文件的绝对路径
isStop bool 是否暂停下载
url String 下载的视频链接
fileId String 下载的视频FileId
error String 下载的错误信息

4.Example

5.更新内容

 1,升级android,IOS  LiteAVSDK 6.8.7969

6.参考

腾讯云点播android本:

https://github.com/tencentyun/SuperPlayer_Android/wiki

腾讯云点播ios版本:

https://github.com/tencentyun/SuperPlayer_iOS

flutter_tencentplayer :

https://github.com/qq326646683/flutter_tencentplayer

alert()的功能_功能强大的Flutter 视频播放插件相关推荐

  1. 跟我一步一步实现 Flutter 视频播放插件 (一)

    当团队准备着手做 APP 时,我们把目标对准了 Flutter,尤其近期 Flutter 的使用热度一直不断攀升.由于第一次使用 Flutter,就想通过自己的实践去提升自己的能力. 在做 APP 时 ...

  2. 收藏功能_微信强大的收藏功能,你们用了吗?

    在中国说到即时聊天工具,就得说到微信和QQ了,他们都是腾讯旗下的产品,今天麦叔要和大家聊的是微信,去年官方数据显示微信用户已超过10亿,庞大用户群体在使用它,但它的一些功能并不是每个人都会知道,今天麦 ...

  3. sap界面功能_功能介面

    sap界面功能 目录 1.简介 2.理由 3. Lambda表达式 4.谓词<T> 5. BiPredicate <T,U> 6.函数<T,R> 7. BiFunc ...

  4. 华为手机8.0.0怎么找到云相册_华为G9怎么找到云相册_失而复得 华为“查找手机”功能有多强大?快来了解一下......

    [手机中国新闻]人生有三大幸事:虚惊一尝久别重逢.失而复得.手机作为我们日常生活中不可或缺的重要工具,几乎是每个人每天的必备品.但每天在全世界都有千千万万人,因为种种原因,将他们的手机丢失.由于手机是 ...

  5. python支持强大的科学计算功能_用 Python 写高效科学计算程序设计

    1.科学计算中的突出问题及需求 概括一般科学计算的特点,主要包括四方面: 数值计算种类多 对于某个问题的求解,可能需要不同种类的函数,如三角函数,积分函数,概率统计函数以及某些特殊函数. 需要大量数值 ...

  6. 如何用耳机翻页_实现强大的翻页跳转功能

    我们都知道用 php+mysql 在web 页实现数据库资料全部显示是非常简单而有趣的,数据库资料很少的情况下页面显示还是让人满意的,但是当数据库资料非常多的情况下... 近些年,很多人对于投影仪都有 ...

  7. 探花交友_第1章_项目介绍以及实现登录功能_第2节_项目介绍

    探花交友_第1章_项目介绍以及实现登录功能_第2节_项目介绍 文章目录 探花交友_第1章_项目介绍以及实现登录功能_第2节_项目介绍 2.项目介绍 2.1.项目背景 2.2.市场分析 2.3.目标用户 ...

  8. wordpress acf字段 不同样式_WordPress强大搜索功能如何实现?安装Ivory Search插件

    我们 WordPress 站点大多数的搜索功能都是自带的功能,少部分 WordPress 主题会集成有强大的搜索功能,对于不懂折腾代码的新手站长而言如何让自己的 WordPress 站点拥有强大的搜索 ...

  9. 功能强大的滚动播放插件JQ-Slide

    查看效果:http://keleyi.com/keleyi/phtml/jqplug/4.htm JQ-Slide插件功能强大,滚动方式自由多样 全部滚动方式 方式一 方式二 方式三 方式四 方式五  ...

最新文章

  1. 观察者模式C#实现实例(一)
  2. 如何使用 python 减少 kaggle Mushroom Classification 数据集中的特性数量?
  3. 最近整理关于SQL Server2005性能优化技巧
  4. ab 轻量的压测工具
  5. 系统架构设计师 - 信息安全技术
  6. 在Bootstrap中使用类的按钮类型
  7. 实验一 软件工程准备
  8. 持续交付模型中文化转型的重要意义
  9. Windows搭建Sosoapi
  10. 电视android怎么连接手机助手下载,投屏助手app下载 投屏助手(手机投屏到电视) for Android v2.0 安卓版 下载-脚本之家...
  11. C++if语句进行分段函数计算
  12. y的花式写法_26字母的花式写法可复制 也叫圆体字写法如下一基本规则
  13. 【Virtual Box 错误】0x00000000 指令引用的 0x00000000 内存。该内存不能为written
  14. 2015.2.2号工作日志------------------------赵鑫
  15. 【计算机毕业设计】328学生就业管理系统设计与实现
  16. 冲突杀手meld -- git使用meld作为对比或合并工具_zhou
  17. Snipaste操作详细
  18. 测绘资质在线处理资质问题
  19. java秋招面试攻略
  20. 那些著名网站的90年代(转)

热门文章

  1. jQuery 1.10.0 和 2.0.1 发布
  2. opencv imread
  3. VC操作XML编程实例
  4. 设置socket.Receive()的等待时延
  5. spring3.x企业应用开发实战 pdf_吃透Spring全家桶:Spring源码+SpringBoot+SpringCloud实战...
  6. iphone无法连接电脑_电脑开机无线网卡无法自动连接网络怎么办?
  7. 【MM模块】Contract 采购合同简介
  8. 香港四大天王影帝情况(截止2016)
  9. 笔记本电源适配器的选择方法
  10. 如何用模型分析中国经济?