| SDK 名称 | 云点播 Flutter 上传 SDK |
| 版本号 | V1.5.2 |
| SDK 介绍 | 为 App 的最终用户提供本地视频上传到云点播平台的场景 |
| 开发者 | 腾讯云计算(北京)有限责任公司 |
| 合规使用说明 | 云点播媒体上传 SDK 合规使用指南 |
| 个人信息处理规则 | 云点播媒体上传 SDK 隐私保护协议 |
| 下载 SDK | 1. 单击下载 Flutter 上传 SDK 及源码,将下载好的压缩包解压,可以看到 vod_upload 目录。2. 上传源码在 vod_upload/lib 目录下。 |
一、环境准备
·Flutter:
·Flutter 3.0.0及更高版本。
·Dart 2.19.2及更高版本但低于4.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 对象与原生层对象进行映射。
九、上传视频
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);
21、视频上传参数
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 |
22、媒体上传参数
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 |
23、视频上传回调
ITXVideoPublishListener
| 方法名 | 参数 | 解释 |
| onPublishProgress | void | 上传进度回调 |
| onPublishComplete | void | 上传完成回调 |
24、参数解释
onPublishProgress
| 参数名 | 类型 | 解释 |
| uploadBytes | integer | 上传的字节数 |
| totalBytes | integer | 总计字节数 |
onPublishComplete
| 参数名 | 类型 | 解释 |
| result | TXPublishResult | 上传结果 |
TXPublishResult
| 字段名 | 类型 | 解释 |
| retCode | integer | 错误码 |
| descMsg | string | 错误描述信息 |
| videoId | string | 视频文件 Id |
| videoURL | string | 视频播放地址 |
| coverURL | string | 封面存储地址 |
25、媒体文件上传回调
ITXMediaPublishListener
| 方法名 | 参数 | 解释 |
| onMediaPublishProgress | void | 上传进度回调 |
| onMediaPublishComplete | void | 上传完成回调 |
参数解释:
onMediaPublishProgress
| 参数名 | 类型 | 解释 |
| uploadBytes | integer | 上传的字节数 |
| totalBytes | integer | 总计字节数 |
onMediaPublishComplete
| 参数名 | 类型 | 解释 |
| result | TXPublishResult | 上传结果 |
TXMediaPublishResult
| 字段名 | 类型 | 解释 |
| retCode | integer | 错误码 |
| descMsg | string | 错误描述信息 |
| mediaId | string | 视频文件 Id |
| mediaURL | string | 视频播放地址 |
26、预上传回调
IPrepareUploadCallback
| 方法名 | 返回值 | 解释 |
| onLoading | void | 开始预上传回调 |
| onFinish | void | 预上传完成回调 |
27、上传状态信息
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 | 当前步骤收到服务器响应耗时。 |