更新记录
1.8.4(2023-03-25)
修复安卓crash的问题
1.8.3(2022-11-08)
修复部分设置下安卓打包错误的问题
1.8.2(2022-06-20)
修复退出自定义录制资源释放问题
查看更多平台兼容性
Android | Android CPU类型 | iOS |
---|---|---|
适用版本区间:4.4 - 11.0 | armeabi-v7a:支持,arm64-v8a:支持,x86:支持 | 适用版本区间:9 - 15 |
原生插件通用使用流程:
- 购买插件,选择该插件绑定的项目。
- 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
- 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
- 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
- 开发完毕后正式云打包
付费原生插件目前不支持离线打包。
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,具体步骤如下:
- 登录控制台,选择【云产品】>【访问管理】>【API密钥管理】,进入“API 密钥管理”页面。
- 获取云 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);