更新记录

1.8.3(2023-09-20)

优化ios拉流

1.8.2(2023-03-13)

优化安卓录屏

1.8.1(2022-05-16)

修复短视频选择图片的功能

查看更多

平台兼容性

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

原生插件通用使用流程:

  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原生插件配置”->”云端插件“列表中删除该插件重新选择


TX-ProTencent-TRTCCloud

简介

TX-ProTencent-TRTCCloud插件致力于让开发者一键实现腾讯的推流功能,需要uni-app的开发者门阅读腾讯文档,然后根据我的文档就可以找到对应的方法,轻松实现推流逻辑

准备

请前往https://cloud.tencent.com/product/trtc申请账号

api说明

推流组件 TX-PlayView

函数名称 参数 说明
startLocalPreview 开启本地视频的预览画面
函数名称 参数 说明
stopLocalPreview 停止本地视频采集及预览
函数名称 参数 说明
startRemoteView 参数用户的userid,比如"xiaoming" 开始显示远端视频画面
函数名称 参数 说明
stopRemoteView 参数用户的userid 停止显示远端视频画面
函数名称 参数 说明
joinRoom 加入房间
函数名称 参数 说明
leaveRoom 离开房间
函数名称 参数 说明
enterRoom 参数列表,回调函数 参数列表支持{"appId":xxx,"appKey":xxx,"userSig":xxx,"roomId":xxx,"userId":xxx,"role":xxx,"privateMapKey":xxx,"streamId":xxx,"scene":xxx,"videoResolution":xxx,"videoBitrate":xxx,"videoFps":xxx,"resMode":xxx} 作用:加入房间

推流组件:TX-ProTencent-TRTCCloud

