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:

ugcKey:

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
  1. {
  2. status: true, //布尔型;true||false
  3. }

err:

  • 类型:JSON对象
  • 内部字段:
  1. {
  2. msg: "",
  3. }

示例代码

  1. var demo = api.require('txCameraRecord');
  2. demo.setLicence({
  3. ugcLicenceUrl : 'http://license.vod2.myqcloud.com/license/v1/TXUgcSDK.licence',
  4. ugcKey : '0a8ee791929052b2dce775c308e'
  5. },function(ret, err){
  6. alert(JSON.stringify(ret) +" "+ JSON.stringify(err));
  7. });

可用性

iOS、Android系统

可提供的1.0.0及更高版本

getLicenceInfo

获取授权信息

setLicence(callback(ret))

callback(ret)

ret:

  • 类型:JSON对象
  • 内部字段:
  1. {
  2. status: true, //布尔型;true
  3. licence : '', //sdk返回的授权信息字符串
  4. }

示例代码

  1. var demo = api.require('txCameraRecord');
  2. demo.getLicenceInfo(function(ret, err){
  3. alert(JSON.stringify(ret));
  4. });

可用性

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:

  • 类型:数组
  • 描述:音乐列表的数据源,
  • 内部字段:
  1. [{
  2. imgPath: '', //(可选项)字符串类型;列表项的配图路径,支持http://、https://、widget://、fs://等协议,网络图片会被缓存到本地,若不传则标题和子标题靠最左侧显示
  3. title: '', //(可选项)字符串类型;标题,若不传或为空则 subTitle 上下位置居中显示
  4. subTitle: '', //(可选项)字符串类型;子标题,若不传或为空则 title 上下位置居中显示
  5. remark: '', //(可选项)字符串类型;右边备注文字
  6. icon: '', //(可选项)字符串类型;右侧备注的图标路径(本地路径,支持fs://、widget://)
  7. forbidden: false, //(可选项)布尔类型;是否屏蔽本条数据的点击事件和侧滑露出按钮功能,屏蔽后的样式可通过 styles->forbidden参数配置
  8. filePath: '' //(必填项)字符串类型;在线音乐URL地址,(可支持fs://)
  9. }]

styles:

  • 类型:JSON 对象
  • 描述:(可选项)模块各部分的样式
  • 内部字段:
  1. {
  2. borderColor: '#696969', //(可选项)字符串类型;列表分割线的颜色,支持 rgb、rgba、#;默认:'#696969'
  3. item: { //(可选项)JSON对象;列表项的样式
  4. bgColor: '#AFEEEE', //(可选项)字符串类型;列表项的背景色,支持 rgb、rgba、#;默认:'#AFEEEE'
  5. activeBgColor: '#F5F5F5', //(可选项)字符串类型;列表项按下时的背景色,支持 rgb、rgba、#;默认:'#F5F5F5'
  6. height: 55, //(可选项)数字类型;列表项的高度;默认:55
  7. imgWidth: 40, //(可选项)数字类型;列表项配图的宽度;默认:列表项的高度减去10px
  8. imgHeight: 40, //(可选项)数字类型;列表项配图的高度;默认:列表项的高度减去10px
  9. imgCorner: 4, //(可选项)数字类型;列表项配图的圆角大小;默认:0
  10. placeholderImg: '', //(可选项)字符串类型;列表项配图的占位图路径(本地路径,fs://、widget://),默认:APICloud 图标
  11. titleSize: 12, //(可选项)数字类型;列表项标题文字大小;默认:12
  12. titleColor: '#000', //(可选项)字符串类型;列表项标题文字颜色,支持 rgb,rgba,#;默认:'#000000'
  13. subTitleSize: 12, //(可选项)数字类型;列表项子标题文字大小;默认:12
  14. subTitleColor: '#000', //(可选项)字符串类型:列表项子标题文字颜色,支持 rgb、rgba、#;默认:'#000000'
  15. remarkColor: '#000', //(可选项)字符串类型;备注的文字颜色,支持 rgb、rgba、#;默认:'#000000'
  16. remarkSize: 16, //(可选项)数字类型;备注的文字大小;默认:16
  17. remarkIconWidth: 30 //(可选项)数字类型;当备注是图片时,图片的宽度,图片为正方形;默认:30
  18. },
  19. forbidden: { //(可选项)JSON对象;屏蔽点击事件的列表项的样式配置
  20. bgColor: '#B0C4DE', //(可选项)字符串类型;列表项背景色,支持rgb、#、rgba;默认:#C0C0C0
  21. titleColor: '800000', //(可选项)字符串类型;列表项标题色,支持rgb、#、rgba;默认:#808080
  22. subTitleColor: '#696969', //(可选项)字符串类型;列表项子标题色,支持rgb、#、rgba;默认:#808080
  23. remarkColor: '#FFDEAD', //(可选项)字符串类型;列表项备注色,支持rgb、#、rgba;默认:#808080
  24. sideslip: false //(可选项)布尔类型;是否只屏蔽侧滑;默认:false(侧滑和点击事件都屏蔽)
  25. }
  26. }

