alert()的功能_功能强大的Flutter 视频播放插件
简介
flutter_tencentplayer_plus 是基于腾讯云点播封装的flutter版的播放器插件 提供video_player 相似的api, 是flutter_tencentplayer的优化版本 ,flutter_tencentplayer 开源项目是我和大帅一起合作的一个开源项目,
支持功能
支持直播源
视频跳转
切换视频源
边下边播放
清晰度切换
设置播放速度
效果图
1.Setup
flutter_tencentplayer_plus: ${last_version}
orflutter_tencentplayer_plus: git: url: https://github.com/yxwandroid/flutter_tencentplayer_plus.git
For Android
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" } }}
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 视频播放插件相关推荐
- 跟我一步一步实现 Flutter 视频播放插件 (一)
当团队准备着手做 APP 时,我们把目标对准了 Flutter,尤其近期 Flutter 的使用热度一直不断攀升.由于第一次使用 Flutter,就想通过自己的实践去提升自己的能力. 在做 APP 时 ...
- 收藏功能_微信强大的收藏功能,你们用了吗?
在中国说到即时聊天工具,就得说到微信和QQ了,他们都是腾讯旗下的产品,今天麦叔要和大家聊的是微信,去年官方数据显示微信用户已超过10亿,庞大用户群体在使用它,但它的一些功能并不是每个人都会知道,今天麦 ...
- sap界面功能_功能介面
sap界面功能 目录 1.简介 2.理由 3. Lambda表达式 4.谓词<T> 5. BiPredicate <T,U> 6.函数<T,R> 7. BiFunc ...
- 华为手机8.0.0怎么找到云相册_华为G9怎么找到云相册_失而复得 华为“查找手机”功能有多强大?快来了解一下......
[手机中国新闻]人生有三大幸事:虚惊一尝久别重逢.失而复得.手机作为我们日常生活中不可或缺的重要工具,几乎是每个人每天的必备品.但每天在全世界都有千千万万人,因为种种原因,将他们的手机丢失.由于手机是 ...
- python支持强大的科学计算功能_用 Python 写高效科学计算程序设计
1.科学计算中的突出问题及需求 概括一般科学计算的特点,主要包括四方面: 数值计算种类多 对于某个问题的求解,可能需要不同种类的函数,如三角函数,积分函数,概率统计函数以及某些特殊函数. 需要大量数值 ...
- 如何用耳机翻页_实现强大的翻页跳转功能
我们都知道用 php+mysql 在web 页实现数据库资料全部显示是非常简单而有趣的,数据库资料很少的情况下页面显示还是让人满意的,但是当数据库资料非常多的情况下... 近些年,很多人对于投影仪都有 ...
- 探花交友_第1章_项目介绍以及实现登录功能_第2节_项目介绍
探花交友_第1章_项目介绍以及实现登录功能_第2节_项目介绍 文章目录 探花交友_第1章_项目介绍以及实现登录功能_第2节_项目介绍 2.项目介绍 2.1.项目背景 2.2.市场分析 2.3.目标用户 ...
- wordpress acf字段 不同样式_WordPress强大搜索功能如何实现?安装Ivory Search插件
我们 WordPress 站点大多数的搜索功能都是自带的功能,少部分 WordPress 主题会集成有强大的搜索功能,对于不懂折腾代码的新手站长而言如何让自己的 WordPress 站点拥有强大的搜索 ...
- 功能强大的滚动播放插件JQ-Slide
查看效果:http://keleyi.com/keleyi/phtml/jqplug/4.htm JQ-Slide插件功能强大,滚动方式自由多样 全部滚动方式 方式一 方式二 方式三 方式四 方式五 ...
最新文章
- 观察者模式C#实现实例(一)
- 如何使用 python 减少 kaggle Mushroom Classification 数据集中的特性数量?
- 最近整理关于SQL Server2005性能优化技巧
- ab 轻量的压测工具
- 系统架构设计师 - 信息安全技术
- 在Bootstrap中使用类的按钮类型
- 实验一 软件工程准备
- 持续交付模型中文化转型的重要意义
- Windows搭建Sosoapi
- 电视android怎么连接手机助手下载,投屏助手app下载 投屏助手(手机投屏到电视) for Android v2.0 安卓版 下载-脚本之家...
- C++if语句进行分段函数计算
- y的花式写法_26字母的花式写法可复制 也叫圆体字写法如下一基本规则
- 【Virtual Box 错误】0x00000000 指令引用的 0x00000000 内存。该内存不能为written
- 2015.2.2号工作日志------------------------赵鑫
- 【计算机毕业设计】328学生就业管理系统设计与实现
- 冲突杀手meld -- git使用meld作为对比或合并工具_zhou
- Snipaste操作详细
- 测绘资质在线处理资质问题
- java秋招面试攻略
- 那些著名网站的90年代(转)
热门文章
- jQuery 1.10.0 和 2.0.1 发布
- opencv imread
- VC操作XML编程实例
- 设置socket.Receive()的等待时延
- spring3.x企业应用开发实战 pdf_吃透Spring全家桶:Spring源码+SpringBoot+SpringCloud实战...
- iphone无法连接电脑_电脑开机无线网卡无法自动连接网络怎么办?
- 【MM模块】Contract 采购合同简介
- 香港四大天王影帝情况(截止2016)
- 笔记本电源适配器的选择方法
- 如何用模型分析中国经济?