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
在
iOS
的Info.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 | 当前步骤收到服务器响应耗时 |