refreshHeader:

  • 类型:JSON 对象
  • 描述:(可选项)下拉刷新样式
  • 内部字段:
  1. {
  2. loadingImg '', //(可选项) 字符串 下拉刷新时显示的小箭头图标的本地路径,要求本地路径(fs://、widget://)
  3. bgColor '', //(可选项) 字符串 下拉刷新区域的背景色,支持 rgb、rgba、# 默认值:'#f5f5f5'
  4. textColor'',//(可选项)字符串 提示文字颜色,支持 rgb、rgba、# 默认值:'#8e8e8e'
  5. textDown'',//(可选项)字符串 下拉提示文字 默认值:下拉可以刷新...
  6. textUp'',//(可选项)字符串 松开提示文字 默认值:松开开始刷新...
  7. loadingText: '',//(可选项)字符串 提示文字 默认值:正在加载...
  8. lastUpdateText: '',//(可选项)字符串 提示文字 默认值:上次更新时间:
  9. showTime'',//(可选项)布尔值 是否显示刷新时间 默认值:true
  10. }

refreshFooter:

  • 类型:JSON 对象
  • 描述:(可选项)上拉加载更多样式
  • 内部字段:
  1. {
  2. loadingImg'',//(可选项)字符串 上拉加载时显示的小箭头图标的本地路径,要求本地路径(fs://、widget://)
  3. bgColor'',//(可选项)字符串 上拉加载区域的背景色,支持 rgb、rgba、# 默认值:'#f5f5f5'
  4. textColor'',//(可选项)字符串 提示文字颜色,支持 rgb、rgba、# 默认值:'#8e8e8e'
  5. textUp'',//(可选项)字符串 上拉提示文字 默认值:'上拉加载更多...'
  6. textDown'',//(可选项)字符串 松开提示文字 默认值:'松开开始加载...'
  7. loadingText: '',//(可选项)字符串 提示文字 默认值:正在加载...
  8. lastUpdateText: '',//(可选项)字符串 提示文字 默认值:上次更新时间:
  9. showTime'',//(可选项)布尔值 是否显示刷新时间 默认值:true
  10. }

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: true, //布尔型;true
  3. evenType : 'musicBtn', //isCustomMusic 为false时点击音乐按钮事件返回
  4. data : {
  5. filePath : '' ,
  6. imagePath : '',
  7. duration : 0,
  8. }
  9. }

