txCameraRecord
来自于:开发者立即使用
setLicence getLicenceInfo startVideoRecordActivity musicListEventListener reloadData appendData
论坛示例
为帮助用户更好更快的使用模块,论坛维护了一个示例,示例中包含示例代码供您参考。
概述
短视频 UGSV 简介
短视频 ( User Generated Short Video,UGSV ),基于腾讯云强大的上传、存储、转码、分发的云点播能力,提供集成了采集、剪辑、拼接、特效、分享、播放等功能的客户端 SDK,并整合腾讯的 IM、社交、用户画像数据以及最顶尖的 AI 人脸识别和图像检测技术,帮助用户聚焦业务本身,快速轻松实现基于移动端的短视频应用。
txCameraRecord 模块概述
本模块封装了腾讯短视频SDK中的录制、编辑、美颜、特效等功能。(模块从1.1.0版本开始需要和UIListView模块配合使用来处理音乐列表加载逻辑,使用的是开源UIListView模块版本,UIListView模块开源地址:https://github.com/apicloudcom/UIListView)
固件要求
Android:4.1及以上 iOS:8.0及以上
模块接口
setLicence
设置授权
setLicence({params}, callback(ret, err))
params
ugcLicenceUrl:
- 类型:字符串
- 描述:(必填项)从腾讯云平台获取的LicenseUrl。参考腾讯官方申请说明
ugcKey:
- 类型:字符串
- 描述:(必填项)从腾讯云平台获取的Key。参考腾讯官方申请说明
callback(ret, err)
ret:
- 类型:JSON对象
- 内部字段:
{
status: true, //布尔型;true||false
}
err:
- 类型:JSON对象
- 内部字段:
{
msg: "",
}
示例代码
var demo = api.require('txCameraRecord');
demo.setLicence({
ugcLicenceUrl : 'http://license.vod2.myqcloud.com/license/v1/TXUgcSDK.licence',
ugcKey : '0a8ee791929052b2dce775c308e'
},function(ret, err){
alert(JSON.stringify(ret) +" "+ JSON.stringify(err));
});
可用性
iOS、Android系统
可提供的1.0.0及更高版本
getLicenceInfo
获取授权信息
setLicence(callback(ret))
callback(ret)
ret:
- 类型:JSON对象
- 内部字段:
{
status: true, //布尔型;true
licence : '', //sdk返回的授权信息字符串
}
示例代码
var demo = api.require('txCameraRecord');
demo.getLicenceInfo(function(ret, err){
alert(JSON.stringify(ret));
});
可用性
iOS、Android系统
可提供的1.0.0及更高版本
startVideoRecordActivity
短视频录制
startVideoRecordActivity({params}, callback(ret))
params
aspectRatio:
- 类型:数字型
- 描述:(可选项)录制视频比例 (0 > 1:1 1 > 4:3 2 > 16:9)。
- 默认值:0
recordResolution:
- 类型:数字型
- 描述:(可选项)录制分辨率 (0 > 360_640 1 > 540_960 2 > 720_1280)。
- 默认值:0
biteRate:
- 类型:数字型
- 描述:(可选项)码率 (范围:600-4800)。
- 默认值:2400
fps:
- 类型:数字型
- 描述:(可选项)帧率 (范围:15-30)。
- 默认值:20
gop:
- 类型:数字型
- 描述:(可选项)关键帧间隔 (范围:1-10)。
- 默认值:3
logo:
- 类型:字符串
- 描述:(可选项)视频尾部水印logo(支持fs:// widget://路径)。
minDuration:
- 类型:数字型
- 描述:(可选项)视频最短时长(秒)。
- 默认值:5
maxDuration:
- 类型:数字型
- 描述:(可选项)视频最长时间(秒)。
- 默认值:60
isFront:
- 类型:布尔型
- 描述:(可选项)是否前置摄像头 (true 前置 fasle 后置)
- 默认值:true
isBeauty:
- 类型:布尔型
- 描述:(可选项)是否显示美颜按钮 (true 显示 false 隐藏)
- 默认值:true
isMusic:
- 类型:布尔型
- 描述:(可选项)是否显示音乐按钮 (true 显示 false 隐藏)
- 默认值:false
isCustomMusic:
- 类型:布尔型
- 描述:(可选项)是否自定义音乐 (true 显示模块自带音乐列表 false 点击音乐按钮返回事件并关闭录制界面[使用该模式缺点:编辑视频时无法选择音乐])
- 默认值:false
musicPath:
- 类型:字符串
- 描述:(可选项)录制时播放音乐,(支持fs:// widget://路径,安卓不支持widget路径)【备注:安卓设置音乐时会覆盖麦克风的语音】
isUploadPic:
- 类型:布尔型
- 描述:(可选项)下载按钮对应图片是否显示上传图片样式 (true 显示上传按钮样式 false 显示下载按钮样式)
- 默认值:false
data:
- 类型:数组
- 描述:音乐列表的数据源,
- 内部字段:
[{
imgPath: '', //(可选项)字符串类型;列表项的配图路径,支持http://、https://、widget://、fs://等协议,网络图片会被缓存到本地,若不传则标题和子标题靠最左侧显示
title: '', //(可选项)字符串类型;标题,若不传或为空则 subTitle 上下位置居中显示
subTitle: '', //(可选项)字符串类型;子标题,若不传或为空则 title 上下位置居中显示
remark: '', //(可选项)字符串类型;右边备注文字
icon: '', //(可选项)字符串类型;右侧备注的图标路径(本地路径,支持fs://、widget://)
forbidden: false, //(可选项)布尔类型;是否屏蔽本条数据的点击事件和侧滑露出按钮功能,屏蔽后的样式可通过 styles->forbidden参数配置
filePath: '' //(必填项)字符串类型;在线音乐URL地址,(可支持fs://)
}]
styles:
- 类型:JSON 对象
- 描述:(可选项)模块各部分的样式
- 内部字段:
{
borderColor: '#696969', //(可选项)字符串类型;列表分割线的颜色,支持 rgb、rgba、#;默认:'#696969'
item: { //(可选项)JSON对象;列表项的样式
bgColor: '#AFEEEE', //(可选项)字符串类型;列表项的背景色,支持 rgb、rgba、#;默认:'#AFEEEE'
activeBgColor: '#F5F5F5', //(可选项)字符串类型;列表项按下时的背景色,支持 rgb、rgba、#;默认:'#F5F5F5'
height: 55, //(可选项)数字类型;列表项的高度;默认:55
imgWidth: 40, //(可选项)数字类型;列表项配图的宽度;默认:列表项的高度减去10px
imgHeight: 40, //(可选项)数字类型;列表项配图的高度;默认:列表项的高度减去10px
imgCorner: 4, //(可选项)数字类型;列表项配图的圆角大小;默认:0
placeholderImg: '', //(可选项)字符串类型;列表项配图的占位图路径(本地路径,fs://、widget://),默认:APICloud 图标
titleSize: 12, //(可选项)数字类型;列表项标题文字大小;默认:12
titleColor: '#000', //(可选项)字符串类型;列表项标题文字颜色,支持 rgb,rgba,#;默认:'#000000'
subTitleSize: 12, //(可选项)数字类型;列表项子标题文字大小;默认:12
subTitleColor: '#000', //(可选项)字符串类型:列表项子标题文字颜色,支持 rgb、rgba、#;默认:'#000000'
remarkColor: '#000', //(可选项)字符串类型;备注的文字颜色,支持 rgb、rgba、#;默认:'#000000'
remarkSize: 16, //(可选项)数字类型;备注的文字大小;默认:16
remarkIconWidth: 30 //(可选项)数字类型;当备注是图片时,图片的宽度,图片为正方形;默认:30
},
forbidden: { //(可选项)JSON对象;屏蔽点击事件的列表项的样式配置
bgColor: '#B0C4DE', //(可选项)字符串类型;列表项背景色,支持rgb、#、rgba;默认:#C0C0C0
titleColor: '800000', //(可选项)字符串类型;列表项标题色,支持rgb、#、rgba;默认:#808080
subTitleColor: '#696969', //(可选项)字符串类型;列表项子标题色,支持rgb、#、rgba;默认:#808080
remarkColor: '#FFDEAD', //(可选项)字符串类型;列表项备注色,支持rgb、#、rgba;默认:#808080
sideslip: false //(可选项)布尔类型;是否只屏蔽侧滑;默认:false(侧滑和点击事件都屏蔽)
}
}
refreshHeader:
- 类型:JSON 对象
- 描述:(可选项)下拉刷新样式
- 内部字段:
{
loadingImg: '', //(可选项) 字符串 下拉刷新时显示的小箭头图标的本地路径,要求本地路径(fs://、widget://)
bgColor: '', //(可选项) 字符串 下拉刷新区域的背景色,支持 rgb、rgba、# 默认值:'#f5f5f5'
textColor:'',//(可选项)字符串 提示文字颜色,支持 rgb、rgba、# 默认值:'#8e8e8e'
textDown:'',//(可选项)字符串 下拉提示文字 默认值:下拉可以刷新...
textUp:'',//(可选项)字符串 松开提示文字 默认值:松开开始刷新...
loadingText: '',//(可选项)字符串 提示文字 默认值:正在加载...
lastUpdateText: '',//(可选项)字符串 提示文字 默认值:上次更新时间:
showTime:'',//(可选项)布尔值 是否显示刷新时间 默认值:true
}
refreshFooter:
- 类型:JSON 对象
- 描述:(可选项)上拉加载更多样式
- 内部字段:
{
loadingImg:'',//(可选项)字符串 上拉加载时显示的小箭头图标的本地路径,要求本地路径(fs://、widget://)
bgColor:'',//(可选项)字符串 上拉加载区域的背景色,支持 rgb、rgba、# 默认值:'#f5f5f5'
textColor:'',//(可选项)字符串 提示文字颜色,支持 rgb、rgba、# 默认值:'#8e8e8e'
textUp:'',//(可选项)字符串 上拉提示文字 默认值:'上拉加载更多...'
textDown:'',//(可选项)字符串 松开提示文字 默认值:'松开开始加载...'
loadingText: '',//(可选项)字符串 提示文字 默认值:正在加载...
lastUpdateText: '',//(可选项)字符串 提示文字 默认值:上次更新时间:
showTime:'',//(可选项)布尔值 是否显示刷新时间 默认值:true
}
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔型;true
evenType : 'musicBtn', //isCustomMusic 为false时点击音乐按钮事件返回
data : {
filePath : '' ,
imagePath : '',
duration : 0,
}
}
示例代码
var demo = api.require('txCameraRecord');
demo.startVideoRecordActivity({
aspectRatio : 2,
recordResolution : 1,
biteRate : 3000,
fps : 25,
gop : 5,
logo : 'widget://image/tcloud_logo.png',
minDuration : 5,
maxDuration : 10,
isFront : true,
isBeauty : true,
musicPath : 'widget://res/Athena.mp3',
//一下是音乐列表设置
isMusic: true, //是否显示音乐按钮 true 显示 false 隐藏 默认 false
isCustomMusic: true, //是否自定义音乐 true 显示 false 隐藏 默认 false
data: [{
imgPath: 'http://img1.3lian.com/gif/more/11/201206/a5194ba8c27b17def4a7c5495aba5e32.jpg',
title: 'bandari(在线测试)',
subTitle: 'bandari',
//remark: '新备注',
//icon: '',
filePath: 'http://7z2dc9.com1.z0.glb.clouddn.com/apicloud/be59ba6f9527382d655abc50f720871e.mp3',
}],
rightBtns: [{
bgColor: '#388e8e',
activeBgColor: '',
width: 70,
title: '选取',
titleSize: 12,
titleColor: '#fff',
icon: '',
iconWidth: 20
}],
styles: {
borderColor: '#696969',
item: {
bgColor: '#FFFFFF',
activeBgColor: '#F5F5F5',
height: 80.0,
imgWidth: 60,
imgHeight: 60,
imgCorner: 4,
placeholderImg: 'widget://image/musiclist_img_item_music_bg.png',
}
},
refreshHeader: {
loadingImg: 'widget://res/UIListView_arrow.png',
bgColor: '#F5F5F5',
textColor: '#8E8E8E',
textDown: '下拉可以刷新...',
textUp: '松开开始刷新...',
showTime: true
},
refreshFooter: {
loadingImg: 'widget://res/UIListView_arrow.png',
bgColor: '#F5F5F5',
textColor: '#8E8E8E',
textUp: '上拉加载更多...',
textDown: '松开开始加载...',
showTime: true
}
}, function(ret, err) {
alert(JSON.stringify(ret));
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
musicListEventListener
音乐列表事件监听
musicListEventListener(callback(ret))
callback(ret)
ret:
- 类型:JSON对象
- 内部字段:
{
status: true, //布尔型;true
eventType: 'show', //字符串类型;交互事件类型
//取值范围如下:
//show(模块加载成功)
//refreshHead(下拉刷新事件)
//refreshFooter(上啦加载事件)
//clickImg(点击列表项的配图)
//clickRemark(点击列表项右侧备注)
//clickContent(点击列表项的内容,除了配图和备注以外的区域,处罚这个事件时会自动播放音乐,同时下载本音乐到本地,以供录制视频使用)
index: 0, //数字类型;列表项的索引
}
示例代码
var demo = api.require('txCameraRecord');
demo.musicListEventListener(function(ret, err){
if (ret.eventType == 'show') {
} else if (ret.eventType == 'refreshHead') {
reloadData();
} else if (ret.eventType == 'refreshFooter') {
appendData();
}
});
可用性
iOS、Android系统
可提供的1.0.0及更高版本
reloadData
刷新音乐列表数据
reloadData({params}, callback(ret))
params
data:
- 类型:数组
- 描述:(可选项)音乐列表的数据源,若不传或传空,仅收起下拉刷新组件
- 内部字段:
[{
imgPath: '', //(可选项)字符串类型;列表项的配图路径,支持http://、https://、widget://、fs://等协议,网络图片会被缓存到本地,若不传则标题和子标题靠最左侧显示
title: '', //(可选项)字符串类型;标题,若不传或为空则 subTitle 上下位置居中显示
subTitle: '', //(可选项)字符串类型;子标题,若不传或为空则 title 上下位置居中显示
remark: '', //(可选项)字符串类型;右边备注文字
icon: '', //(可选项)字符串类型;右侧备注的图标路径(本地路径,支持fs://、widget://)
forbidden: false, //(可选项)布尔类型;是否屏蔽本条数据的点击事件,屏蔽后的样式可通过 open->styles->forbidden参数配置
filePath: '' //(必填项)字符串类型;在线音乐URL地址,(可支持fs://)
}]
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true //布尔型;true||false
}
示例代码
var demo = api.require('txCameraRecord');
demo.reloadData({
data: [{
imgPath: 'http://img1.3lian.com/gif/more/11/201206/a5194ba8c27b17def4a7c5495aba5e32.jpg',
title: '新标题',
subTitle: '新子标题',
remark: '新备注',
icon: '',
filePath: 'http://7z2dc9.com1.z0.glb.clouddn.com/apicloud/be59ba6f9527382d655abc50f720871e.mp3',
}]
}, function(ret) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
appendData
向音乐列表末端追加数据
appendData({params}, callback(ret))
params
data:
- 类型:数组对象
- 描述:音乐列表的数据源,若不传或传空,仅收起上拉加载组件
- 内部字段:
[{
imgPath: '', //(可选项)字符串类型;列表项的附图路径,支持http://、https://、widget://、fs://等协议,网络图片会被缓存到本地,若不传则标题和子标题靠最左侧显示
title: '', //(可选项)字符串类型;标题,若不传或为空则 subTitle 上下位置居中显示
subTitle: '', //(可选项)字符串类型;子标题,若不传或为空则 title 上下位置居中显示
remark: '', //(可选项)字符串类型;右边备注文字
icon: '', //(可选项)字符串类型;右侧备注的图标路径(本地路径,支持fs://、widget://)
forbidden: false, //(可选项)布尔类型;是否屏蔽本条数据的点击事件,屏蔽后的样式可通过 open->styles->forbidden参数配置
filePath: '' //(必填项)字符串类型;在线音乐URL地址,(可支持fs://)
}]
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true //布尔型;true||false
}
示例代码
var demo = api.require('txCameraRecord');
demo.appendData({
data: [{
imgPath: 'http://d.hiphotos.baidu.com/image/pic/item/4d086e061d950a7b29a788c209d162d9f2d3c922.jpg',
title: '新增标题',
subTitle: '新增子标题',
remark: '新增备注',
filePath: 'http://7z2dc9.com1.z0.glb.clouddn.com/apicloud/be59ba6f9527382d655abc50f720871e.mp3',
}]
}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本