Flutter 上传 SDK

最近更新时间:2023-10-31 14:57:51

我的收藏
对于在 Flutter 平台上传视频的场景,云点播提供了 Flutter 上传 SDK 。上传流程请参见 客户端上传指引
SDK 名称
云点播 Flutter 上传 SDK
版本号
V1.0.0
SDK 介绍
为 App 的最终用户提供本地视频上传到云点播平台的场景
开发者
腾讯云计算(北京)有限责任公司
合规使用说明
云点播媒体上传 SDK 合规使用指南
个人信息处理规则
下载 SDK
1. 单击下载 Flutter 上传 SDK 及源码,将下载好的压缩包解压,可以看到 vod_upload 目录。
2. 上传源码在 vod_upload/lib 目录下。

环境准备

Flutter:
Flutter 2.5.0及更高版本。
Dart 2.19.2及更高版本但低于3.0版本。
Android:
Android Studio 3.5及更高版本。
Android 4.1及更高版本。
iOS:
Xcode 11.0及更高版本。
iOS 9.0及更高版本。
请确保您的项目已设置有效的开发者签名。

快速集成

引入依赖

1. 将 SDK 源码复制到项目的目录下。
2. pubspec.yaml中引入SDK
vod_upload_flutter: path: ./vod_upload
3. 项目根目录下运行flutter pub get命令刷新依赖。
注意:
1. 最好在项目根目录SDK目录SDK Example目录下分别运行flutter pub get命令,不然有可能报错。
2. SDK Example目录SDK的测试项目,如无需要可以删除。

添加原生配置

Android

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" />

iOS

iOSInfo.plist中增加如下配置:
<key>NSAppTransportSecurity</key> <dict> <key>NSAllowsArbitraryLoads</key> <true/> </dict>
注意:
如需运行SDK中提供的Demo,还应声明相册使用权限。

使用

1. 引入文件。
import 'package:vod_upload_flutter/txugc_publish.dart';
2. 创建对象。
var uploader = TXUGCPublish( id: "", );
注意:
id可以为任意字符串,只要保证不重复即可,主要目的是将 Flutter 对象与原生层对象进行映射。

相关 API

上传视频

uploader.publishVideo(TXPublishParam( signature: "", videoPath: "", fileName: "", ));

取消上传视频

uploader.cancelUploadVideo();

恢复上传视频

uploader.resumeUploadVideo(TXPublishParam( signature: "", videoPath: "", fileName: "", ));

上传媒体文件

uploader.publishMedia(TXMediaPublishParam( signature: "", mediaPath: "", fileName: "", ));

取消上传媒体文件

uploader.cancelUploadMedia();

恢复上传媒体文件

uploader.resumeUploadMedia(TXMediaPublishParam( signature: "", mediaPath: "", fileName: "", ));

预上传

TXUGCPublish.prepareUpload(signature, callback);
注意:
预上传为静态方法。

获取上传信息

// android端只能在上传过程中获取信息, iOS端全程都可以获取信息 uploader.getStatusInfo();

上报 AppId

uploader.setAppId(appId);

设置视频上传回调

uploader.setVideoListener(listener);

设置媒体上传回调

uploader.setMediaListener(listener);

回调接口及参数解释

视频上传参数

TXPublishParam
字段名
类型
是否必填
解释
默认值
signature
string
签名
null
videoPath
string
视频路径
null
fileName
string
文件名
null
enableResume
boolean
是否启用续点
true
enableHttps
boolean
是否启用 https
false
coverPath
string
封面图
null
enablePreparePublish
boolean
是否启用预上传(关闭后可手动预上传)
true
sliceSize
integer
分片大小。
支持最小为1M,最大10M,默认0。代表上传文件大小除以10。
0
concurrentCount
integer
分片上传并发数量(若 <= 0,则取 SDK 内部默认值2)。
-1

媒体上传参数

TXMediaPublishParam
字段名
类型
是否必填
解释
默认值
signature
string
签名
null
mediaPath
string
视频路径
null
fileName
string
文件名
null
enableResume
boolean
是否启用续点
true
enableHttps
boolean
是否启用 https
false
enablePreparePublish
boolean
是否启用预上传(关闭后可手动预上传)
true
sliceSize
integer
分片大小。
支持最小为1M,最大10M,默认0。代表上传文件大小除以10。
0
concurrentCount
integer
分片上传并发数量(若<=0,则取 SDK 内部默认值2)。
-1

视频上传回调

ITXVideoPublishListener
方法名
参数
解释
onPublishProgress
void
上传进度回调
onPublishComplete
void
上传完成回调

参数解释

onPublishProgress
参数名
类型
解释
uploadBytes
integer
上传的字节数
totalBytes
integer
总计字节数
onPublishComplete
参数名
类型
解释
result
TXPublishResult
上传结果
TXPublishResult
字段名
类型
解释
retCode
integer
错误码
descMsg
string
错误描述信息
videoId
string
视频文件 Id
videoURL
string
视频播放地址
coverURL
string
封面存储地址

媒体文件上传回调

ITXMediaPublishListener
方法名
参数
解释
onMediaPublishProgress
void
上传进度回调
onMediaPublishComplete
void
上传完成回调
参数解释:
onMediaPublishProgress
参数名
类型
解释
uploadBytes
integer
上传的字节数
totalBytes
integer
总计字节数
onMediaPublishComplete
参数名
类型
解释
result
TXPublishResult
上传结果
TXMediaPublishResult
字段名
类型
解释
retCode
integer
错误码
descMsg
string
错误描述信息
mediaId
string
视频文件 Id
mediaURL
string
视频播放地址

预上传回调

IPrepareUploadCallback
方法名
返回值
解释
onLoading
void
开始预上传回调
onFinish
void
预上传完成回调

上传状态信息

ReportInfo
字段名
类型
解释
reqType
string
请求类型,标识是在哪个步骤。
errCode
string
错误码
cosErrCode
string
COS 上传错误码
errMsg
string
错误信息
reqTime
string
当前步骤的开始时间
reqTimeCost
string
当前步骤的耗时
fileSize
string
文件大小
fileType
string
文件类型
fileName
string
文件名
fileId
string
文件 Id
appId
string
使用 TXUGCPublish 设置进来的点播 appId
reqServerIp
string
当前正在进行步骤所访问的 ip
reportId
string
客户自定义上报 id,可通过 TXUGCPublish 构造方法传入。
reqKey
string
请求键值,一般由文件最后修改时间和本次上传开始时间组成。
vodSessionKey
string
点播服务器会话键值,从申请上传接口获得。
cosRegion
string
当前上传所访问的区域
requestId
string
当前 COS 上传的请求 id
cosVideoPath
string
当前 COS 视频上传的路径
vodErrCode
integer
信令请求错误码
useHttpDNS
integer
是否使用 httpDns 进行域名解析
useCosAcc
integer
是否开启了 COS 域名加速
tcpConnTimeCost
integer
当前步骤连接服务器耗时
recvRespTimeCost
integer
当前步骤收到服务器响应耗时