示例代码

  1. var demo = api.require('txCameraRecord');
  2. demo.startVideoRecordActivity({
  3. aspectRatio : 2,
  4. recordResolution : 1,
  5. biteRate : 3000,
  6. fps : 25,
  7. gop : 5,
  8. logo : 'widget://image/tcloud_logo.png',
  9. minDuration : 5,
  10. maxDuration : 10,
  11. isFront : true,
  12. isBeauty : true,
  13. musicPath : 'widget://res/Athena.mp3',
  14. //一下是音乐列表设置
  15. isMusic: true, //是否显示音乐按钮 true 显示 false 隐藏 默认 false
  16. isCustomMusic: true, //是否自定义音乐 true 显示 false 隐藏 默认 false
  17. data: [{
  18. imgPath: 'http://img1.3lian.com/gif/more/11/201206/a5194ba8c27b17def4a7c5495aba5e32.jpg',
  19. title: 'bandari(在线测试)',
  20. subTitle: 'bandari',
  21. //remark: '新备注',
  22. //icon: '',
  23. filePath: 'http://7z2dc9.com1.z0.glb.clouddn.com/apicloud/be59ba6f9527382d655abc50f720871e.mp3',
  24. }],
  25. rightBtns: [{
  26. bgColor: '#388e8e',
  27. activeBgColor: '',
  28. width: 70,
  29. title: '选取',
  30. titleSize: 12,
  31. titleColor: '#fff',
  32. icon: '',
  33. iconWidth: 20
  34. }],
  35. styles: {
  36. borderColor: '#696969',
  37. item: {
  38. bgColor: '#FFFFFF',
  39. activeBgColor: '#F5F5F5',
  40. height: 80.0,
  41. imgWidth: 60,
  42. imgHeight: 60,
  43. imgCorner: 4,
  44. placeholderImg: 'widget://image/musiclist_img_item_music_bg.png',
  45. }
  46. },
  47. refreshHeader: {
  48. loadingImg: 'widget://res/UIListView_arrow.png',
  49. bgColor: '#F5F5F5',
  50. textColor: '#8E8E8E',
  51. textDown: '下拉可以刷新...',
  52. textUp: '松开开始刷新...',
  53. showTime: true
  54. },
  55. refreshFooter: {
  56. loadingImg: 'widget://res/UIListView_arrow.png',
  57. bgColor: '#F5F5F5',
  58. textColor: '#8E8E8E',
  59. textUp: '上拉加载更多...',
  60. textDown: '松开开始加载...',
  61. showTime: true
  62. }
  63. }, function(ret, err) {
  64. alert(JSON.stringify(ret));
  65. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

musicListEventListener

音乐列表事件监听

musicListEventListener(callback(ret))

callback(ret)

ret:

  • 类型:JSON对象
  • 内部字段:
  1. {
  2. status: true, //布尔型;true
  3. eventType: 'show', //字符串类型;交互事件类型
  4. //取值范围如下:
  5. //show(模块加载成功)
  6. //refreshHead(下拉刷新事件)
  7. //refreshFooter(上啦加载事件)
  8. //clickImg(点击列表项的配图)
  9. //clickRemark(点击列表项右侧备注)
  10. //clickContent(点击列表项的内容,除了配图和备注以外的区域,处罚这个事件时会自动播放音乐,同时下载本音乐到本地,以供录制视频使用)
  11. index: 0, //数字类型;列表项的索引
  12. }

示例代码

  1. var demo = api.require('txCameraRecord');
  2. demo.musicListEventListener(function(ret, err){
  3. if (ret.eventType == 'show') {
  4. } else if (ret.eventType == 'refreshHead') {
  5. reloadData();
  6. } else if (ret.eventType == 'refreshFooter') {
  7. appendData();
  8. }
  9. });

可用性

iOS、Android系统

可提供的1.0.0及更高版本

reloadData

刷新音乐列表数据

reloadData({params}, callback(ret))

params

data:

  • 类型:数组
  • 描述:(可选项)音乐列表的数据源,若不传或传空,仅收起下拉刷新组件
  • 内部字段:
  1. [{
  2. imgPath: '', //(可选项)字符串类型;列表项的配图路径,支持http://、https://、widget://、fs://等协议,网络图片会被缓存到本地,若不传则标题和子标题靠最左侧显示
  3. title: '', //(可选项)字符串类型;标题,若不传或为空则 subTitle 上下位置居中显示
  4. subTitle: '', //(可选项)字符串类型;子标题,若不传或为空则 title 上下位置居中显示
  5. remark: '', //(可选项)字符串类型;右边备注文字
  6. icon: '', //(可选项)字符串类型;右侧备注的图标路径(本地路径,支持fs://、widget://)
  7. forbidden: false, //(可选项)布尔类型;是否屏蔽本条数据的点击事件,屏蔽后的样式可通过 open->styles->forbidden参数配置
  8. filePath: '' //(必填项)字符串类型;在线音乐URL地址,(可支持fs://)
  9. }]

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: true //布尔型;true||false
  3. }

示例代码

  1. var demo = api.require('txCameraRecord');
  2. demo.reloadData({
  3. data: [{
  4. imgPath: 'http://img1.3lian.com/gif/more/11/201206/a5194ba8c27b17def4a7c5495aba5e32.jpg',
  5. title: '新标题',
  6. subTitle: '新子标题',
  7. remark: '新备注',
  8. icon: '',
  9. filePath: 'http://7z2dc9.com1.z0.glb.clouddn.com/apicloud/be59ba6f9527382d655abc50f720871e.mp3',
  10. }]
  11. }, function(ret) {
  12. if (ret) {
  13. alert(JSON.stringify(ret));
  14. } else {
  15. alert(JSON.stringify(err));
  16. }
  17. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

appendData

向音乐列表末端追加数据

appendData({params}, callback(ret))

params

data:

  • 类型:数组对象
  • 描述:音乐列表的数据源,若不传或传空,仅收起上拉加载组件
  • 内部字段:
  1. [{
  2. imgPath: '', //(可选项)字符串类型;列表项的附图路径,支持http://、https://、widget://、fs://等协议,网络图片会被缓存到本地,若不传则标题和子标题靠最左侧显示
  3. title: '', //(可选项)字符串类型;标题,若不传或为空则 subTitle 上下位置居中显示
  4. subTitle: '', //(可选项)字符串类型;子标题,若不传或为空则 title 上下位置居中显示
  5. remark: '', //(可选项)字符串类型;右边备注文字
  6. icon: '', //(可选项)字符串类型;右侧备注的图标路径(本地路径,支持fs://、widget://)
  7. forbidden: false, //(可选项)布尔类型;是否屏蔽本条数据的点击事件,屏蔽后的样式可通过 open->styles->forbidden参数配置
  8. filePath: '' //(必填项)字符串类型;在线音乐URL地址,(可支持fs://)
  9. }]

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: true //布尔型;true||false
  3. }

示例代码

  1. var demo = api.require('txCameraRecord');
  2. demo.appendData({
  3. data: [{
  4. imgPath: 'http://d.hiphotos.baidu.com/image/pic/item/4d086e061d950a7b29a788c209d162d9f2d3c922.jpg',
  5. title: '新增标题',
  6. subTitle: '新增子标题',
  7. remark: '新增备注',
  8. filePath: 'http://7z2dc9.com1.z0.glb.clouddn.com/apicloud/be59ba6f9527382d655abc50f720871e.mp3',
  9. }]
  10. }, function(ret, err) {
  11. if (ret) {
  12. alert(JSON.stringify(ret));
  13. } else {
  14. alert(JSON.stringify(err));
  15. }
  16. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本