更新记录

1.8.2(2022-06-20)

修复退出自定义录制资源释放问题

1.8.1(2022-05-12)

修复ios选择视频列表问题

查看更多

平台兼容性

Android iOS
适用版本区间:4.4 - 11.0 支持CPU类型:armeabi-v7a,arm64-v8a,x86 适用版本区间:9 - 15

原生插件通用使用流程:

  1. 购买插件,选择该插件绑定的项目。
  2. 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
  3. 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
  4. 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
  5. 开发完毕后正式云打包

付费原生插件目前不支持离线打包。
Android 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/android
iOS 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/ios

注意事项:使用HBuilderX2.7.14以下版本,如果同一插件且同一appid下购买并绑定了多个包名,提交云打包界面提示包名绑定不一致时,需要在HBuilderX项目中manifest.json->“App原生插件配置”->”云端插件“列表中删除该插件重新选择


前往https://cloud.tencent.com/document/product/584申请短视频账号

上传组件:tx-video

函数名 参数 说明
setLicence {"licenceURL":"腾讯的url地址","key":"key的值"} 设置短视频证书
edit {"filePath":视频路径,有就进入编辑界面,没有就是列表界面,"saveAlert":是否有保存的弹窗(默认为true),"musicAddress":编辑的音乐列表文件下载地址,格式见群文件,showMusicOption:是否显示音乐选项(默认为true), compressResolution:分辨率(VIDEO_COMPRESSED_360P 0 VIDEO_COMPRESSED_480P 1 VIDEO_COMPRESSED_540P 2 VIDEO_COMPRESSED_720P 3,默认VIDEO_COMPRESSED_720P即3) videoBitrate(码率 单位整数 如6500 )pickerMinDuration:视频列表最短的视频时间限制(默认没有限制) pickerMaxDuration:视频列表最长视频时间限制(默认没有限制) } 视频编辑
record 见record参数说明 视频录制
upload 1.userid:上传用户id 2.signature:签名,签名工具见文档最后 3.biterate:码率 4.resolution 压缩参数 5.fileName:上传到腾讯云的文件名称 6.consoleLog:true or false,true为控制台输出进度,false为使用插件的简易的上传界面 视频上传

record参数说明

参数名称 说明
ratio 视频比例,支持的值: VIDEO_ASPECT_RATIO_3_4 | VIDEO_ASPECT_RATIO_9_16 | VIDEO_ASPECT_RATIO_1_1 | VIDEO_ASPECT_RATIO_16_9 | VIDEO_ASPECT_RATIO_4_3
quality 视频质量,支持的值:standard medium high
min 最小的录制时间单位秒/s
max 最大的录制时间单位秒/s
custom 自定义清晰度,设置后quality参数失效
edit 是否跳转编辑页面 true or false
saveAlert 是否有保存弹窗 true or false(默认true)
musicAddress 编辑的音乐列表文件下载地址,格式见群文件
showMusicOption 是否显示音乐选项(默认为true)
showRatio 是否显示录制比例选项(默认为true)
showBeauty 是否显示美颜选项(默认为true)
showAudioEffect 是否显示声音选项(默认为true)
showSpeed 是否显示录制速度选项(默认为true)
showDelete 是否显示录制删除按钮选项(默认为true)

custom参数说明

参数名称 说明
resolution 录制分辨率:0:VIDEO_RESOLUTION_360_640 | 1:VIDEO_RESOLUTION_540_960 | 2:VIDEO_RESOLUTION_720_1280 |3:VIDEO_RESOLUTION_1080_1920
bps 码率
fps 帧率
gop 关键帧间隔

腾讯云短视频证书获取位置,登录腾讯云控制台选择云点播,在如下位置

跑通代码需要自定义基座,并且使用ios和安卓真机运行

自定义上传视频

1.引入上传组件

const publish = uni.requireNativePlugin('TX-UGCPublish');

2.初始化上传对象

publish.initWithUserId({userId:"test"});

3.设置上传视频监听

publish.setVideoPublishListener(result=>{
                    console.log(result);
                });

4.开始上传视频

publish.publishVideo({signature:"填入自己的签名",coverPath:plus.io.convertLocalFileSystemURL("static/cover.png"),videoPath:plus.io.convertLocalFileSystemURL("static/test.mp4"),fileName:"video"});

