更新记录
2.0.6(2022-05-19)
本地视频录制的优化
2.0.5(2022-03-29)
修复ios 调用enterRoom函数加入房间失败的情况
查看更多
平台兼容性
Android |
iOS |
适用版本区间:4.4 - 11.0 支持CPU类型: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原生插件配置”->”云端插件“列表中删除该插件重新选择
TX-TRTCCloud
简介
TX-TRTCCloud插件致力于让开发者一键实现腾讯的推流功能,需要uni-app的开发者门阅读腾讯文档,然后根据我的文档就可以找到对应的方法,轻松实现推流逻辑
快速接入
1.请前往https://cloud.tencent.com/product/trtc申请账号
2.下载示例项目
3.使用自己的appId和appKey替换app.js中的appId和appKey

4.在App原生插件配置选择云端插件,打包自定义基座,然后体验demo(如果不会制作安卓证书参考http://www.appuploader.net/appuploader/onlinetools.php)




api说明
推流组件:TX-TRTCCloud
函数名称 |
说明 |
enterRoom |
加入房间,具体参数见下 |
参数名 |
说明 |
appid |
腾讯平台申请的appid(整数) |
appkey |
腾讯平台申请的appsecret(字符串) |
userSig |
可以不传appkey的签名,而是直接使用服务器签名好的userSig,这个和appkey二选其一(字符串) |
roomId |
房间号(整数) |
userId |
用户id(字符串) |
role |
用户角色:20 主播 21观众(整数) |
scene |
场景说明: 0视频聊天 1直播(整数) |
callback |
加入房间后的状态回调 |
strRoomId |
字符串房间号(新增)和roomId二者选其一 |
scene |
场景,可以取值为正数(1,2,3) |
privateMapKey |
用于权限控制的权限票据(选填),当您希望某个房间只能让特定的 userId 进入时,需要使用 privateMapKey 进行权限保护。 |
streamId |
用于指定在腾讯云直播平台上的 streamId(选填),设置之后,您可以在腾讯云直播 CDN 上通过标准拉流方案(FLV或HLS)播放该用户的音视频流 |
userDefineRecordId |
自动录制方案:需要在“https://console.cloud.tencent.com/trtc => 应用管理 => 云端录制配置”中开启云端录制(选填) |
函数名称 |
参数 |
说明 |
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, ///< 图像长边填满屏幕,短边区域会被填充黑色 |
函数名称 |
参数 |
说明 |
connectOtherRoom |
字符串 |
userId和房间id,参考demo跨房pk |
函数名称 |
参数 |
说明 |
disconnectOtherRoom |
无 |
停止跨房pk |
函数名称 |
参数 |
说明 |
setDefaultStreamRecvMode |
参数1: bool类型 参数2: bool类型 |
参数1 (是否自动接收音频数据,默认值:YES)参数2(是否自动接收视频数据,默认值:YES) |
函数名称 |
参数 |
说明 |
startPublishing |
参数1:String类型 参数2: 整数 |
参数1 (streamId 自定义流 ID)参数2(0, ///< 主画面视频流 1, ///< 小画面视频流 2, ///< 辅流(屏幕分享)) |
函数名称 |
参数 |
说明 |
stopPublishing |
无 |
停止向腾讯云的直播 CDN 推流 |
函数名称 |
参数 |
说明 |
setLocalViewMirror |
整数 |
0, ///< 前置摄像头镜像,后置摄像头不镜像 1, ///< 前后置摄像头画面均镜像 2, ///< 前后置摄像头画面均不镜像 |
函数名称 |
参数 |
说明 |
setAudioCaptureVolume |
整数 |
SDK 采集音量 音量大小,100为原始音量,范围是:[0 ~ 150],默认值为100 |
函数名称 |
参数 |
说明 |
getAudioCaptureVolume |
无 |
获取 SDK 采集音量 |
函数名称 |
参数 |
说明 |
setAudioPlayoutVolume |
整数 |
SDK 播放音量 音量大小,100为原始音量,范围是:[0 ~ 150],默认值为100 |
函数名称 |
参数 |
说明 |
getAudioPlayoutVolume |
无 |
获取 SDK 播放音量 |
函数名称 |
参数 |
说明 |
setRemoteAudioVolume |
参数一:String类型 (用户id), 参数二:整型 (音量大小[0 ~ 150]) |
获取 SDK 播放音量 |
函数名称 |
参数 |
说明 |
snapshotVideo |
{type:Int 类型 userId:String类型(用户id,不传截取自己)} |
trtcCloud.snapshotVideo({type:0},result=>{}) |
函数名称 |
参数 |
说明 |
setLocalRenderParams |
{rotation:Int类型(旋转角度),fillMode:Int类型(画面填充模式),mirrorType:Int类型(镜像模式)} |
本地图像的渲染设置 |
函数名称 |
参数 |
说明 |
setRemoteRenderParams |
{fillMode:Int类型(画面填充模式) ,userId:String类型(用户id), rotation:Int类型(旋转角度),mirrorType:Int类型(镜像模式)} |
远端图像的渲染设置 |
函数名称 |
参数 |
说明 |
setVideoEncoderParam |
{videoResolution:Int类型(视频分辨率) ,videoBitrate:Int类型(目标视频码率), videoFps:Int类型(视频采集帧率),resMode:Int类型(分辨率模式)} |
设置视频编码器相关参数 |
函数名称 |
参数 |
说明 |
setVideoEncoderMirror |
bool类型,true or false |
设置编码器输出的画面镜像模式 |
函数名称 |
参数 |
说明 |
setGSensorMode |
Int整型 |
设置重力感应的适应模式,聊天模式下可以关闭重力感应,设置为0 |
函数名称 |
参数 |
说明 |
startLocalRecording |
{path:"",recordType:2,interval:1000} |
path:录制文件路径,recordType: 0表示仅录制音频 1表示仅录制视频 2表示同时录制音频和视频 interval:录制信息更新频率 |
函数名称 |
参数 |
说明 |
stopLocalRecording |
无 |
停止录制 |
推流组件 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-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 自适应 |
streamId |
流id(字符串)如果开启旁路推流,此参数有用,用来指令旁路的拉流地址,最终观看的格式为:http://播放域名/live/[streamId].flv |
(可选) |
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 |
状态回调 |
(可选) |
TX-TRTCScreenView属性说明
属性名 |
属性值 |
备注 |
appId |
应用id(整数) |
(必填) |
appKey |
应用的签名key(字符串) |
与userSig二选其一 |
roomId |
房间号(整数) |
(必填) |
userId |
用户id (字符串) |
(必填) |
role |
用户角色 (整数) |
20 主播 21观众 (可选)默认20 |
scene |
场景 (整数) |
0视频聊天 1直播 (可选)可选 默认0 |
TX-TRTCScreenView方法说明
函数名称 |
参数 |
说明 |
startScreen |
{audio:1,camera:1,,key:value ....} key 为 TX-TRTCScreenView属性支持的key如roomId,userId,如果这些属性之前设置过,可以不用设置,audio为1开启声音,0关闭声音,camera为1启动视频预览界面,0关闭 |
开启录屏 |
stopScreen |
无 |
结束录屏 |
关于ios和安卓使用TX-TXTRTCCloud录屏的处理
函数名称 |
参数 |
说明 |
startScreenCapture |
{appGroup:xxxx,enableAdjustRes:false,videoResolution:108,resMode:1,videoFps:15,videoBitrate:500} |
appGroup:ios使用,可以不填写,安卓直接忽略,enableAdjustRes,videoResolution,resMode,videoFps,videoBitrate都是可选,可以不填写 |
stopScreenCapture |
无 |
停止录屏 |
pauseScreenCapture |
2个参数 |
传参数({},result=>{}) |
resumeScreenCapture |
2个参数 |
传参数({},result=>{}) |
ios需要应用扩展才能使用录屏功能如果不需要ios的录屏功能请忽略以下步骤
1.按图示创建文件夹和文件具体资源群资源里下载,把nativeplugins放到与pages同级目录

2.修改文件
修改identifier为你的应用id,如果你ios工程的包名为com.test.ios,那么你这里应创建的应用id为com.test.ios.xxx类型,然后填写到此处
修改profile为你所创建的应用id对应的profile证书,命名类型为ios-xxxxxx.mobileprovision
修改CFBundleDisplayName为应用扩展的名字,它将显示在此处

3.下载插件例子工程进入screenshare.nvue点击开始录屏
4.长按录屏按钮弹出上图的界面,点击Start Broadcasrt开始录屏
视频分辨率说明
常量 |
描述 |
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文件