腾讯云云点播Flutter 上传 SDK_音视频解决方案_同尘科技
对于在 Flutter 平台上传视频的场景,云点播提供了 Flutter 上传 SDK 。上传流程请参见 客户端上传指引。
SDK 名称 | 云点播 Flutter 上传 SDK |
版本号 | V1.0.0 |
SDK 介绍 | 为 App 的最终用户提供本地视频上传到云点播平台的场景 |
开发者 | 腾讯云计算(北京)有限责任公司 |
合规使用说明 | 云点播媒体上传 SDK 合规使用指南 |
个人信息处理规则 | 云点播媒体上传 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
中增加如下配置:
iOS
在iOS
的Info.plist
中增加如下配置:
NSAppTransportSecurity NSAllowsArbitraryLoads
注意:如需运行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 | 当前步骤收到服务器响应耗时 |
对音视频的解决方案有疑惑?想了解解决方案收费? 联系解决方案专家
腾讯云限时活动1折起,即将结束: 马上收藏
同尘科技为腾讯云授权服务中心,购买腾讯云享受折上折,更有现金返利:同意关联,立享优惠
阿里云解决方案也看看?: 点击对比阿里云的解决方案
暂无评论,你要说点什么吗?