5.取消上传

publish.canclePublish();

自定义上传图片

1.引入上传组件

const publish = uni.requireNativePlugin('TX-UGCPublish');

2.初始化上传对象

publish.initWithUserId({userId:"test"});

3.设置上传图片监听

    publish.setMediaPublishListener(result=>{
                    console.log(result);
                });

4.开始上传图片

publish.publishMedia({signature:"",mediaPath:plus.io.convertLocalFileSystemURL("static/cover.png"),fileName:"media"});

5.取消上传

publish.canclePublish();

上传需要的签名工具

https://video.qcloud.com/signature/ugcgenerate.html

获取调用服务端 API 所需的安全凭证,即 SecretId 和 SecretKey,具体步骤如下:

  1. 登录控制台,选择【云产品】>【访问管理】>【API密钥管理】,进入“API 密钥管理”页面。
  2. 获取云 API 密钥。如果您尚未创建密钥,则单击【新建密钥】即可创建一对 SecretId 和 SecretKey。

自定义录制

1.引入自定义录制模块

const record = uni.requireNativePlugin('TX-UGCRecord');

2.开启摄像头预览

record.startCameraSimplePreview({videoQuality:1,frontCamera:true},result=>{

                                     });
参数 说明
videoQuality 0 : resolution 360×640 fps 20 bitrate 600 1: resolution 540×960 fps 20 bitrate 2400 2: resolution 720×1280 fps 20 bitrate 3600
frontCamera 是否是前置摄像头
record.startCameraCustomPreview({videoResolution:2,fps:20,bps:2400,gop:3,minDuration:5,maxDuration:60,frontCamera:true},result=>{})
参数 说明
videoResolution 0: 360P 分辨率 1: 540P 分辨率 2: 720P 分辨率 3: 1080P 分辨率
fps 自定义fps 15~30
bps 建议值:600~12000
gop 关键帧间隔(1 ~10),默认3s
minDuration 设置视频录制的最小时长,大于0 (s)
maxDuration 设置视频录制的最大时长,建议不超过300 (s)

3.设置录制监听

 record.setVideoRecordListener(result=>{
                   console.log(result);
               })

4.设置录制比例

record.setAspectRatio({aspectRatio:1});
参数 说明
aspectRatio 0: 3:4 1: 9:16 2: 1:1 3: 16:9 4: 4:3

5.设置录制速度

 record.setRecordSpeed({speed:1});
参数 说明
speed 录制速度

6.开始录制

 record.startRecord();

7.停止录制

record.stopRecord();

8.停止摄像头预览

record.stopCameraPreview();

9.暂停录制

record.resumeRecord();

其他常用函数

获取录制时长

      let time = record.getDuration();
              console.log(time);

获取片段路径

   let paths = record.getVideoPathList();
               console.log(paths);

删除最后一个片段

  record.deleteLastPart();

删除当前录制视频指定片段

 record.deletePart({index:0});

删除所有片段

record.deleteAllParts();

插入片段

record.insertPart({videoPath:"",index:0})

设置视频预览方向

 record.setRenderRotation(renderRotation:0);

调整焦距

 record.setZoom();

打开闪关灯

record.toggleTorch({enable:true});

设置横竖屏录制

record.setHomeOrientation({homeOrientation:0});

设置背景音乐

record.setBGM({path:""});

停止背景音乐

record.stopBGM();

暂停背景音乐

record.pauseBGM();

继续播放背景音乐

record.resumeBGM();

设置背景音乐音量

record.setBGMVolume({volume:100});

截屏

 record.snapshot({},result=>{
                   console.log(result);
               })

设置视频渲染模式

record.setVideoRenderMode(1);

隐私、权限声明

1. 本插件需要申请的系统权限列表:

NSAppleMusicUsageDescription NSCameraUsageDescription NSPhotoLibraryAddUsageDescription NSPhotoLibraryUsageDescription android.permission.CAMERA android.permission.RECORD_AUDIO

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件自身不采集任何数据,插件使用的腾讯云的sdk采集数据。说明参考官方https://cloud.tencent.com/document/product/584

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问