函数名称 说明
enterRoom 加入房间,具体参数见下
参数名 说明
appid 腾讯平台申请的appid(整数)
appkey 腾讯平台申请的appsecret(字符串)
userSig 可以不传appkey的签名,而是直接使用服务器签名好的userSig,这个和appkey二选其一(字符串)
roomId 房间号(整数)
userId 用户id(字符串)
role 用户角色:20 主播 21观众(整数)
scene 场景说明: 0视频聊天 1直播(整数)
callback 加入房间后的状态回调
函数名称 参数 说明
exitRoom 离开房间
函数名称 参数 说明
muteLocalVideo 参数 Bool值true or false 是否屏蔽自己的视频画面
函数名称 参数 说明
stopAllRemoteView 参数无 停止显示所有远端视频画面
函数名称 参数 说明
muteRemoteVideoStream 参数1 userId, 参数2 Bool值 true or false 暂停接收指定的远端视频流
函数名称 参数 说明
muteAllRemoteVideoStreams Bool值 true or false 停止接收所有远端视频流
函数名称 参数 说明
startLocalAudio 开启本地音频的采集和上行
函数名称 参数 说明
stopLocalAudio 关闭本地音频的采集和上行
函数名称 参数 说明
muteLocalAudio Bool值 true or false 静音本地的音频
函数名称 参数 说明
muteRemoteAudio 参数1 userId, 参数2 Bool值 true or false 静音掉某一个用户的声音
函数名称 参数 说明
muteAllRemoteAudio Bool值 true or false 静音掉所有用户的声音
函数名称 参数 说明
switchCamera 切换摄像头
函数名称 参数 说明
setAudioRoute 整型 0 扬声器 1听筒 设置音频路由
函数名称 参数 说明
destroySharedInstance 销毁 TRTCCloud 单例
函数名称 参数 说明
switchRole 20主播 21观众 转换角色
函数名称 参数 说明
enableAudioVolumeEvaluation 整形,回调间隔时间 开启音量回调
函数名称 参数 说明
sendCustomCmdMsg 参数一:cmd (1-10) 参数二:字符串 参数三:bool 参数四:bool 具体参考腾讯文档 发送消息
函数名称 参数 说明
sendSEIMsg 参数一:字符串 参数二:发送次数 发送sei
函数名称 参数 说明
setLocalViewRotation 整数 TRTCVideoRotation_0 = 0, ///< 不旋转 TRTCVideoRotation_90 = 1, ///< 顺时针旋转90度TRTCVideoRotation_180 = 2, ///< 顺时针旋转180度TRTCVideoRotation_270 = 3, ///< 顺时针旋转270度
函数名称 参数 说明
setRemoteViewRotation 参数一:userId字符串,参数二:整数 TRTCVideoRotation_0 = 0, ///< 不旋转 TRTCVideoRotation_90 = 1, ///< 顺时针旋转90度TRTCVideoRotation_180 = 2, ///< 顺时针旋转180度TRTCVideoRotation_270 = 3, ///< 顺时针旋转270度
函数名称 参数 说明
playBGM 本地存储路径 播放本地存储的音乐
函数名称 参数 说明
stopBGM 停止播放 停止播放本地存储的音乐
函数名称 参数 说明
pauseBGM 暂停播放 暂停播放本地存储的音乐
函数名称 参数 说明
resumeBGM 继续播放 继续播放本地存储的音乐
函数名称 参数 说明
playAudioEffect effectId:音效id path:音效路径 loopCount:循环次数 publish:是否同步到云端 播放音效
函数名称 参数 说明
setAudioEffectVolume effectId:音效id,volumu:音效大小 设置音效声音大小
函数名称 参数 说明
stopAudioEffect effectId:音效id 停止音效
函数名称 参数 说明
stopAllAudioEffects 停止所有音效
函数名称 参数 说明
setAllAudioEffectsVolume 设置所有音效的大小
函数名称 参数 说明
pauseAudioEffect effectId:音效id 暂停音效
函数名称 参数 说明
resumeAudioEffect effectId:音效id 继续播放音效
函数名称 参数 说明
startPlayMusic {path:播放网络地址(字符串), loopCount:循环次数(整数), ID:音乐id(字符串)} 开始播放背景音乐
函数名称 参数 说明
stopPlayMusic {ID:音乐id(字符串)} 停止播放背景音乐
函数名称 参数 说明
pausePlayMusic {ID:音乐id(字符串)} 暂停播放背景音乐
函数名称 参数 说明
resumePlayMusic {ID:音乐id(字符串)} 恢复播放背景音乐
函数名称 参数 说明
setMusicPublishVolume {ID:音乐id(字符串)} 设置背景音乐的远端音量大小
函数名称 参数 说明
setMusicPlayoutVolume {ID:音乐id(字符串),volume:声音大小(整数)} 设置背景音乐的本地音量大小
函数名称 参数 说明
startAudioRecording 参数一{path:完整路径(可以不填写},参数二:回调函数 开始录音
函数名称 参数 说明
stopAudioRecording 停止录音
函数名称 参数 说明
checkPermission int 1:音频和视频权限 0:音频权限
函数名称 参数 说明
setLocalViewFillMode int 0, ///< 图像铺满屏幕 1, ///< 图像长边填满屏幕,短边区域会被填充黑色

播放组件:TX-AVPlayer

函数名称 参数 说明
startPlay 开始播放
stopPlay 停止播放
pause 暂停播放
resume 继续播放
setCacheStrategy 整型 设置播放的速度 0 快速 1 平滑 2 自动
startPlayWithUrl 参数一 播放url地址(String) 参数二:播放类型type(int) type取值:0 RTMP 直播 1 FLV 直播 2 FLV 点播 3 HLS 点播 4 MP4点播 5 RTMP 直播加速播放

TX-PlayView属性说明:

属性名 属性值 备注
appId 应用id(整数) (必填)
appKey 应用的签名key(字符串) 与userSig二选其一
userSig 用户的签名(字符串) 后台生成 与appKey二选其一
roomId 房间号(整数) (必填)
userId 用户id (字符串) (必填)
remoteUserId 远程的用户id (字符串) 拉取远程用户的流,获取到远程用户id时赋值
role 用户角色 (整数) 20 主播 21观众 (可选)默认20
scene 场景 (整数) 0视频聊天 1直播 (可选)可选 默认0
whiteness 美白级别 (整数) 取值范围0 - 9;0表示关闭,1 - 9值越大,效果越明显 (可选)
ruddiness 红润级别 (整数) 取值范围0 - 9;0表示关闭,1 - 9值越大,效果越明显 (可选)
beauty 美颜级别 (整数) 取值范围0 - 9; 0表示关闭,1 - 9值越大,效果越明显 (可选)
beatyStyle 美颜风格 (整数) 光滑或者自然,0 光滑 1自然 (可选)
videoResolution 分辨率 (整数) 见视频分辨率 (可选)
videoBitrate 视频上行码率 (整数) 见后文说明,单位kbps (可选)
videoFps 视频采集帧率 (整数) (可选)
resMode 分辨率模式 (整数) 0横屏 1竖屏 (可选)
enableLocalPreview 是否开启本地预览 true开启 false关闭 (可选)
enableLocalAudio 是否开启音频采集 true 开启 false关闭 (可选)
mirror 是否开启镜像模式 true 开启 false关闭 (可选)
statechange 推流中的状态回调用 (可选)
filterFileName 滤镜图片 可取值有15种,见下面说明 (可选)
remoteSubStreamUserId 远程的屏幕共享的userid (字符串)
remoteSubStreamModel 远程屏幕共享的拉流方式 0 全屏 1 自适应
txAppId 混流的appid,腾讯后台账号的appId,注意不是实时音视频的sdkAppId(整数) (可选)
cloudMixtures 混流参数,必须包含userId,可以不指定x,y,w,h,使用系统自带的,也可以自定义x,y,w,h (字符串) 回流成功后拉流地址参考腾讯文档(可选)
videoWidth 混流端指定主播的画布的宽度 (整数) (可选)
videoHeight 混流端指定主播的画布的高度 (整数) (可选)
videoX 混流端指定主播画布的x坐标 (整数) (可选)
videoY 混流端指定主播画布的y坐标 (整数) (可选)
filterFileName可取值如下:
bailan.png
chaotuo.png
chunzhen.png
fennen.png
huaijiu.png
landiao.png
langman.png
normal.png
qingliang.png
qingxin.png
rixi.png
weimei.png
white.png
xiangfen.png
yinghong.png
yuanqi.png
yunshang.png

TX-AVPlayer属性说明

属性名 属性值 备注
url 播放地址 (必填)
playModel 播放模式 画面裁剪模式: 0 全屏 1 图像适应屏幕,保持画面完整 (可选)
playRotation 设置画面方向 Ios : 0 HOME 键在右边,横屏模式 1 HOME 键在下面,手机直播中最常见的竖屏直播模式 2 键在左边,横屏模式 3 HOME 键在上边,竖屏直播. andriod: 0 竖屏 270 横屏模式 ios和安卓在这个属性上有差别,需要分平台判断,如果用竖屏模式可以不用设置这个,使用默认值,如果设置错误会导致安卓不能全屏
statechange 状态回调 (可选)

视频分辨率

常量 描述
TRTCVideoResolution_120_120 = 1 建议码率80kbps
TRTCVideoResolution_160_160 = 3 建议码率100kbps
TRTCVideoResolution_270_270 = 5 建议码率200kbps
TRTCVideoResolution_480_480 = 7 建议码率350kbps
TRTCVideoResolution_160_120 = 50 建议码率100kbps
TRTCVideoResolution_240_180 = 52 建议码率150kbps
TRTCVideoResolution_280_210 = 54 建议码率200kbps
TRTCVideoResolution_320_240 = 56 建议码率250kbps
TRTCVideoResolution_400_300 = 58 建议码率300kbps
TRTCVideoResolution_480_360 = 60 建议码率400kbps
TRTCVideoResolution_640_480 = 62 建议码率600kbps
TRTCVideoResolution_960_720 = 64 建议码率1000kbps
TRTCVideoResolution_160_90 = 100 建议码率100kbps
TRTCVideoResolution_256_144 = 102 建议码率150kbps
TRTCVideoResolution_320_180 = 104 建议码率250kbps
TRTCVideoResolution_480_270 = 106 建议码率350kbps
TRTCVideoResolution_640_360 = 108 建议码率550kbps
TRTCVideoResolution_960_540 = 110 建议码率850kbps
TRTCVideoResolution_1280_720 = 112 摄像头采集 - 建议码率1200kbps
TRTCVideoResolution_1920_1080 = 114 屏幕分享 - 建议码率800kbps

使用说明: 见示例工程中的index.nvue文件

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

接入流程使用自己的appId和appKey替换demo中的appId和appKey可以快速接入

打包主要步骤如下,以安卓为例子

一定要自己制作证书,使用DCloud公有证书会提示插件的方法找不到,重要的事情说三遍

如果不会制作安卓证书参考http://www.appuploader.net/appuploader/onlinetools.php

前往https://cloud.tencent.com/product/lvb申请账号

推流组件:TX-ProTencent-Push

函数名 参数 说明
setLicence {"licenceURL":"腾讯的url地址","key":"key的值"}
setVideoQuality {"quality":整型,"adjustBitrate":bool值,"adjustResolution":bool值} 见下文补充
switchCamera
stopPush 停止推流
setCohostConfig {
appId:腾讯云的appid,
retryCount:重试的次数,
key:腾讯云的API授权key,
urls:合流的地址,以逗号分隔,
model:模式,
pushUrl:主播的推流地址
subWidth:合流的宽度(最大540,参数性质可选)
. subHeight:合流的高度(最大960,参数性质可选)
. offsetHeight:合流的纵向间隙(参数性质可选)
,回调函数 }
合流设置
cancelCohostConfig {
appId:腾讯云的appid,
retryCount:重试的次数,
key:腾讯云的API授权key,
pushUrl:主播的推流地址
,回调函数}
startPlayMusic {path:播放网络地址(字符串), loopCount:循环次数(整数), ID:音乐id(字符串)} 开始播放背景音乐
stopPlayMusic {ID:音乐id(字符串)} 停止播放背景音乐
pausePlayMusic {ID:音乐id(字符串)} 暂停播放背景音乐
resumePlayMusic {ID:音乐id(字符串)} 恢复播放背景音乐
setMusicPublishVolume {ID:音乐id(字符串)} 设置背景音乐的远端音量大小
setMusicPlayoutVolume {ID:音乐id(字符串),volume:声音大小(整数)} 设置背景音乐的本地音量大小
setMirror true or false 设置视频镜像效果
setRenderRotation 整数 取值为0 ,90,180,270(其他值无效),表示主播端摄像头预览视频的顺时针旋转角度
toggleTorch 参数一 :true or false 参数二:回调函数 打开后置摄像头旁边的闪关灯
setZoom 参数一 :整数 (取值范围1 - 5,默认值建议设置为1即可) 参数二:回调函数 调整摄像头的焦距
setFocusPosition 参数一:x坐标(整数)参数二:y坐标(整数) 置手动对焦区域
setVoiceVolume 参数一 :整数 (volume 音量大小,100为原始音量,范围是:[0 ~ 150],默认值为100) 参数二:回调函数 设置麦克风采集人声的音量
setMusicPitch 参数一:整数(音乐id) 参数二:float(音调,默认值是0.0f,范围是:[-1 ~ 1] 之间的浮点数) 参数三:回调函数 调整背景音乐的音调高低
setVoiceReverbType 参数一:整数(参考腾讯文档取值)参数二:回调函数 设置人声的混响效果(KTV、小房间、大会堂、低沉、洪亮...)
setVoiceChangerType 参数一:整数(参考腾讯文档取值)参数二:回调函数 设置人声的变声特效
setVideoRecordListener 回调函数 设置监听
startRecord 参数一:字符串(存在的文件路径) 参数二:回调函数 视频开始录制
stopRecord 回调函数 结束录制
setMute true or false 开启静音

appid见如下图示

key见如下图示

quality取值说明

说明
1 标清:采用 360 × 640 的分辨率
2 高清:采用 540 × 960 的分辨率
3 超清:采用 720 × 1280 的分辨率
4 连麦场景下的大主播使用
5 连麦场景下的小主播(连麦的观众)使用
6 纯视频通话场景使用(已废弃)

推流组件:tx-pushview

函数名称 参数 说明
startPushUrl 回调函数 开始推流,回调值 0: 启动成功;-1: 启动失败;-5:license 校验失败
stopPush 停止推流
pausePush 暂停摄像头采集
resumePush 恢复摄像头采集
startPreview 启动摄像头预览
stopPreview 停止摄像头预览
isPublishing 查询是否正在推流
snapshot 回调函数 截取推流中的图片
toggleTorch 打开后置摄像头旁边的闪关灯
startPusher 参数1:推流地址,参数2:回调函数

拉流组件: tx-avplayer

函数名称 参数 说明
startPlay 开始播放
stopPlay 停止播放
pause 暂停播放
setCacheStrategy 整型 设置播放的速度 0 快速 1 平滑 2 自动
setConfig 见腾讯各个字段支持:enableAEC cacheTime bAutoAdjustCacheTime maxAutoAdjustCacheTime minAutoAdjustCacheTime videoBlockThreshold connectRetryCount connectRetryInterval enableMessage enableMetaData
startPlayWithUrl 参数一 播放url地址(String) 参数二:播放类型type(int) type取值:0 RTMP 直播 1 FLV 直播 2 FLV 点播 3 HLS 点播 4 MP4点播 5 RTMP 直播加速播放

录屏组件: tx-screenview

函数名称 参数 说明
startScreen 参数一:{audio:1,video:1} , 参数二:回调函数 0不需要声音,1需要录制本地声音(audio),0不需要开启摄像头,1需要开启摄像头,回调值 0: 启动成功;-1: 启动失败;-5:license 校验失败
stopScreen 停止录屏
pausePusher 暂停推流
resumePusher 继续推流

tx-pushview属性

属性名 属性值 备注
url 推流的地址
pauseFps 推流时的视频帧率,取值范围3 - 8,默认值:5 FPS
pauseTime 垫片推流的最大持续时间,单位秒,默认值:300s 调用 TXLivePusher 的 pausePush() 接口,会暂停摄像头采集并进入垫片推流状态,如果该状态一直保持,本字段用于指定垫片推流的最大持续时间,超过后即断开与云服务器的连接
touchFocus 是否允许点击曝光聚,焦默认值:NO
enableZoom 是否允许双指手势放大预览画面,默认值:NO
enableAudioPreview 是否开启耳返特效 【推荐取值】NO 开启耳返会消耗更多的 CPU,只有在主播带耳机唱歌的时候才有必要开启此功能。
frontCamera 是否前置摄像头
beatyStyle 美颜风格 光滑或者自然,0 光滑 1自然
beauty 美颜级别 取值范围0 - 9; 0表示关闭,1 - 9值越大,效果越明显
ruddiness 红润级别 取值范围0 - 9;0表示关闭,1 - 9值越大,效果越明显
whiteness 美白级别 取值范围0 - 9;0表示关闭,1 - 9值越大,效果越明显
statechange 推流中的状态回调用
filterFileName 滤镜图片 可取值有15种,见下面说明
homeOrientation 画面旋转方向 HOME_ORIENTATION_RIGHT = 0, ///< HOME 键在右边,横屏模式 HOME_ORIENTATION_DOWN = 1, ///< HOME 键在下面,手机直播中最常见的竖屏直播模式. HOME_ORIENTATION_LEFT = 2, ///< HOME 键在左边,横屏模式 HOME_ORIENTATION_UP = 3, ///< HOME 键在上边,竖屏直播(适合小米 MIX2)
renderRotation 角度值 rotation 取值为0 ,90,180,270(其他值无效),表示主播端摄像头预览视频的顺时针旋转角度。
filterFileName可取值如下:
bailan.png
chaotuo.png
chunzhen.png
fennen.png
huaijiu.png
landiao.png
langman.png
normal.png
qingliang.png
qingxin.png
rixi.png
weimei.png
white.png
xiangfen.png
yinghong.png
yuanqi.png
yunshang.png

tx-avplayer属性说明

属性名 属性值 备注
url 播放地址
playModel 播放模式 画面裁剪模式: 0 全屏 1 图像适应屏幕,保持画面完整
playRotation 设置画面方向 Ios : 0 HOME 键在右边,横屏模式 1 HOME 键在下面,手机直播中最常见的竖屏直播模式 2 键在左边,横屏模式 3 HOME 键在上边,竖屏直播 andriod: 0 竖屏 270 横屏模式
statechange 状态回调

tx-screenview属性说明

属性名 属性值 备注
pauseImg 暂停推流的图片支持pause_publish.jpg
statechange 推流状态回调

支持连麦,详情请看demo,不懂加群933785472提问

常见错误

为什么推流失败?

1.请检查你的Licence中的应用包名,和你测试的工程的包名是否一致

2.检查推流地址是否过期

3.检查网络是否正常

快速集成

1.按照图示填写你的测试推流证书,Package Name是安卓应用包名,Bundle Id是ios应用包名,红色方框为你需要填写的key和licenceURL按照图示配置推流证书,填写推流的包名

2.下载示例工程,找到live.nvue文件,在如下地方替换为你的key和licenceURL

3.准备推流地址,按图示生成推流地址

4.找到live.nvue文件,在如下地方替换为你的推流地址

5.生成自定义基座

以安卓为例其中顶部的安卓包名要与第一步的推流证书的PackageName一致,很重要

如果不会制作安卓证书参考http://www.appuploader.net/appuploader/onlinetools.php

一定要自己制作证书,使用DCloud公有证书会提示插件的方法找不到,重要的事情说三遍

6.运行自定义基座:

7.点击开始推流观察返回值如果ret为0表示推流成功

8.按照图示找到生成拉流地址的地方绑定域名

9.找到文件livepull.nvue在图示地方替换play.biggold.net.cn为你的播放的绑定域名,test01为你生成推流地址的streamId,观看推流

如果需要直播聊天功能参考插件:https://ext.dcloud.net.cn/plugin?id=2615

demo初步体验:

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

前往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 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},view,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},view,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);
               })

隐私、权限声明

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

"NSCameraUsageDescription", "NSMicrophoneUsageDescription" android.permission.RECORD_AUDIO android.permission.CAMERA

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

插件使用腾讯云sdk采集数据,详情参考: https://cloud.tencent.com/product/trtc

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

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