全量化低代码SDK
目录
简介
527meeting包括一套技术平台和多种终端SDK,用于简化WebRTC视频通讯开发,并同时提高了WebRTC的稳定性,也增加更多易用的功能。
使用527meeting,开发者可以在Web端和移动端,通过较简单的直接调用,将视频通讯功能嵌入任何软件中。还可以进一步对通讯的连接、效果、录制等进行编程控制。527meeting控制台的图形界面,即可容易直观地调试通讯状况,查看统计信息,分配管理权限。
总之,527meeting将音视频实时通讯中复杂的底层连接和优化工作封装到云端和SDK中。这样一来,开发者既能享受WebRTC本身高效、低价、无插件、点对点等优秀特性,又可以大大简化开发,避免将珍贵的时间和人力投入到无休止的与最新WebRTC标准对接、适配和质量调试的过程中。未来还能逐步享受到527meeting 平台更加全面易用的功能。为了更好的对接,我们编写RTCPeer.js,以Javascript类包的形式提供对接接口,并提供了原型Demo,希望能够更好的提供我们的服务。
RTCPeer接口
RTCPeer.js 是以jquery为基础包的类包,提供基于WebRTC技术的音视频相关功能接口,通过RTCPeer.js您可以轻松构建一个音视频通读。在使用RTCPeer时,我们首先要新建RTCPeer实例,然后通过RTCPeer实例来调用音视频相关功能接口。1.创建RTCPeer实例
- 概述
- 参数
参数 | 类型 | 是否必选 | 参数说明 |
host | String | M | 服务器地址 |
relayServer | String | M | Relay 服务器地址,域名+端口号(域名不要加https) |
socket | Boolean | O | rue 支持呼叫功能(和控制服务器保持socket连接),false不支持, 默认不保持连接,使用时才连接 |
nginx | Boolean | O | 是否使用nginx和流媒体连接 |
- 示例
window.rtcPeer = new RTCPeer({ mode: 'pc', host: 'https://shipinhuiyi.hedait.cn/app',
relayServer: "shipinhuiyi.hedait.cn:30001" });
2.登录(rtcPeer.login)
2.1概述
用户登录接口
2.2参数
参数 | 类型 | 是否必选 | 参数说明 |
name | String | M | 账号 |
password | String | M | 密码 |
2.3返回参数
参数 | 类型 | 参数说明 |
user | Object | 用户信息 |
company | Object | 公司信息 |
result | number | 0:成功,1:用户名密码不正确 |
2.4示例
rtcPeer.login({
name: username,
password: password
}).then(function(d) {
$("#account").text(d.user.name);
});
3.登出(rtcPeer.logout)
3.1概述
用户登录接口
3.2参数
参数 | 类型 | 是否必选 | 参数说明 |
userId | number | M | 用户唯一标识 |
3.3返回参数
参数 | 类型 | 参数说明 |
result | number | 0:退出成功,1:退出失败 |
3.4示例
rtcPeer.logout({ userId: rtcPeer.getCurrentUser().id }).then(function(d) {
showLogin(true);
});
4.当前用户(rtcPeer. getCurrentUser)
4.1概述
登录后,获取当前用户信息
4.2参数
无
4.3返回参数
参数 | 类型 | 参数说明 |
user | Object | 当前用户对象 |
4.4示例
var currentUser = rtcPeer.getCurrentUser();
5.当前公司(rtcPeer. getCurrentCompany)
5.1概述
登录后,获取当前用户所在公司信息
5.2参数
无
5.3返回参数
参数 | 类型 | 参数说明 |
company | Object | 当前用户所在公司信息 |
5.4示例
var currentOrg = rtcPeer. getCurrentCompany();
6.查询房间(rtcPeer. getRoomById)
6.1概述
根据房间唯一标识查询房间信息
6.2参数
参数 | 类型 | 是否必选 | 参数说明 |
roomId | number | M | 房间唯一标识码 |
6.3返回参数
参数 | 类型 | 参数说明 |
room | Object | 虚拟房间信息 |
6.4示例
var room=null;
rtcPeer. getRoomById ({
roomId:1012
}).then(function(d){
room=d.room
});
7.创建房间(rtcPeer. createRoom)
7.1概述
创建虚拟房间
7.2参数
参数 | 类型 | 是否必选 | 参数说明 |
roomtype | number | M | 房间类型 1音频会议 2视频会议 3视频回传 |
name | String | M | 房间名称 |
desc | String | M | 房间信息描述 |
pictureuri | String | M | 房间Logo |
definition | String | M | 清晰度 1080p 720p 480p 240p |
numberLimit | number | M | 房间人数上限 |
isPublic | Boolean | M | ture公共会议室 false 私有会议室 |
7.3返回参数
参数 | 类型 | 参数说明 |
number | 虚拟房间唯一标识 | |
result | number | 0 成功 1失败 |
7.4示例
var req = {
isPublic: false,
roomtype: 2,
name: 'jiangshui',
desc: "test",
definition: '720p',
numberLimit: 100
}
rtcPeer.createRoom(req).then(function(data) {
Load.hide();
if (data.result == 0) {
$location.url("room");
} else {
$scope.message = $translate.instant("message_037");
}
apply($scope);
});
8.修改房间(rtcPeer. upadteRoom)
8.1概述
修改虚拟房间
8.2参数
参数 | 类型 | 是否必选 | 参数说明 |
roomType | number | M | 房间类型 1音频会议 2视频会议 3视频回传 |
roomId | number | M | 虚拟房间唯一标识 |
name | String | M | 房间名称 |
desc | String | M | 房间信息描述 |
pictureuri | String | M | 房间Logo |
definition | String | M | 清晰度 1080p 720p 480p 240p |
numberLimit | number | M | 房间人数上限 |
isPublic | Boolean | M | ture公共会议室 false 私有会议室 |
8.3返回参数
参数 | 类型 | 参数说明 |
roomId | number | 虚拟房间唯一标识 |
result | number | 0 成功 1失败 |
8.4示例
var req = {
roomId: room.id,
isPublic: $scope.rightIndex == 1,
roomtype: $scope.typeObj.type,
name: $scope.nameTxt,
desc: $scope.descTxt,
pictureuri: $scope.logo,
definition: $scope.definition.value,
numberLimit: $scope.numberTxt * 1
}
rtcPeer.updateRoom(req).then(function(data) {
Load.hide();
if (data.result == 0) {
Session.setItem('roomdetailid', data.roomId);
$location.url("roomdetail");
} else {
$scope.message = $translate.instant("message_037");
}
apply($scope);
});
9.删除房间(rtcPeer. deleteRoom)
9.1概述
删除虚拟房间
9.1概述
根据房间唯一标识查询房间信息
9.2参数
参数 | 类型 | 是否必选 | 参数说明 |
roomId | number | M | 房间唯一标识码 |
9.3返回参数
参数 | 类型 | 参数说明 |
result | number | 0 成功 1失败 |
9.4示例
rtcPeer.deleteRoom({
roomId: $scope.room.id
}).then(function(data) {
Load.hide();
if (data.result == 0) {
$location.url("room");
} else {
note($translate.instant("message_024"), false);
}
apply($scope);
});
10.创建临时房间(rtcPeer.newTempRoom)
10.1概述
创建临时房间
10.2参数
参数 | 类型 | 是否必选 | 参数说明 |
name | String | M | 房间名称 |
orgId | number | M | 公司唯一标识,私有部署可传2 |
userId | number | M | 用户唯一标识,私有部署可传2 |
roomtype | Long | M | 房间类型 1音频会议 2视频会议 3 远程培训 |
name | String | M | 房间名称 |
desc | String | O | 房间信息描述 |
pictureuri | String | O | 房间Logo |
definition | String | O | 清晰度 1080p 720p 480p 240p,不传默认480p |
numberLimit | number | M | 房间人数上限 |
isPublic | Boolean | M | ture公共会议室 false 私有会议室 |
10.3返回
参数 | 类型 | 参数说明 |
result | Long | 0成功 |
roomId | Long | 会议室房间唯一标识 |
10.4示例
rtcPeer.newTempRoom({
"roomtype": 2,
"numberLimit": 200,
"name": "Test Room",
"userId":2,
"orgId":2,
"isPublic":false
}).then(function(d){
console.log(d)
})
11.修改房间密码(rtcPeer. modifyRoomPwd)
11.1概述
修改房间密码
11.2参数
参数 | 类型 | 是否必选 | 参数说明 |
roomId | number | M | 会议室房间唯一标识 |
password | String | M | 密码 |
11.3返回
参数 | 类型 | 参数说明 |
result | Long | 0成功 |
11.4示例
rtcPeer.modifyRoomPwd({
roomId:599,
password:"1234"}).then(function(d){
console.log(d)
})
12.检查房间密码(rtcPeer. checkRoomPwd)
12.1概述
检查房间密码是否正确
12.2参数
参数 | 类型 | 是否必选 | 参数说明 |
roomId | number | M | 会议室房间唯一标识 |
password | String | M | 密码 |
12.3返回
参数 | 类型 | 参数说明 |
result | Long | 1成功0 失败 |
12.4示例
rtcPeer.checkRoomPwd({
roomId:599,
password:"1234"}).then(function(d){
console.log(d)
})
13.检查房间是否有密码(rtcPeer. checkRoomHasPwd)
13.1概述
检查房间密码是否有密码
13.2参数
参数 | 类型 | 是否必选 | 参数说明 |
roomId | number | M | 会议室房间唯一标识 |
13.3返回
参数 | 类型 | 参数说明 |
isHasPwd | Boolean | true: 有密码; flase:没有密码 |
13.4示例
rtcPeer.checkRoomHasPwd({
roomId:599
}).then(function(d){
console.log(d)
})
14.添加房间成员(rtcPeer. addRoomMan)
14.1概述
添加私有房间成员,添加到房间里的成员可以通过房间列表查询到此房间。
14.2参数
参数 | 类型 | 是否必选 | 参数说明 |
roomId | number | M | 会议室房间唯一标识 |
userId | number | M | 用户唯一标识 |
14.3返回
参数 | 类型 | 参数说明 |
result | Long | 0成功 |
14.4示例
rtcPeer.addRoomMan({roomId:9,userId:8})
15.删除房间成员(rtcPeer. deleteRoomMen)
15.1概述
将指定成员从私有房间中移除。
15.2参数
参数 | 类型 | 是否必选 | 参数说明 |
roomId | number | M | 会议室房间唯一标识 |
moderatorId | number | M | 用户唯一标识 |
15.3返回
参数 | 类型 | 参数说明 |
result | Long | 0成功 |
15.4示例
rtcPeer.deleteRoomMen({roomId:81,moderatorId:138})
16.查询房间成员列表(rtcPeer. queryRoomMen)
16.1概述
根据房间唯本标识码查询房间内成员。
16.2参数
参数 | 类型 | 是否必选 | 参数说明 |
roomId | number | M | 会议室房间唯一标识 |
16.3返回
参数 | 类型 | 参数说明 |
result | Long | 0成功 |
moderators | Array | moderator对象 |
16.4示例
rtcPeer.queryRoomMen({roomId:8}).then(function(d){console.log(d)})
17.查询房间列表(rtcPeer. queryMyRooms)
17.1概述
查询当前用户有权限进入的房间列表
17.2参数
无
17.3返回参数
参数 | 类型 | 参数说明 |
rooms | Array | 虚拟房间列表 |
17.4示例
var rooms=[];
rtcPeer. queryRoomsUniq().then(function(d){
rooms=d.rooms
});
18.检查房间是否正在使用(rtcPeer. checkActiveRoom)
18.1概述
检查房间是正在使用
18.2参数
参数 | 类型 | 是否必选 | 参数说明 |
roomId | number | M | 房间唯一标识码 |
18.3返回参数
参数 | 类型 | 参数说明 |
result | number | 0 无使用 1正在使用中 |
18.4示例
rtcPeer.checkActiveRoom({
roomId: $scope.room.id * 1
}).then(function(data) {
Load.hide();
if (data.result == 0) {
Session.setItem('room', $scope.room);
$location.url("editroom");
} else {
note($translate.instant("message_107"), false);
}
apply($scope);
});
19.创建预约会议(rtcPeer. createAppointment)
19.1概述
创建指定时间的会议记录,可以根据会议相关信息进入虚拟房间视频通信。
19.2参数
参数 | 类型 | 是否必选 | 参数说明 |
name | String | O | 会议名称,默认‘即时会议’ |
description | String | O | 描述 |
type | Number | O | 1:音频会议 2网络会议 3在线培训 |
startTime | Date | O | 会议开始时间,默认接口调用时间 |
endTime | Date | O | 会议结束时间,默认开始时间+1小时 |
members | Array | O | 邀请成员,数组内成员格式为字符串, 格式如下: item.memberId + “,” + item.name + “, ,” + item.email + “,” + item.id + “,Etc/GMT+8,” + item.role 注:memberId 默认为0, id为视频系统的用户id, 可以不传 name:用户昵称 email:邮件,可以为null 角色role: 会议场模式:1是主持人 2普通参会人员; 培训模式:1是主持人 2是讲师,3普通参会人员,建议只邀请主持人和讲师 |
topics | Array | O | 网络会议 子议题 数组内的Objet格式: { “title”:“议题”, “content”: “具体内容” } |
19.3返回参数
参数 | 类型 | 参数说明 |
roomId | number | 会议对应房间的唯一标识码 |
meetingId | number | 会议唯一标识码 |
19.4示例
rtcPeer.createAppointment({name:"test",description:'abc',type:2})
.then(function(d){console.log(d)})
20.查询会议(rtcPeer. queryAppointmentById)
20.1概述
根据会议唯一标识码查询会议信息。
20.2参数
参数 | 类型 | 是否必选 | 参数说明 |
meetingId | Number | M | 会议唯一标识码 |
20.3返回参数
参数 | 类型 | 参数说明 |
meeting | Object | 会议信息 |
members | Array | 邀请成员,数组内成员格式为对象, 格式如下: {“codeId”: “test” , “name”:“章三”,“email”:test@qq.com”,”role”:”2”,id:1} 注: codeId 为用户对接的唯一标示 id为视频系统的用户id, name:用户昵称 email:邮件, 角色role: 可以不传 默认普通参会人员 会议场模式:1是主持人 2普通参会人员; 培训模式:1是主持人 2是讲师,3普通参会人员,建议只邀请主持人和讲师 |
topics | Array | 网络会议 子议题 数组内的Objet格式: { “title”:“议题”, “content”: “具体内容” } |
20.4示例
var meeting=null;
rtcPeer. queryAppointmentById ({meetingId:1012})
.then(function(d){
meeting =d.meeting;
});
21.修改会议(rtcPeer. updateAppointment)
21.1概述
更新会议相关信息。
21.2参数
参数 | 类型 | 是否必选 | 参数说明 |
name | String | M | 会议名称,默认‘即时会议’ |
description | String | O | 描述 |
type | Number | M | 1:音频会议 2网络会议 3在线培训 |
startTime | Date | M | 会议开始时间,默认接口调用时间 |
endTime | Date | M | 会议结束时间,默认开始时间+1小时 |
meetingId | number | M | 会议唯一标识码 |
members | Array | O | 邀请成员,数组内成员格式为String, 格式如下: “memberId,name,email,id, Etc/GMT+8,role” 注:memberId 默认为0, id为用户的唯一标识码id, name:用户昵称 email:邮件,可以为null 角色role: 会议场模式:1是主持人 2普通参会人员; 培训模式:1是主持人 2是讲师,3普通参付人员,建议只邀请主持人和讲师 |
topics | Array | O | 网络会议 子议题 数组内的Objet格式: { “title”:“议题”, “content”: “具体内容” } |
21.3返回参数
参数 | 类型 | 参数说明 |
roomId | number | 会议对应房间的唯一标识码 |
meetingId | number | 会议唯一标识码 |
21.4示例
rtcPeer.updateAppointment({
name:"testabc",
description:'abceee',
type:1,
meetingId:255270}).then(function(d){
console.log(d)
})
22.删除会议(rtcPeer. deleteAppointment)
22.1概述
根据会议唯一标识码删除指定会议。
22.2参数
参数 | 类型 | 是否必选 | 参数说明 |
type | Number | O | 1:音频会议 2网络会议 3在线培训 |
meetingId | number | M | 会议唯一标识码 |
22.3返回参数
参数 | 类型 | 参数说明 |
result | number | 0 删除成功 2正在使用中,不能删除 |
23.查询会议列表(rtcPeer. queryAppointments)
23.1概述
根据时间段查询会议列表。
23.2参数
参数 | 类型 | 是否必选 | 参数说明 |
startTime | Date | O | 查询会议开始时间 |
endTime | Date | O | 查询会议结束时间,默认开始时间+24*3小时 |
pageNo | number | O | 页码 从0开始 |
pageSize | number | O | 一页数据量 |
23.3返回参数
参数 | 类型 | 参数说明 |
meetings | Array | 会议列表 |
23.4示例
rtcPeer.queryAppointments({}).then(function(d){console.log(d)})
24.查询参会信息(rtcPeer. getRoomByInviteCode)
24.1概述
根据会议唯一标识码或随机码查询会议信息。
24.2参数
参数 | 类型 | 是否必选 | 参数说明 |
code | Number | M | 会议唯一标识码 |
inviteCode | Number | O | 随机码,随码入会,有值用随机码,没值用code |
24.3返回参数
参数 | 类型 | 参数说明 |
result | number | 0成功,3未开始,5没有查询到,其它无效会议号 |
room | Object | 当前会议所在虚拟房间信息 |
meeting | Object | 当前会议信息 |
24.4示例
rtcPeer.getRoomByInviteCode({
code: +code,
//inviteCode: +code
}).then(function(d) {
if (d.result == 0) {
_enterRoom(d.room);
} else if (d.result == 3) {
//当前会议还未开始,请稍后再打开链接!
//var minutes = Math.floor(d.milliseconds / (1000 * 60));
$("#message").text("当前会议还未开始,请稍后再打开链接!");
} else {
//"当前会议链接已失效!",
$("#message").text("当前会议链接已失效!");
}
});
25.查询房间会议记录列表(rtcPeer. queryAppointmentsByRoomId)
25.1概述
根据房间唯一标识码查询对应的会议列表。
25.2参数
参数 | 类型 | 是否必选 | 参数说明 |
roomId | number | M | 房间唯一标识码 |
pageNo | number | M | 页码 从0开始 |
pageSize | number | M | 一页数据量 |
25.3返回参数
参数 | 类型 | 参数说明 |
resultList | Array | 会议列表 |
25.4示例
rtcPeer.queryAppointmentsByRoomId({
roomId: roomId * 1,
pageNo: (pageNo - 1),
pageSize: 10
}).then(function(data) {
$scope.roomLogs = data.resultList;
showTotalCount(data.totalCount || 0)
if (data.totalPage > 1) {
$scope.totalPage = data.totalPage;
var pageList = [];
for (var i = 1; i <= data.totalPage; i++) {
pageList.push(i);
};
$scope.pageList = pageList;
} else {
$scope.totalPage = 1;
$scope.pageList = [1];
}
apply($scope);
})
26.查询用户列表(rtcPeer. searchUserByOrgId)
26.1概述
根据公司唯一标识码查询用户列表。
26.2参数
参数 | 类型 | 是否必选 | 参数说明 |
orgId | number | M | 公司唯一标识码 |
userId | number | M | 用户唯一标识 |
pageNo | number | M | 页码 从0开始 |
pageSize | number | M | 一页数据量 |
26.3返回参数
参数 | 类型 | 参数说明 |
users | Array | 用户列表 |
totalCount | number | 数据总数 |
totalPage | number | 数据总页数 |
26.4示例
rtcPeer.searchUserByOrgId({
orgId:2,
userId:6,
pageNo: 0,
pageSize: 12,}).then(function(d){
console.log(d)
})
27.添加用户(rtcPeer. addUser)
27.1概述
将用户添加到指定公司。
27.2参数
参数 | 类型 | 是否必选 | 参数说明 |
orgId | number | M | 公司唯一标识码 |
account | number | M | 用户帐号 |
password | String | M | 默认密码 |
level | number | M | 用户级别,4:普通用户,5:参会用户 |
name | String | M | 用户名称 |
27.3返回参数
参数 | 类型 | 参数说明 |
result | number | 0 成功1 账号重复 |
27.4示例
rtcPeer.addUser({
account:'jiangshui123456',
password:'123456',
email:'12345@qq.com',
orgId:2,level:2,
name:'jiangabc'}).then(function(d){
console.log(d)
})
28.修改用户(rtcPeer.modifyUser)
28.1概述
将用户添加到指定公司。
28.2参数
参数 | 类型 | 是否必选 | 参数说明 |
userId | number | M | 用户唯一标识码 |
phone | String | O | 手机号 |
address | String | O | 地址 |
job | String | O | 用户级别,4:普通用户,5:参会用户 |
name | String | O | 用户名称 |
companyname | String | O | 对应的所在公司 |
28.3返回参数
参数 | 类型 | 参数说明 |
result | number | 0 成功1 账号重复 |
user | Object | 更新后的用户对象 |
28.4示例
rtcPeer.modfiyUser({
userId:2
name:'jiangshui123456',
job:'123456',
address:'12345',
phone:’15012345678’,
name:'jiangabc'}).then(function(d){
console.log(d)
})
29.删除用户(rtcPeer. deleteUser)
29.1概述
根据用户唯一标识码删除用户。
29.2参数
参数 | 类型 | 是否必选 | 参数说明 |
orgId | number | M | 公司唯一标识码 |
userId | number | M | 用户唯一标识 |
29.3返回参数
参数 | 类型 | 参数说明 |
result | number | 0 成功1 账号重复 |
29.4示例
rtcPeer.deleteUser({
orgId:2,
userId:84
}).then(function(d){
console.log(d)
})
30.查询流媒体当前状态(rtcPeer. getMediaState)
30.1概述
查询流媒体当前状态。
30.2参数
无
30.3返回参数
参数 | 类型 | 参数说明 |
object | Array | 多台流媒体数组 |
数组中的media参数说明
参数 | 类型 | 参数说明 |
mediaAddress | String | 流媒体地址 |
mediaId | number | 流媒体对应的唯一标识 |
mediaName | String | 流媒体名称 |
participants | number | 参会总人员 |
roomSize | String | 会议室数量 |
status | number | 0正常,其它:不正常 |
30.4示例
rtcPeer.getMediaState().then(function(d){
})
Received data::
[{…}]
0:
. mediaAddress: "huawei.527meeting.com"
. mediaId: 1
. mediaName: "huawei"
. participants: 9
. roomSize: "2"
. status: 0
31.录制查询(rtcPeer.getRecordByRange)
31.1概述
网络录制查询接口
31.2参数
参数 | 类型 | 是否必选 | 参数说明 |
orgId | number | M | 公司唯一标识码 |
userId | number | O | 用户唯一标识,传值查询当前用户的录制,不传查询公司下所有录制 |
name | String | O | 模糊查询 |
startDate | String | O | 查询会议开始时间,传入UTC时间格式 “yyyyMMddHHmmss” |
endDate | String | O | 查询会议结束时间,传入UTC时间格式 “yyyyMMddHHmmss” |
pageNo | number | M | 页码 从0开始 |
pageSize | number | M | 一页数据量 |
31.3返回参数
参数 | 类型 | 参数说明 |
recordList | Array | 录制数据 |
totalPage | number | 总页数 |
31.4示例
rtcPeer.getRecordByRange({userId:2,
name:"",
pageNo:0
,pageSize: 10}).then(function(d){console.log(d)})
注:域名+’/upload/’+record.comment
32.删除录制(rtcPeer.deleteRecords)
32.1概述
删除录制接口
32.2参数
参数 | 类型 | 是否必选 | 参数说明 |
recordIds | Array | M | 录制Id数组 |
32.3返回参数
参数 | 类型 | 参数说明 |
result | number | 0成功 1失败 |
32.4示例
rtcPeer.deleteRecords({
recordIds: records
}).then(function(data) {
}
33. 创建即时会议(rtcPeer.instantAppointment
33.1概述
创建即使会议
33.2参数
参数 | 类型 | 是否必选 | 参数说明 |
name | String | M | 会议名称 |
orgId | number | M | 公司唯一标识,私有部署可传2 |
startTime | String | M | 会议开始时间 ,传入UTC时间格式 “yyyyMMddHHmmss” |
endTime | String | M | 会议结束时间 ,传入UTC时间格式“yyyyMMddHHmmss” |
type | number | M | 房间类型 1音频会议 2视频会议 3 远程培训 |
isPublic | Boolean | M | ture公共会议室 false 私有会议室 |
33.3返回参数
参数 | 类型 | 参数说明 |
meetingId | number | 会议唯一标识 |
roomId | number | 对应的房间id |
result | number | 0成功 1失败 |
33.4示例
rtcPeer.instantAppointment({
"type": 2,
"name": "Test Room",
"userId":2,
"orgId":2,
"isPublic":false
}).then(function(d){
console.log(d)
})
Webrtc音视交互功能
针对音视频互通功能需求,提示围绕音视频相关的功能接口,使用开发用户能够方便快捷的搭建音视频会议。
1.进入会议(rtcPeer.meeting. enter)
1.1概述
进入会议房间
1.2参数
参数 | 类型 | 是否必选 | 参数说明 |
userId | Object | M | 用户唯一标识 |
roomId | number | M | 会议虚拟房间唯一标识 |
roomType | number | M | 1.音频会议 2视频会议 3在线培训 |
username | String | O | 用户名称,游客时使用 |
1.3返回参数
参数 | 类型 | 参数说明 |
client | Object | 虚拟参会人员信息,当前用户client |
members | Array | 虚拟参会人员列表,不包含当前用户client |
room | Object | 当前会议所在虚拟房间信息 |
1.4示例
rtcPeer.meeting.enter({
roomId: tempRoom.id,
roomType: tempRoom.roomType,
maxNumber: 4,
codec: currentCodec
}).then(function(d) {
room = d.room;
myClient = d.client;
clientList.push(d.client);
clientList = clientList.concat(d.members);
//播放自己的视频
rtcPeer.meeting.publish({
audio: true,
video: true,
domId: 'local'
});
……
}, function(d) {
console.error("createMeeting::: " + d);
});
});
2.退出会议(rtcPeer.meeting. exit)
2.1概述
退出会议
2.2参数
无
2.3返回参数
参数 | 类型 | 参数说明 |
result | number | 0:成功,1:失败 |
2.4示例
meeting.exit().then(function() {
showVideoArea(false);
$('#local').empty();
$('#network').empty();
});
3.结束会议(rtcPeer.meeting. finish)
3.1概述
所有参会人员全部退出会议。
3.2参数
无
3.3返回参数
参数 | 类型 | 参数说明 |
result | number | 0:成功,1:失败 |
3.4监听事件
参数 | 类型 | 是否必选 | 参数说明 |
onFinish | String | M | 会议结束消息事件 |
事件获取数据
参数 | 类型 | 参数说明 |
userId | number | 调用finish操作的用户唯一标识 |
3.5示例
rtcPeer.meeting. finish ().then(function() {
showVideoArea(false);
$('#local').empty();
$('#network').empty();
});
4.推流到流媒体(rtcPeer.meeting. publish)
4.1概述
创建通道和流媒体建立连接,使用本地的摄像头和麦克风获取音视频流,并将本地流推送到流媒体服务器上。Html video 标签要加autoplay muted,html要增加audio标签作为声音外放,如:(下方)不加自动创建
<audio id="mixedaudio" autoplay="autoplay"></audio>
4.2参数
参数 | 类型 | 是否必选 | 参数说明 |
audio | Boolean | M | 本地麦克风是否使用获取声音 |
video | Boolean | M | 本地视频是否使用获取视频 |
useVideo | Boolean | O | 是否使用摄像头,如果不使用摄像头,video属性设置为false,默认true |
localTag | String | O | 本地视频挂载的Dom(Video tag id) |
remoteTag | String | O | 远端视频挂载的Dom(Video tag id),展示时是声控切换流(默认流) |
definition | String | O | 清晰度 1080p 720p 480p 240p |
maxFrameRate | number | O | 最大帧率 ,范围1~30 |
minFrameRate | number | O | 最小帧率,范围1~30,注:minFrameRate<=maxFrameRate |
callback | Function | O | 成功后回调 |
4.3返回参数
参数 | 类型 | 参数说明 |
getBitrate | Function | 获取当前通道码率和帧率 |
client | object | 虚拟参会方 |
4.4示例
Html:
<audio id="mixedaudio" autoplay playsinline></audio>
<video id="video_0" autoplay muted></video>
<video id="remote" autoplay muted></video>
Js code:
rtcPeer.meeting.publish({
audio: true,
video: true,
localTag: 'video_0',
remoteTag: 'remote',
});
5.播放远端视频(rtcPeer.meeting. play)
5.1概述
播放其它参会议成员的视频。如:播放A的视频,必须A已经打开自己的本地视频
5.2参数
参数 | 类型 | 是否必选 | 参数说明 |
client | Object | M | 用户参会的虚拟身份 |
domId | String | M | 视频挂载的Dom(Video tag id) |
callback | Function | O | 播放成功回调 |
5.3返回参数
参数 | 类型 | 参数说明 |
getBitrate | Function | 获取当前通道码率和帧率 |
client | object | 虚拟参会方 |
5.4示例
meeting.play({
client: data.client,
domId: 'network',
callback: function(option) {
$('#network').append('<div class="name-tag" id="client' + option.client.id + '"><span>' + option.client.name + '</span></div>');
}
})
6.关闭播放远端视频(rtcPeer.meeting. closePlay)
6.1概述
停止播放其它参会议成员的视频。
6.2参数
参数 | 类型 | 是否必选 | 参数说明 |
object | Object | M | 用户参会的虚拟身份 |
callback | Function | O | 停止播放成功回调 |
6.3示例
rtcPeer.meeting.stopPlay({
client: data.client,
callback: function(option) {
$('#client' + option.client.id).remove();
}
});
7.打开或关闭本地视频(rtcPeer.meeting. updateVideo)
7.1概述
打开或关闭本地视频。
7.2参数
参数 | 类型 | 是否必选 | 参数说明 |
client | Object | M | 用户参会的虚拟身份 |
video | Boolean | M | true :打开视频 false:关闭视频 |
callback | Function | O | 回调函数 |
7.3示例
meeting.updateVideoMode({
video: isOpenVideo,
client: myClient,
callback: function(myClient) {}
});
8.打开或关闭本地麦克风(meeting. updateMute)
8.1概述
打开或关闭本地麦克风。
8.2参数
参数 | 类型 | 是否必选 | 参数说明 |
isMute | Boolean | M | false:打开麦克风 true:关闭麦克风 |
8.3示例
rtcPeer.meeting. updateAudioMode (isAudio);
9.指定用户静音消息(rtcPeer.meeting. muteMsg)
9.1概述
发送关闭或打开指定用户的麦克风消息,指定用户接收到消息后,将自己静音或取消静音。
9.2参数
参数 | 类型 | 是否必选 | 参数说明 |
userId | number | M | Client中的id值 |
roomId | number | M | 当前会议房间的唯一标识(room id) |
isMute | Boolean | M | false :打开麦克风 true:关闭麦克风 |
super | String | O | ‘fromSuper’ 主持人发送 |
9.3监听事件
参数 | 类型 | 是否必选 | 参数说明 |
onMute | String | M | 静音消息事件 |
事件获取数据
参数 | 类型 | 是否必选 | 参数说明 |
userId | number | M | Client中的id值 |
roomId | number | M | 当前会议房间的唯一标识(room id) |
isMute | Boolean | M | false :打开麦克风 true:关闭麦克风 |
super | String | O | ‘fromSuper’ 主持人发送 |
9.4示例
rtcPeer.meeting. muteMsg ({
userId:1234,
roomId:1008,
isMute:true,
super: "fromSuper"
});
//事件监听
//接收到主持人的是否禁音指令,执行对应操作
rtcPeer.off("onMute ").on("onMute ", function(data) {
if (room.id == data.roomId) {
if (data.userId == myClient.id && data.fromSuper) {
rtcPeer.meeting. updateAudioMode (!data.isMute;);
}
}
});
10.全体静音消息(rtcPeer.meeting. muteAll)
10.1概述
主持人发送全体静音消息,用户接收到消息后,将自己静音。
10.2参数
参数 | 类型 | 是否必选 | 参数说明 |
userId | number | M | Client中的id值 |
roomId | number | M | 当前会议房间的唯一标识(room id) |
isMute | Boolean | M | false:打开麦克风 true:关闭麦克风 |
10.3监听事件
参数 | 类型 | 是否必选 | 参数说明 |
onMuteAll | String | M | 全体静音消息事件 |
事件获取数据
参数 | 类型 | 是否必选 | 参数说明 |
userId | number | M | Client中的id值 |
roomId | number | M | 当前会议房间的唯一标识(room id) |
isMute | Boolean | M | false:打开麦克风 true:关闭麦克风 |
10.4示例
meeting. muteAll ({
userId:1234,
roomId:1008,
isMute:true
});
//事件监听
//接收到全体静音事件,不是主持人的用户将执行关闭麦克风操作
rtcPeer.off("onMuteAll").on("onMuteAll", function(data) {
if (room.id == data.roomId) {
meeting.updateMute (data.isMute);
}
11.踢人消息(rtcPeer.meeting. kickOut)
11.1概述
发送指定用户退出会议室消息,指定用户收到消息后,调用退出会议室方法,退出会议室。
11.2参数
参数 | 类型 | 是否必选 | 参数说明 |
userId | number | M | Client中的id值 |
roomId | number | M | 当前会议房间的唯一标识(room id) |
11.3监听事件
参数 | 类型 | 是否必选 | 参数说明 |
tiren | String | M | 踢人消息事件 |
事件获取数据
参数 | 类型 | 是否必选 | 参数说明 |
userId | number | M | Client中的id值 |
roomId | number | M | 当前会议房间的唯一标识(room id) |
11.4示例
rtcPeer.meeting. kickOut ({
userId:1234,
roomId:1008
});
//事件监听
rtcPeer.off("tiren ").on("tiren ", function(data) {
if (room.id == data.roomId) {
//如果得到的userid和自己的id一样,调用退出会议方法,退出会议室
if (data.userId == currentId) {
//退出会议室并提示用户
}
}
});
12.举手消息(rtcPeer.meeting. raiseHand)
12.1概述
发送举手消息给当前会议中的所有成员。
12.2参数
无
12.3监听事件
参数 | 类型 | 是否必选 | 参数说明 |
onRaiseHand | String | M | 踢人消息事件 |
事件获取数据
参数 | 类型 | 是否必选 | 参数说明 |
client | Object | M | Client |
roomId | number | M | 当前会议房间的唯一标识(room id) |
12.4示例
rtcPeer.meeting. raiseHand()
//事件监听
rtcPeer.off("onRaiseHand").on("onRaiseHand", function(d) {
if (d.client.id != myClient.id) {
console.log('举手----', d.client.name);
}
});
13.开始本地录制(rtcPeer.meeting.startLocalRecord)
13.1概述
通过屏幕共享和录制插件抓屏,将屏幕和声音录制下来。只支持PC端。
13.2参数
参数 | 类型 | 是否必选 | 参数说明 |
fileName | String | M | 保存文件名 |
callback | Function | M | 回调函数 |
13.3示例
rtcPeer.meeting.startLocalRecord ({
fileName:”abcd”
});
14.停止本地录制(rtcPeer.meeting.stopLoaclRecord)
14.1概述
停止本地录制。只支持PC端,浏览器需要安装插件。
14.2参数
参数 | 类型 | 是否必选 | 参数说明 |
callback | Function | M | 回调函数 |
14.3示例
rtcPeer.meeting.stopLocalRecord();
15.暂停本地录制(rtcPeer.meeting. pauseLocalRecord)
15.1概述
暂停本地录制。只支持PC端。
15.2参数
无
15.3示例
rtcPeer.meeting.pauseLocalRecord ();
16.恢复本地录制(rtcPeer.meeting.resumeLocalRecord)
16.1概述
恢复本地录制。只支持PC端。
16.2参数
无
16.3示例
rtcPeer.meeting.resumeLocalRecord ();
17.设置主持人(rtcPeer.meeting. setCompere)
17.1概述
指定用户设置成主持人,全体会议成员各终端会收到设置主持人消息,各终端收到事件可将在成员列表中找到对应人标记在主持人。
17.2参数
参数 | 类型 | 是否必选 | 参数说明 |
userId | number | M | Client中的id值 |
roomId | number | M | 当前会议房间的唯一标识(room id) |
17.3监听事件
参数 | 类型 | 是否必选 | 参数说明 |
onCompere | String | M | 设置主持人消息事件 |
事件获取数据
参数 | 类型 | 是否必选 | 参数说明 |
userId | number | M | Client中的id值 |
roomId | number | M | 当前会议房间的唯一标识(room id) |
17.4示例
rtcPeer.meeting. setCompere({
userId:1234,
roomId:1008
});
//事件监听
rtcPeer.off("onCompere ").on("onCompere ", function(data) {
if (room.id == data.roomId) {
}
});
18.屏幕共享(rtcPeer.meeting. shareScreen)
18.1概述
将自己的屏幕共享到其它客户端。只支持PC端。一会议中,同一时间只能有一个人分享屏幕,html video标签一定要加autoplay muted。
18.2参数
参数 | 类型 | 是否必选 | 参数说明 |
shareScreenId | number | M | 临时创建的分享唯一标识 |
domId | String | M | video标签唯一dom id |
18.3监听事件
参数 | 类型 | 是否必选 | 参数说明 |
onShareScreen | String | M | 分享控制事件 |
事件获取数据
参数 | 类型 | 参数说明 |
shareScreenId | number | shareScreenId 有值表是分享,为空表册关闭 |
roomId | number | 分享所在的房间唯一标识 |
client | Object | 分享的发起者 |
18.4监听本地事件
参数 | 类型 | 是否必选 | 参数说明 |
shareScreen | String | 分享屏幕者的本地事件 |
事件获取数据
参数 | 类型 | 参数说明 |
type | String | type值: play, stop,事件类型 play:屏幕分享 stop:停止分享 |
shareScreenId | number | shareScreenId 分享id |
18.5示例
Html:
<video id='screenvideo' autoplay muted></video>
Js code:
rtcPeer.meeting.shareScreen({
domId:’screenvideo’
});
19.取消屏幕共享(rtcPeer.meeting. stopShareScreen)
19.1概述
取消将自己的屏幕共享到其它客户端。只支持PC端。
19.2参数
参数 | 类型 | 是否必选 | 参数说明 |
callback | Function | O | 回调函数 |
19.3示例
rtcPeer.meeting. stopShareScreen ();
20.播放屏幕共享(rtcPeer.meeting. playShareScreen)
20.1概述
播放远端屏幕共享。只支持PC端。html video标签一定要加autoplay muted。
20.2参数
参数 | 类型 | 是否必选 | 参数说明 |
shareScreenId | number | M | 临时创建的分享唯一标识 |
domId | String | M | video标签唯一dom id |
20.3示例
Html:
<video id='screenvideo' autoplay muted></video>
Js code:
rtcPeer.meeting.playShareScreen({
shareScreenId: data.shareScreenId * 1,
domId:’’screenvideo’’
});
21.切换摄像头(rtcPeer.meeting. flipsCamera)
21.1概述
移动端切换摄像头。
21.2参数
参数 | 类型 | 是否必选 | 参数说明 |
callback | Function | O | 回调函数 |
21.4示例
rtcPeer.meeting.flipsCamera(function(){});
22.视频切语音(rtcPeer.meeting. audioOnlyMeeting)
22.1概述
将视频会议切换成语音会议模式。
22.2参数
参数 | 类型 | 是否必选 | 参数说明 |
client | Object | M | 用户参会的虚拟身份 |
callback | Function | O | 回调函数 |
22.3监听事件
参数 | 类型 | 是否必选 | 参数说明 |
onPublished | String | M | 视频消息事件 |
事件获取数据
参数 | 类型 | 参数说明 |
event | String | event 值: play, close, audioMode事件类型 play:播放视频 close:关闭视频 audioMode:视频电话切语音电话 |
client | Object | 发起动作的用户信息 |
22.5示例
rtcPeer.meeting. audioOnlyMeeting ({
client: myClient,
callback: function(myClient) {
$("#local").css('display', 'block');
clientList.forEach(function(item) {
if (item.id == myClient.id) {
item.isOpenVideo = false;
}
});
changeVideoSize();
}
});
rtcPeer.meeting. audioOnlyMeeting ({
client: myClient,
callback: function(myClient) {
$("#local").css('display', 'block');
clientList.forEach(function(item) {
if (item.id == myClient.id) {
item.isOpenVideo = false;
}
});
changeVideoSize();
}
});
//接收其他客户端播放或停止事件
rtcPeer.off("onPublished").on("onPublished", function(data) {
if (data.roomId == room.id && data.client.id != myClient.id) {
if (data.event == 'close' || data.event == 'audioMode') {
console.info("关闭播放client " + data.client.name);
rtcPeer.meeting.stopPlay({
client: data.client,
callback: function(client) {
$('#network' + client.id).remove();
clientList.forEach(function(item) {
if (item.id == data.client.id) {
item.isOpenVideo = false;
}
});
changeVideoSize();
}
});
if (isOpenVideo && data.event == 'audioMode') {
isOpenVideo = false;
$("#toggerVideo").removeClass('camera_focus');
rtcPeer.meeting.updateVideoMode({
video: isOpenVideo,
client: myClient,
callback: function(myClient) {
$("#local").css('display', 'none');
clientList.forEach(function(item) {
if (item.id == myClient.id) {
item.isOpenVideo = isOpenVideo;
}
});
changeVideoSize();
}
});
}
}
}
});
23.发送静音消息(rtcPeer.meeting.muteMsg)
23.1概述
通过发送指定某用户的麦克风打开关闭。
23.2参数
参数 | 类型 | 是否必选 | 参数说明 |
userId | number | M | 用户唯一标识 |
roomId | number | M | 房间唯一标识 |
isMute | Boolean | M | 是否静音,true静音,false取消静音 |
23.3监听事件
参数 | 类型 | 是否必选 | 参数说明 |
onMute | String | M | 静音消息事件 |
事件获取数据
参数 | 类型 | 参数说明 |
userId | number | 用户唯一标识 |
roomId | number | 房间唯一标识 |
isMute | Boolean | 是否静音,true静音,false取消静音 |
23.4示例
$scope.muteOther = function(user) {
rtcPeer.meeting.muteMsg({
roomId: room.id,
userId: user.id,
isMute: !user.muted
})
};
//接收是否静音
$scope.$on('onMute', function(e, data) {
if (room.id == data.roomId) {
angular.forEach($scope.userList, function(member) {
//其它人看到自己的状态
if (member.id == data.userId) {
member.muted = data.isMute;
return;
}
});
if (data.userId == client.id) {
$scope.isMute = data.isMute;
rtcPeer.meeting.setAudio(!$scope.isMute);
}
}
});
24.事件监听(rtcPeer. on)
24.1概述
监听事件方法。
24.2参数
参数 | 类型 | 是否必选 | 参数说明 |
Key | String | M | 消息事件名:换成对应事件名 |
主要事件
参数 | 类型 | 参数说明 |
EnterRoom | String | 进入房间事件 |
ExitRoom | String | 退出房间事件 |
onLocalPublished | String | 本地流连接流媒体服务器成功 本地播放成功事件 |
onPublished | String | 视频播放或停止事件 |
onLinkSlow | String | code: 1001本地视频网络上传较差 code: 1002远端视频网络下载较差 |
onLocalRecord | String | 录制本地流事件,type为 startLocalRecord 开始录制, stopLocalRecord 停止录制, pauseLocalRecord 暂停录制, resumeLocalRecord 恢复录制 |
24.3示例
rtcPeer. on("EnterRoom", function(data) {
if (room.id == data.roomId) {
if (data.result == 9) {
//当前账号在其他客户端上进入当前会议
meeting.exitRoom().then(function() {
showVideoArea(false);
});
} else if (data.client.id != myClient.id) {
console.info("进入房间client " + data.client.name);
clientList.push(data.client);
}
}
})
25.会议聊天(rtcPeer.meeting.chat)
25.1概述
会议聊天。
25.2参数
参数 | 类型 | 是否必选 | 参数说明 |
userId | number | M | Client中的id值 ,当前用户 |
roomId | number | M | 当前会议房间的唯一标识(room id) |
content | String | M | 聊天内容 |
25.3监听事件
参数 | 类型 | 是否必选 | 参数说明 |
onChat | String | M | 聊天消息事件 |
事件获取数据
参数 | 类型 | 参数说明 |
userId | number | Client中的id值 |
roomId | number | 当前会议房间的唯一标识(room id) |
content | String | 聊天内容 |
client | Client | 发送信息的人信息 |
25.4示例
rtcPeer.meeting. chat({content:"1233eeeeeee"})
//事件监听
//接收到主持人的是否禁音指令,执行对应操作
rtcPeer.off("onChat").on("onChat", function(data) {
if (room.id == data.roomId) {
console.log("chat message", data.content);
}
});
26.会议私聊天(rtcPeer.meeting.privateChat)
26.1概述
会议指定和某一个人聊天。
26.2参数
参数 | 类型 | 是否必选 | 参数说明 |
userId | number | M | Client中的id值 ,当前用户 |
otherUserId | number | M | 指定聊天的的client id,当前会议已存的用户 |
roomId | number | M | 当前会议房间的唯一标识(room id) |
content | String | M | 聊天内容 |
26.3监听事件
参数 | 类型 | 是否必选 | 参数说明 |
onChat | String | M | 聊天消息事件 |
事件获取数据
参数 | 类型 | 参数说明 |
userId | number | Client中的id值 |
roomId | number | 当前会议房间的唯一标识(room id) |
content | String | 聊天内容 |
client | Client | 发送信息的人信息 |
26.4示例
rtcPeer.meeting.privateChat({content:"1233eeeeeee",otherUserId})
//事件监听
//接收到主持人的是否禁音指令,执行对应操作
rtcPeer.off("onPrivateChat").on("onPrivateChat", function(data) {
if (room.id == data.roomId) {
console.log("chat message", data.content);
}
});
27.会议翻译(rtcPeer.meeting.transcribe)
27.1概述
会议中参会人员的声音翻译。
27.2参数
参数 | 类型 | 是否必选 | 参数说明 |
action | String | M | start|stop|pause|resume]启动翻译,停止翻译,暂停和恢复 |
27.3监听事件
参数 | 类型 | 是否必选 | 参数说明 |
onTranscription | String | M | 翻译消息事件 |
事件获取数据
参数 | 类型 | 是否必选 | 参数说明 |
var | String | M | 翻译文字 |
onebest | String | M | 最终调整后的翻译文字(不是每次翻译后都 有onebest) |
bg | String | M | 同一句翻译,唯一标识 |
27.4示例
//开始翻译
rtcPeer.meeting.transcribe({ action: start});
//停止翻译
rtcPeer.meeting.transcribe({ action: 'stop' });
//接收翻译事件
var transcriptionTxt = "";
var transcriptionNumber = ""; //同样的编号属于一句话
rtcPeer.off("onTranscription").on("onTranscription", function(d) {
console.log(d);
if (d.data) {
transcriptionTxt = d.data.var || d.data.onebest;
$("#transcribeTxt").text(transcriptionTxt);
}
});
28.会议翻译是否打开(rtcPeer.meeting.isTranscribe)
28.1概述
会议中参会人员的声音翻译。
28.2参数
无
28.3返回数据
参数 | 类型 | 参数说明 |
message | String | 描述 |
result | Boolean | ture翻译打开状态,false翻译 关闭状态 |
28.4示例
Mixer.instance.api.isTranscribe().then(function(d){console.error(d)})
//结果:
{message: "+OK conference 100000508 transcription is on", sessid: "ba63d78c-5a4b-c541-dff4-ce13b337720b", result: true}
message:"+OK conference 100000508 transcription is on"
result:true
sessid:"ba63d78c-5a4b-c541-dff4-ce13b337720b"
29.获取当前会议时长(rtcPeer.meeting. getMeetingTimeLength)
29.1概述
获取当前正在进行的会议,已经进行多长时间,返回毫秒。
29.2示例
rtcPeer.utils.dateTimeFormate(rtcPeer.meeting.getMeetingTimeLength());
……
"00:00:48"
30.开始屏幕录制(rtcPeer.meeting.startRecordScreen)
30.1概述
通过屏幕共享和录制插件抓屏,将屏幕和声音录制到服务端。只支持PC端。
30.2参数
参数 | 类型 | 是否必选 | 参数说明 |
fileName | String | O | 保存文件名 |
30.3示例
rtcPeer.meeting.startRecordScreen();
31.停止屏幕录制(rtcPeer.meeting.stopRecordScreen)
31.1概述
停止录制。只支持PC端,浏览器需要安装插件。
31.2示例
rtcPeer.meeting.stopRecordScreen();
32.获取本地音视频设备(rtcPeer.meeting.getMediaDevices)
32.1概述
获取本地麦克风、摄像头、外放列表。
32.2示例
rtcPeer.meeting.getMediaDevices(function(list){
console.log(“list”,list);
});
33.获取本地视频设备(rtcPeer.meeting.getMediaVideoDevices)
33.1概述
获取本地摄像头设备列表。如果没有摄像头设备,返回为空。33.2示例
rtcPeer.meeting.getMediaVideoDevices(function(list){
console.log(“list”,list);
});
34.开始服务端录制(rtcPeer.meeting.startRecord)
34.1概述
通过屏幕共享和录制插件抓屏,将屏幕和声音录制下来。只支持PC端。
34.2参数
参数 | 类型 | 是否必选 | 参数说明 |
fileName | String | O | 保存文件名,不传已当前时间为名称 |
startTime | Date | O | 录制开始时间,不传默认当前时间 |
34.3返回
参数 | 类型 | 参数说明 |
result | number | 0成功 |
recordId | number | 录制唯一标识 |
34.4示例
rtcPeer.meeting.startLocalRecord ({
fileName:”abcd”
});
35.停止服务端录制(rtcPeer.meeting.stopRecord)
35.1概述
停止本地录制。只支持PC端,浏览器需要安装插件。
35.2参数
参数 | 类型 | 是否必选 | 参数说明 |
recordId | number | M | 录制唯一标识 |
35.3返回
参数 | 类型 | 是否必选 | 参数说明 |
recordId | number | M | 录制唯一标识 |
35.4示例
rtcPeer.meeting.stopRecord({recordId:123});
IM音视交互功能
提供在线用户之间的呼叫过程中的交互功能接口,通过接口可以实现发起呼叫、接收或拒绝呼叫,进入指定会议房间等需求。
1.发起呼叫(rtcPeer. call)
1.1概述
指定用户发起呼叫。
1.2参数
参数 | 类型 | 是否必选 | 参数说明 |
targetUserId | number | M | 用户User中的id值 |
ownDeviceType | String | O | 设备类型 pc 、Android、iOS、webphone、tv |
1.3监听事件
参数 | 类型 | 是否必选 | 参数说明 |
doInvite | String | M | 被呼叫者收到的邀请消息事件 |
事件获取数据
参数 | 类型 | 参数说明 |
ownUserId | number | 发起呼叫者的用户唯一标识Id |
ownDeviceType | String | 发起呼叫者的用户设备类型 |
1.4示例
rtcPeer.call({
targetUserId: callUser.id
}).then(function(d) {
if (d.result == 1) {
clearTimeout(ringTimeoutIndex);
clearTimeout(ringCallbackIndex);
showMessage("您呼叫的用户当前不在线。");
} else if (d.result == 0) {
room = { id: d.roomId, roomType: 2, name: '即时会议', isCall: true };
callRoom = room;
if (!isOtherBusy) {
callMessage(callUser);
}
clearTimeout(ringCallbackIndex);
}
});
//事件监听
rtcPeer.off("doInvite").on("doInvite", function(data) {
console.info("doInvite", data);
if (isAtRoom) {
rtcPeer.tellBusy({
'targetUserId': data.ownUserId,
'targetDeviceType': data.ownDeviceType
});
} else {
rtcPeer.ring({
'targetUserId': data.ownUserId,
'targetDeviceType': data.ownDeviceType
});
}
});
2.同意呼叫请求(rtcPeer. agree)
2.1概述
同意呼叫请求,并发送信息告诉呼叫。
2.2参数
参数 | 类型 | 是否必选 | 参数说明 |
targetUserId | number | M | 呼叫者用户唯一标识码 |
targetDeviceType | String | O | 设备类型 pc 、Android、iOS、webphone、tv |
ownDeviceType | String | O | 设备类型 pc 、Android、iOS、webphone、tv |
2.3监听事件
参数 | 类型 | 是否必选 | 参数说明 |
doAgree | String | M | 被呼叫者发送同意请求消息事件 |
事件获取数据
参数 | 类型 | 参数说明 |
ownUserId | number | 被呼叫者的用户唯一标识Id |
ownDeviceType | String | 被呼叫者的用户设备类型 |
2.4示例
rtcPeer.agree({
'targetUserId': receiveUser.id,
'targetDeviceType': receiveUser.deviceType
});
rtcPeer.off("doAgree").on("doAgree", function(data) {
});
3.拒绝呼叫请求(rtcPeer. reject)
3.1概述
拒绝呼叫请求,并发送信息告诉呼叫。
3.2参数
参数 | 类型 | 是否必选 | 参数说明 |
targetUserId | number | M | 呼叫者用户唯一标识码 |
targetDeviceType | String | O | 设备类型 pc 、Android、iOS、webphone、tv |
ownDeviceType | String | O | 设备类型 pc 、Android、iOS、webphone、tv |
3.3监听事件
参数 | 类型 | 是否必选 | 参数说明 |
reject | String | M | 被呼叫者发送拒绝请求消息事件 |
事件获取数据
参数 | 类型 | 参数说明 |
ownUserId | number | 被呼叫者的用户唯一标识Id |
ownDeviceType | String | 被呼叫者的用户设备类型 |
3.4示例
rtcPeer.reject({
'targetUserId': receiveUser.id,
'targetDeviceType': receiveUser.deviceType
});
rtcPeer.off("reject").on("reject", function(data) {
console.info("reject", data);
if (callUser.id == data.ownUserId) {
$("#callMessage").hide();
$("#ringAudio")[0].src = "";
clearTimeout(ringCallbackIndex);
clearTimeout(ringTimeoutIndex);
}
});
4.取消呼叫请求(rtcPeer. cancel)
4.1概述
取消呼叫请求,并发送信息告诉被呼叫者。4.2参数
参数 | 类型 | 是否必选 | 参数说明 |
targetUserId | number | M | 呼叫者用户唯一标识码 |
targetDeviceType | String | O | 设备类型 pc 、Android、iOS、webphone、tv |
ownDeviceType | String | O | 设备类型 pc 、Android、iOS、webphone、tv |
4.3监听事件
参数 | 类型 | 是否必选 | 参数说明 |
cancel | String | M | 取消呼叫请求消息事件 |
参数 | 类型 | 参数说明 |
ownUserId | number | 被呼叫者的用户唯一标识Id |
ownDeviceType | String | 被呼叫者的用户设备类型 |
4.4示例
rtcPeer.cancel({
'targetUserId': callUser.id
});
rtcPeer.off("cancel").on("cancel", function(data) {
console.info("cancel", data);
if (receiveUser.id == data.ownUserId) {
$("#receiveMessage").hide();
$("#ringAudio")[0].src = "";
clearTimeout(ringCallbackIndex);
clearTimeout(ringTimeoutIndex);
}
});
5.响铃消息(rtcPeer. ring)
5.1概述
被呼叫方接收到邀请事件(doInvite)后,被呼叫方当前处于空闲状态时,被呼叫方自动发送响铃消息,告诉呼叫方被呼叫方已响铃。5.2参数
参数 | 类型 | 是否必选 | 参数说明 |
targetUserId | number | M | 呼叫者用户唯一标识码 |
targetDeviceType | String | O | 呼叫者设备类型 pc 、Android、iOS、webphone、tv |
ownDeviceType | String | O | 设备类型 pc 、Android、iOS、webphone、tv |
5.3监听事件
参数 | 类型 | 是否必选 | 参数说明 |
doEvent | String | M | 消息事件 event: onRinging响铃事件 onBusy 正在忙事件 onConnected 连接成功事件,开始音视频连接 |
参数 | 类型 | 参数说明 |
ownUserId | number | 被呼叫者的用户唯一标识Id |
ownDeviceType | String | 被呼叫者的用户设备类型 |
5.4示例
rtcPeer.ring({
'targetUserId': data.ownUserId,
'targetDeviceType': data.ownDeviceType
});
rtcPeer.off("doEvent").on("doEvent", function(data) {
console.info("doEvent", data);
switch (data.event) {
case "onRinging":
//clearTimeout(ringTimeoutIndex);
break;
}
});
6.忙消息(rtcPeer. busy)
6.1概述
被呼叫方接收到邀请事件(doInvite)后,被呼叫方当前处于忙状态(正在开会中)时,被呼叫方自动发送正在忙消息,告诉呼叫方被呼叫方无法接听。
6.2参数
参数 | 类型 | 是否必选 | 参数说明 |
targetUserId | number | M | 呼叫者用户唯一标识码 |
targetDeviceType | String | O | 呼叫者设备类型 pc 、Android、iOS、webphone、tv |
ownDeviceType | String | O | 设备类型 pc 、Android、iOS、webphone、tv |
6.3监听事件
参数 | 类型 | 是否必选 | 参数说明 |
doEvent | String | M | 消息事件 event: onRinging响铃事件 onBusy 正在忙事件 onConnected 连接成功事件,开始音视频连接 |
事件获取数据
参数 | 类型 | 参数说明 |
ownUserId | number | 被呼叫者的用户唯一标识Id |
ownDeviceType | String | 被呼叫者的用户设备类型 |
6.4示例
rtcPeer.busy({
'targetUserId': data.ownUserId,
'targetDeviceType': data.ownDeviceType
});
rtcPeer.off("doEvent").on("doEvent", function(data) {
console.info("doEvent", data);
switch (data.event) {
case 'onBusy':
isOtherBusy = true;
$("#callMessage").hide();
$("#ringAudio")[0].src = "";
clearTimeout(ringTimeoutIndex);
clearTimeout(ringCallbackIndex);
showMessage("您呼叫的用户当前正在忙。");
break;
}
});
7.连接成功消息(rtcPeer. connected)
7.1概述
接收到被呼叫方接同意事件(doAgree)后,呼叫方进入会议并发送连接成功消息给被呼叫方,被呼叫方接收到connected事件后,进入指定会议。
7.2参数
参数 | 类型 | 是否必选 | 参数说明 |
targetUserId | number | M | 呼叫者用户唯一标识码 |
targetDeviceType | String | O | 呼叫者设备类型 pc 、Android、iOS、webphone、tv |
roomId | Number | M | 虚拟房间唯 一标识码 |
roomType | Number | M | 房间类型:1:音频会议 2 :视频会议 3: 在线培训 |
7.3监听事件
参数 | 类型 | 是否必选 | 参数说明 |
doEvent | String | M | 消息事件 event: onRinging响铃事件 onBusy 正在忙事件 onConnected 连接成功事件,开始音视频连接 |
事件获取数据
参数 | 类型 | 参数说明 |
ownUserId | number | 被呼叫者的用户唯一标识Id |
ownDeviceType | String | 被呼叫者的用户设备类型 |
7.4示例
rtcPeer.connected({
'targetUserId': data.ownUserId,
'targetDeviceType': data.ownDeviceType,
'roomId': d.room.id,
'roomType': d.room.roomType
}).then(function(data) {
clearTimeout(ringCallbackIndex);
clearTimeout(ringTimeoutIndex);
$("#callMessage").hide();
$("#ringAudio")[0].src = "";
});
rtcPeer.off("doEvent").on("doEvent", function(data) {
console.info("doEvent", data);
switch (data.event) {
case 'onConnected':
clearTimeout(ringCallbackIndex);
clearTimeout(ringTimeoutIndex);
$("#ringAudio")[0].src = "";
room = { id: data.roomId, name: '即时会议', isCall: true };
callRoom = room;
_enterRoom({
id: data.roomId,
roomType: data.roomType,
name: '即时会议'
});
break;
}
});
8.自定义事件消息 (rtcPeer. doEvent)
8.1概述
响铃消息、忙消息、连接成功消息都是通过自定doEvent接口中event的值来实现8.2参数
参数 | 类型 | 是否必选 | 参数说明 |
targetUserId | number | M | 呼叫者用户唯一标识码 |
targetDeviceType | String | M | 呼叫者设备类型 pc 、Android、iOS、webphone、tv |
roomId | Number | O | 虚拟房间唯 一标识码 |
roomType | Number | O | 房间类型:1:音频会议 2 :视频会议 3: 在线培训 |
event | String | M | 自定义消息事件名:如onRinging |
8.3监听事件
参数 | 类型 | 是否必选 | 参数说明 |
doEvent | String | M | 消息事件 event: onRinging响铃事件 onBusy 正在忙事件 onConnected 连接成功事件,开始音视频连接 |
参数 | 类型 | 参数说明 |
ownUserId | number | 被呼叫者的用户唯一标识Id |
ownDeviceType | String | 被呼叫者的用户设备类型 |
9. 呼叫注册 (rtcPeer. doRegister)
9.1概述
登录后,调用呼叫注册接口,注册当前用户已在线,可以被呼叫,非SID对接方案不使用,类库内会自动在登录后注册9.2参数
参数 | 类型 | 是否必选 | 参数说明 |
userId | number | M | 当前用户唯一标识码 |
9.3监听事件
参数 | 类型 | 参数说明 |
result | number | 0呼叫注册成功 |
IM音视交互功能Java接口
提供在线用户之间的呼叫过程中的交互功能接口,通过接口可以实现发起呼叫、接收或拒绝呼叫,进入指定会议房间等需求。在客户端通过建立socket连接控制服务器,实现消息的实时传输。
1.呼叫接口
1.1概述
指定用户发起呼叫。
1.2参数
参数 | 类型 | 是否必选 | 参数说明 |
module | String | M | 值:call |
method | String | M | 方法名:doInvite |
ownUserId | Long | M | 当前用户唯一标识 |
targetUserId | Long | M | 被呼叫用户User中的id(用户唯一标识) |
ownDeviceType | String | O | 设备类型 pc 、Android、iOS、webphone、tv |
targetDeviceType | String | O | 被呼叫设备类型 pc 、Android、iOS、webphone、tv |
type | Long | O | 1音频会议 2视频会议 3视频回传 |
roomId | Long | M | 会议室房间唯一标识,通过创建房间接口获取(newTempRoom接口) |
1.3监听事件
参数 | 类型 | 是否必选 | 参数说明 |
doInvite | String | M | 被呼叫者收到的邀请消息事件 |
事件获取数据
参数 | 类型 | 参数说明 |
ownUserId | number | 发起呼叫者的用户唯一标识Id |
ownDeviceType | String | 发起呼叫者的用户设备类型 |
type | number | 1音频会议 2视频会议 3视频回传 |
2.同意呼叫请求接口
2.1概述
同意呼叫请求,并发送信息告诉呼叫。
2.2参数
参数 | 类型 | 是否必选 | 参数说明 |
module | String | M | 值:call |
method | String | M | 方法名:doAgree |
ownUserId | Long | M | 当前用户唯一标识 |
targetUserId | Long | M | 呼叫用户User中的id(用户唯一标识) |
ownDeviceType | String | O | 设备类型 pc 、Android、iOS、webphone、tv |
targetDeviceType | String | O | 呼叫设备类型 pc 、Android、iOS、webphone、tv |
type | Long | O | 1音频会议 2视频会议 3视频回传 |
roomId | Long | M | 通过呼叫接口得到 |
2.3监听事件
参数 | 类型 | 是否必选 | 参数说明 |
doAgree | String | M | 被呼叫者发送同意请求消息事件 |
事件获取数据
参数 | 类型 | 参数说明 |
ownUserId | number | 被呼叫者的用户唯一标识Id |
ownDeviceType | String | 被呼叫者的用户设备类型 |
3.拒绝呼叫请求接口
3.1概述
拒绝呼叫请求,并发送信息告诉呼叫。
3.2参数
参数 | 类型 | 是否必选 | 参数说明 |
module | String | M | 值:call |
method | String | M | 方法名:reject |
ownUserId | Long | M | 当前用户唯一标识 |
targetUserId | Long | M | 呼叫用户User中的id(用户唯一标识) |
ownDeviceType | String | O | 设备类型 pc 、Android、iOS、webphone、tv |
targetDeviceType | String | O | 呼叫设备类型 pc 、Android、iOS、webphone、tv |
3.3监听事件
参数 | 类型 | 是否必选 | 参数说明 |
reject | String | M | 被呼叫者发送拒绝请求消息事件 |
事件获取数据
参数 | 类型 | 参数说明 |
ownUserId | number | 被呼叫者的用户唯一标识Id |
ownDeviceType | String | 被呼叫者的用户设备类型 |
4.取消呼叫请求接口
4.1概述
取消呼叫请求,并发送信息告诉被呼叫者。
4.2参数
参数 | 类型 | 是否必选 | 参数说明 |
module | String | M | 值:call |
method | String | M | 方法名:cancel |
ownUserId | Long | M | 当前用户唯一标识 |
targetUserId | Long | M | 呼叫用户User中的id(用户唯一标识) |
ownDeviceType | String | O | 设备类型 pc 、Android、iOS、webphone、tv |
targetDeviceType | String | O | 呼叫设备类型 pc 、Android、iOS、webphone、tv |
4.3监听事件
参数 | 类型 | 是否必选 | 参数说明 |
cancel | String | M | 取消呼叫请求消息事件 |
事件获取数据
参数 | 类型 | 参数说明 |
ownUserId | number | 被呼叫者的用户唯一标识Id |
ownDeviceType | String | 被呼叫者的用户设备类型 |
5.事件消息通用接口
5.1概述
响铃消息、忙消息、连接成功消息都是通过自定doEvent 接口中event 的值来实现
5.2参数
参数 | 类型 | 是否必选 | 参数说明 |
module | String | M | 值:call |
method | String | M | 方法名:doEvent |
ownUserId | Long | M | 当前用户唯一标识 |
targetUserId | Long | M | 呼叫用户User中的id(用户唯一标识) |
ownDeviceType | String | O | 设备类型 pc 、Android、iOS、webphone、tv |
targetDeviceType | String | O | 呼叫设备类型 pc 、Android、iOS、webphone、tv |
event | String | M | 自定议事件名:onRinging响铃事件 onBusy 正在忙事件 onConnected 连接成功事件,开始音视频连接 |
5.3监听事件
参数 | 类型 | 是否必选 | 参数说明 |
doEvent | String | M | 消息事件 event: onRinging响铃事件 onBusy 正在忙事件 onConnected 连接成功事件,开始音视频连接 |
事件获取数据
参数 | 类型 | 参数说明 |
ownUserId | number | 被呼叫者的用户唯一标识Id |
ownDeviceType | String | 被呼叫者的用户设备类型 |
6.呼叫注册接口
6.1概述
登录后,调用呼叫注册接口,注册当前用户已在线,可以被呼叫。
6.2参数
参数 | 类型 | 是否必选 | 参数说明 |
module | String | M | 值:call |
method | String | M | 方法名:doRegister |
SID | String | M | Session ID 由认证接口成功后返回 |
userId | Long | M | 当前用户唯一标识 |
deviceType | String | O | 设备类型 pc 、Android、iOS、webphone、tv |
6.3返回
参数 | 类型 | 参数说明 |
result | Long | 呼叫注册成功 |
7.响铃消息
7.1概述
被呼叫方接收到邀请事件(doInvite)后,被呼叫方当前处于空闲状态时,被呼叫方自动发送响铃消息,告诉呼叫方被呼叫方已响铃。
8.忙消息
8.1概述
被呼叫方接收到邀请事件(doInvite)后,被呼叫方当前处于忙状态(正在开会中)时,被呼叫方自动发送正在忙消息,告诉呼叫方被呼叫方无法接听。
9.连接成功消息
9.1概述
接收到被呼叫方接同意事件(doAgree)后,呼叫方进入会议并发送连接成功消息给被呼叫方,被呼叫方接收到connected事件后,进入指定会议。
10.创建临时房间接口
10.1概述
创建临时房间。
10.2参数
参数 | 类型 | 是否必选 | 参数说明 |
module | String | M | 值:room |
method | String | M | 方法名:newAppRoom |
name | String | M | 房间名称 |
numberLimit | Long | M | 会议室人员上限,最大200人 |
roomtype | Long | M | 1音频会议 2视频会议 3在线培训 |
userId | Long | M | 当前用户唯一标识 |
10.3返回
参数 | 类型 | 参数说明 |
result | Long | 0成功 |
roomId | Long | 会议室房间唯一标识 |
11.登出接口
11.1概述
登出。
11.2参数
参数 | 类型 | 是否必选 | 参数说明 |
module | String | M | 值:account |
method | String | M | 方法名:logout |
SID | String | M | Session ID 由认证接口成功后返回 |
userId | Long | M | 当前用户唯一标识 |
11.3返回
参数 | 类型 | 参数说明 |
result | Long | 0成功 |
12.创建预约会议
12.1概述
创建预约会议接口, 创建即时会议,将开始时间设置为当前时间。
12.2参数
参数 | 类型 | 是否必选 | 参数说明 |
method | String | M | 方法名,值:new |
module | String | M | 值:meeting |
SID | String | M | Session ID 用户登录后产生的身份标识码 |
name | String | M | 会议名称 |
startTime | String | M | 会议开始时间 ,传入UTC时间格式 “yyyyMMddHHmmss” |
endTime | String | M | 会议结束时间 ,传入UTC时间格式“yyyyMMddHHmmss” |
hour | String | O | 会议时长(小时) |
leverage | String | O | 会议容量人数(自然数,200方);主要看流媒体服务器的CPU |
type | Long | M | 会议类型 : 1音频会议 2视频会议 3视频回传 |
isPublic | Boolean | M | 是否公开,true公共会议,false:私人会议。建议传false, |
pin | Long | O | 会议进入校验密码 |
members | Array | O | 邀请成员,数组内成员格式为String, 格式如下: “memberId,name,email,id, Etc/GMT+8,role” 注:memberId 默认为0, id为用户的唯一标识码id, name:用户昵称 email:邮件,可以为null 角色role: 会议场模式:1是主持人 2普通参会人员; 培训模式:1是主持人 2是讲师,3普通参付人员,建议只邀请主持人和讲师 |
template | Long | O | 模板 |
postUrl | String | O | 海报 |
orgId | Long | M | 公司唯一标识码Id,可以提供,一般情况传2 |
roomId | Long | O | 房间唯 一标识id 不传id会重新创建一个,传存在的room id,用此room |
baseURL | String | O | 邮件链接地址 |
topics | Array | O | 网络会议 子议题 数组内的Objet格式: { “title”:“议题”, “content”: “具体内容” } |
12.3返回参数
参数 | 类型 | 参数说明 |
id | Int | 会议唯一标识 |
roomId | Int | 房间的唯一标识,新建会议,如果不传roomId,会议和房间的关系是一对一。 |
result | Int | 0:成功,1:失败 |
轻会议平台对接方案
第三方平台和私有部署轻会议平台对接方案。
1. 用户信息认证接口
1.1概述
用户信息对接,具体:
1.1.1. 调用轻会议平台tokenLogin接口,传参token, checkUrl(第三方平台请求路径);
1.1.2. 轻会议平调用 checkUrl对应接口,并传参token获取第三方平台用户信息;
1.1.3. 获取用户信息成功,并更新到轻会议平台,tokenLogin接口返回 SID和userId;
1.1.4. 第三方平台可以通过 SID和userId调用轻会议平台相关接口;
注:第三方提供认证接口,认证成功返回第三方用户信息。
1.2 tokenLogin接口
1.2.1请求格式
请求地址 | 请求模式 |
https:// gj.527meeting.com/app/account | POST |
1.2.2请求格式
参数 | 类型 | 是否必选 | 参数说明 |
method | String | M | 方法名,值:tokenLogin |
url | String | M | 回调请求地址checkUrl(第三方平台用户信息接口地址) |
token | String | M | 回调请求用户信息确权凭证(调用第三方平台用户信息接口的凭证) |
app_code | String | O | 应用代码,可以不传 |
company | String | M | 公司名称(在会议平台注册公司名) |
appkey | String | O | 公司接入api认证key(值:“F6JJKH7LKJKJ8JKJH6GTYMBPO9”) |
1.2.3返回参数
参数 | 类型 | 参数说明 |
SID | String | Session ID 用户登录后产生的身份标识码 |
organisation | Company | 公司信息,参考been类中的Company。 |
user | User | 用户信息,参考been类中的User. |
responseJson | Json | 回调返回对象 |
result | Long | 0 成功;1 公司名不正确 ;2 公司appkey验证失败;3 回调请求失败;4 注册失败 |
1.2.4 入参格式
{
“params”:{
“method”:”tokemLogin”,
“token”:”EHJGJOHFFKL&^^&%&HGD^%JHJ*&BHJ”,
“app_code”:”527meeting”,
“company”:”李四钢铁厂”,
“appkey”:“G24Y57IK23G4F5Y”
}
}
1.3checkUrl接口
1.3.1概述
checkUrl是轻会议控制服务器请求第三方平台获取第三方用户信息的接口地址1.3.2 第三方接口返回用户信息格式要求
{
“user”:{
“code”: “test”, //账号 String
“name”: “张三”, //名称 String
“logo_url”:”./image/headpic.png” //头像地址 String
}
Web Url接口
登录用户或非登录用户可以通过url链接跳转到会议室中。
1.通过房间ID进入指定房间
1.1概述
通过房间ID,进入指定房间,登录用户传有效SID,非登录用户不传。
1.2请求格式
https:// 61.182.226.42:10443/app/#/?role=1&rd= 6656&name=小明
1.3参数
参数 | 类型 | 是否必选 | 参数说明 |
SID | String | M | Session ID 用户登录后产生的身份标识码 |
uid | String | O | 用户唯一标识,登录用户传 |
role | number | O |
角色role: 会议场模式:1是主持人 2普通参会人员; 培训模式:1是主持人 2是讲师,3普通参付人员 |
rd | number | M | 房间唯一标识码 |
v | number | O | 进入会议室默认:1:摄像头打开,0:摄像头不打开 |
name | String | O | 参会人员昵称 |
2.通过会议ID进入指定房间
2.1概述
通过会议ID,进入指定房间,登录用户传有效SID,非登录用户不传。
2.2请求格式
https:// 61.182.226.42:10443/app/#/?role=1&code= 6656&name=小明
2.3参数
参数 | 类型 | 是否必选 | 参数说明 |
SID | String | M | Session ID 用户登录后产生的身份标识码 |
uid | String | O | 用户唯一标识,登录用户传 |
role | number | O | 角色role: 会议场模式:1是主持人 2普通参会人员; 培训模式:1是主持人 2是讲师,3普通参付人员 |
code | number | M | 会议唯一标识码 |
v | number | O | 进入会议室默认:1:摄像头打开,0:摄像头不打开 |
name | String | O | 参会人员昵称 |
Bean类说明
对文中的Object的对象补充说明。1.User
参数 | 类型 | 参数说明 |
id | Number | 用户唯一标识码 |
account | String | 账号 |
name | String | 昵称 |
String | 邮件地址 | |
phone | String | 手机号 |
photo | String | 头像 |
company | String | 公司名称 |
2.Company
参数 | 类型 | 参数说明 |
id | Number | 公司唯一标识码 |
name | String | 公司名 |
String | 公司邮件地址 | |
phone | String | 公司手机号 |
logo | String | 公司Logo |
address | String | 公司地址 |
3.Room
参数 | 类型 | 参数说明 |
id | Number | 唯一标识码 |
name | String | 房间名 |
ownerId | Number | 房间拥有者用户唯一标识码 |
roomType | Number | 房间类型 1音频 2视频 3培训 |
definition | String | 清晰度 1080p 720p 480p 240p |
numberLimit | Number | 房间人数上限 |
isPublic | Boolean | true 公共会议室 false 私有会议室 |
isHasPwd | Boolean | 是否有密码 |
appointmentId | Number | 房间对应的预约会议唯一标识,仅在会议中使用 |
appointmentName | String | 对应会议的名称,仅在会议中使用 |
superModeId | Number | 仅在会议中使用,会议中的管理员的唯一标识 |
logo | String | Logo |
comment | String | 描述 |
4.Client
参数 | 类型 | 参数说明 |
id | Number | 用户唯一标识码 |
name | String | 昵称 |
String | 邮件地址 | |
phone | String | 手机号 |
pictureurl | String | 头像 |
company | String | 公司名称 |
mode | String | 终端类型 |
streamId | Number | 用户唯一标识码 |
broadCastId | number | 用户唯一标识码 流媒体使用 |
isMuted | Boolean | 是否是静音状态 |
isSuperModerator | Boolean | 是否是主持人 |
5.Appointment
参数 | 类型 | 参数说明 |
id | Number | 唯一标识码 |
name | String | 会议名称 |
startTime | Date | 开始时间 |
endTime | Date | 结束时间 |
from | User | 创建者 |
timeLength | Number | 分钟 |
description | String | 描述 |
streamId | Number | 用户唯一标识码 |
broadCastId | number | 用户唯一标识码 流媒体使用 |
actuallyStartTime | Date | 真实开始时间 |
actuallyEndTime | Date | 真实结束时间 |