更新记录

1.6(2020-08-27)

1.增加视频一对一通话功能

1.5(2020-08-21)

添加libresolv.9.tbd 配制

1.4(2020-08-21)

更新打包失败问题,离线打包正常。

查看更多

平台兼容性

Android iOS
× 适用版本区间:9 - 14

原生插件通用使用流程:

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


腾讯云实时音视频插件

  1. 到腾讯云管理后台创建APPID并生成useSig->https://console.cloud.tencent.com
  2. 进入实时音频管理->https://console.cloud.tencent.com/trtc
  3. 创建appID ->复制useSig [https://console.cloud.tencent.com/trtc/app/detail/quickstart/1400384396]
  4. useSig生成规则参照:https://cloud.tencent.com/document/product/647/17275

    注意腾讯云实时语音Sdk并不是免费的
    注意腾讯云实时语音Sdk并不是免费的
    注意腾讯云实时语音Sdk并不是免费的
    重要的事情说三遍

    具体收费情况自行查看:https://cloud.tencent.com/product/trtc

注意事项

  1. 目前仅支持视频会议与视频一对一通话,使用方式与android大体相同(其它功能不提供,开发量太大了。)
  2. 打包时(不管是调试包还是正试包)需要在模块配制中钩选 '视频播放器'(因为IOS的SDK包中libVideo.a有对Masony的集成 而我的插件对Masony有依赖,所以需要此选项打勾,不然Masony依赖会找不到,打包是可以正常,但运行时会崩溃)

实例化组件

const txCall=uni.requireNativePlugin('HG-TxCall-IOS'); 
const modal = uni.requireNativePlugin('modal');

初始化

调用config(json)初始化

txCall.config(
{
"userId":this.$data.config.userid,//我的用户ID
"userSig":"eJyrVgrxCdYrSy1SslIy0jNQ0gHzM1NS80oy0zLBwoZQweKU7MSCgswUJStDEwMDYwtjM0sTiExqRUFmUSpQ3NTU1MjAwAAiWpKZCxazNDK0MDM0gaotzkwHmhngVJpU5FIcHFXmXWGiXewd6VFa7OTpZx4ZkZ3v7JmV6xwQGFHo7Wti4Rtpq1QLABfrL6w_",//UserSig的密钥
"nickName":"petter",//用户昵称
"useDefaultRandomAvatar":true,//是否使用随机头像
"userAvatar":"", //头像地址
"appid":1400383633, //腾讯云申请的appID
"baseUrl":"http://zf.hualin688.com/api/api/",
"api":"userMsgById"
}
,(ret) => {
modal.toast({
message: ret.code,
duration: 1.5
});
}
);

参数说明

参数名 说明 必要 类型 默认值
userId 当前用ID String
userSig 用户sig,根据用户名计算生成的加密串字符串 String
nickName 显示的名称 String
useDefaultRandomAvatar 是否使用随机头像 bool false
userAvatar 用户头像地址 String
appid 在腾讯云创建应用的appID int
baseUrl 接收邀请时获取拨号方信息的地址 String
api 获取拨号方信息的api String

特别说明

在接收到邀请时,如果有配制baseUrlapi 则会使用这两个参数结合拨号方用户id生成一个get请求 get请求拼接方式如下: 如:baseUrl = http://zf.hualin688.com/api/api/ api = userMsgById 则最后请求 连接为: http://zf.hualin688.com/api/api/userMsgById?id={拨号方id} 返回数据格式必须如下:


 {
"errorCode":0,
"errorMessage":"\u6210\u529f",
"data":{
      "avatar":"http:\/\/zf.hualin688.com\/uploads\/avatar\/20200721\/ca6bdd1e22b2e454d1d48b2945b202b4.jpg",
      "nickName":"\u54c8\u54c8"
      }
}

如果数据解析异常,或格式不对,将会使用默认头像 用户昵称会显示拨号方的id号

一对一语音,视频 (电话模式)

startCall(config);

    txCall.startCall({
        "callType":"audio",//audio表示语音,video表示视屏通话 (仅支持video)
        "mode":"call",//call表示通话 
        "roomId":1101,//会议ID 房间号不存在,则自动创建
        "targetInfo":{//目标信息
        "userId":this.$data.config.targetId,//被呼叫方的ID
        "nickName":"张三",//用户昵称
        "userAvatar":"", //头像地址 
        }
    }
        );

参数说明

参数名 说明 必要 类型 默认值
callType 类型(video) String audio
mode 模式(call) String call
roomId 会议ID int 无,在meeing模式下,必填
targetInfo 目标用户信息 object 无,在call模式下,必填

targetInfo

参数名 说明 必要 类型 默认值
userId 目标用户ID String
nickName 目标用户昵称 String
userAvatar 目标头像地址 String 无,在useDefaultRandomAvatar为true时,随机

多对多语音,视频 (会议模式)

startMeeting(config); 多对多视频

txCall.startMeeting({
"type":"video",//video表示视屏通话
"roomId":1101,//会议ID 房间号不存在,则自动创建
"roomName":'房间名称',
"role":'anchor',//anchor表示主持人 ,audience 表示参与者
userList:[{
id:"1",
name:'petter',
avatar:'',
},
{
id:"2",
name:'petter2',
avatar:'',
},
{
id:"3",
name:'petter3',
avatar:'',
}
]
},(ret) => {
modal.toast({
message: ret.code + ","+ret.message,
duration: 1.5
});
}
);

参数说明

参数名 说明 必要 类型 默认值
type 会议模式 String audio
roomId 会议ID String
defaultOpenAudio 默认是否上传语音 bool
defaultOpenVideo 默认是否上传视频 bool
role 加入会议角色 String anchor表示主持人 ,audience 表示参与者
userList 会议参与人员列表 Array

添加弹幕(只对视频会议)

txCall.sendDanmaku({
        avatar:'',
        nickName:'petter',
        content:'测试'+(Math.round(Math.random()*100))
    });

关闭挂断(退出会议,退出直播)

closeCall();

参数说明

此函数没有参数

异步回调说明json格式

{"code":-93,"message":""}

code值说明

代码 说明
-93 会话结束
-94 会话超时
-95 对方忙
-96 无应答
-97 对方会话取消
-98 被拒绝
-99 未提供会议ID
-100 未登录
-105 退出会议
-103 被邀请电话(视频)
-102 有用户离开
-101 有用户进入
-85 登出
-90 登录房间
-88 房间配制成功
-92 IM登录成功
other 其它代码,可参考返回的message说明

隐私、权限声明

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

1. 定位 2. 麦克风 3. 摄像头 4. 网络

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

插件本身不采集任何数据,插件使用的腾讯云SDK 请参考其官方说明:https://cloud.tencent.com/product/trtc

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

许可协议

作者未提供license.md

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