全量化低代码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参数
参数类型是否必选参数说明
nameStringM账号
passwordStringM密码
2.3返回参数
参数类型参数说明
userObject用户信息
companyObject公司信息
resultnumber0:成功,1:用户名密码不正确
2.4示例
rtcPeer.login({
      name: username,
      password: password
      }).then(function(d) {
      $("#account").text(d.user.name);
     });

3.登出(rtcPeer.logout)

3.1概述

用户登录接口

3.2参数
参数类型是否必选参数说明
userIdnumberM用户唯一标识
3.3返回参数
参数类型参数说明
resultnumber0:退出成功,1:退出失败
3.4示例
rtcPeer.logout({ userId: rtcPeer.getCurrentUser().id }).then(function(d) {
                         showLogin(true);
});

4.当前用户(rtcPeer. getCurrentUser)

4.1概述

登录后,获取当前用户信息

4.2参数

4.3返回参数
参数类型参数说明
userObject当前用户对象
4.4示例
var currentUser = rtcPeer.getCurrentUser();

5.当前公司(rtcPeer. getCurrentCompany)

5.1概述

登录后,获取当前用户所在公司信息

5.2参数

5.3返回参数
参数类型参数说明
companyObject当前用户所在公司信息
5.4示例
var currentOrg = rtcPeer. getCurrentCompany();

6.查询房间(rtcPeer. getRoomById)

6.1概述

根据房间唯一标识查询房间信息

6.2参数
参数类型是否必选参数说明
roomIdnumberM房间唯一标识码
6.3返回参数
参数类型参数说明
roomObject虚拟房间信息
6.4示例
var room=null;
rtcPeer. getRoomById ({
   roomId:1012
   }).then(function(d){
   room=d.room
});

7.创建房间(rtcPeer. createRoom)

7.1概述

创建虚拟房间

7.2参数
参数类型是否必选参数说明
roomtypenumberM房间类型 1音频会议 2视频会议 3视频回传
nameStringM房间名称
descStringM房间信息描述
pictureuriStringM房间Logo
definitionStringM清晰度 1080p 720p 480p 240p
numberLimitnumberM房间人数上限
isPublicBooleanMture公共会议室 false 私有会议室
7.3返回参数
参数类型参数说明
number虚拟房间唯一标识
resultnumber0 成功 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参数
参数类型是否必选参数说明
roomTypenumberM房间类型 1音频会议 2视频会议 3视频回传
roomIdnumberM虚拟房间唯一标识
nameStringM房间名称
descStringM房间信息描述
pictureuriStringM房间Logo
definitionStringM清晰度 1080p 720p 480p 240p
numberLimitnumberM房间人数上限
isPublicBooleanMture公共会议室 false 私有会议室
8.3返回参数
参数类型参数说明
roomIdnumber虚拟房间唯一标识
resultnumber0 成功 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参数
参数类型是否必选参数说明
roomIdnumberM房间唯一标识码
9.3返回参数
参数类型参数说明
resultnumber0 成功 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参数
参数类型是否必选参数说明
roomIdnumberM会议室房间唯一标识
passwordStringM密码
11.3返回
参数类型参数说明
resultLong0成功
11.4示例
rtcPeer.modifyRoomPwd({
	roomId:599,
	password:"1234"}).then(function(d){
	console.log(d)
	})

12.检查房间密码(rtcPeer. checkRoomPwd)

12.1概述

检查房间密码是否正确

12.2参数
参数类型是否必选参数说明
roomIdnumberM会议室房间唯一标识
passwordStringM密码
12.3返回
参数类型参数说明
resultLong1成功0 失败
12.4示例
rtcPeer.checkRoomPwd({
	roomId:599,
	password:"1234"}).then(function(d){
	console.log(d)
})

13.检查房间是否有密码(rtcPeer. checkRoomHasPwd)

13.1概述

检查房间密码是否有密码

13.2参数
参数类型是否必选参数说明
roomIdnumberM会议室房间唯一标识
13.3返回
参数类型参数说明
isHasPwdBooleantrue: 有密码;   flase:没有密码
13.4示例
rtcPeer.checkRoomHasPwd({
	roomId:599
}).then(function(d){
	console.log(d)
})

14.添加房间成员(rtcPeer. addRoomMan)

14.1概述

添加私有房间成员,添加到房间里的成员可以通过房间列表查询到此房间。

14.2参数
参数类型是否必选参数说明
roomIdnumberM会议室房间唯一标识
userIdnumberM用户唯一标识
14.3返回
参数类型参数说明
resultLong0成功
14.4示例
rtcPeer.addRoomMan({roomId:9,userId:8})

15.删除房间成员(rtcPeer. deleteRoomMen)

15.1概述

将指定成员从私有房间中移除。

15.2参数
参数类型是否必选参数说明
roomIdnumberM会议室房间唯一标识
moderatorIdnumberM用户唯一标识
15.3返回
参数类型参数说明
resultLong0成功
15.4示例
rtcPeer.deleteRoomMen({roomId:81,moderatorId:138})

16.查询房间成员列表(rtcPeer. queryRoomMen)

16.1概述

根据房间唯本标识码查询房间内成员。

16.2参数
参数类型是否必选参数说明
roomIdnumberM会议室房间唯一标识
16.3返回
参数类型参数说明
resultLong0成功
moderatorsArraymoderator对象
16.4示例
rtcPeer.queryRoomMen({roomId:8}).then(function(d){console.log(d)})

17.查询房间列表(rtcPeer. queryMyRooms)

17.1概述

查询当前用户有权限进入的房间列表

17.2参数

17.3返回参数
参数类型参数说明
roomsArray虚拟房间列表
17.4示例
var rooms=[];
rtcPeer. queryRoomsUniq().then(function(d){
      rooms=d.rooms
    });

18.检查房间是否正在使用(rtcPeer. checkActiveRoom)

18.1概述

检查房间是正在使用

18.2参数
参数类型是否必选参数说明
roomIdnumberM房间唯一标识码
18.3返回参数
参数类型参数说明
resultnumber0 无使用 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参数
参数类型是否必选参数说明
nameStringO会议名称,默认‘即时会议’
descriptionStringO描述
typeNumberO1:音频会议 2网络会议 3在线培训
startTimeDateO会议开始时间,默认接口调用时间
endTimeDateO会议结束时间,默认开始时间+1小时
membersArrayO

邀请成员,数组内成员格式为字符串,

格式如下:

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普通参会人员,建议只邀请主持人和讲师

topicsArrayO

网络会议 子议题

数组内的Objet格式:

{ “title”:“议题”, “content”: “具体内容” }

19.3返回参数
参数类型参数说明
roomIdnumber会议对应房间的唯一标识码
meetingIdnumber会议唯一标识码
19.4示例
rtcPeer.createAppointment({name:"test",description:'abc',type:2})
.then(function(d){console.log(d)})

20.查询会议(rtcPeer. queryAppointmentById)

20.1概述

根据会议唯一标识码查询会议信息。

20.2参数
参数类型是否必选参数说明
meetingIdNumberM会议唯一标识码
20.3返回参数
参数类型参数说明
meetingObject会议信息
membersArray

邀请成员,数组内成员格式为对象,

格式如下:

{“codeId”: “test” ,  “name”:“章三”,“email”:test@qq.com”,”role”:”2”,id:1}

注:

codeId 为用户对接的唯一标示

id为视频系统的用户id,

name:用户昵称 email:邮件,

角色role:  可以不传  默认普通参会人员

会议场模式:1是主持人 2普通参会人员;

培训模式:1是主持人 2是讲师,3普通参会人员,建议只邀请主持人和讲师

topicsArray

网络会议 子议题

数组内的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参数
参数类型是否必选参数说明
nameStringM会议名称,默认‘即时会议’
descriptionStringO描述
typeNumberM1:音频会议 2网络会议 3在线培训
startTimeDateM会议开始时间,默认接口调用时间
endTimeDateM会议结束时间,默认开始时间+1小时
meetingIdnumberM会议唯一标识码
membersArrayO

邀请成员,数组内成员格式为String,

格式如下:

memberId,name,email,id, Etc/GMT+8,role

注:memberId 默认为0,

id为用户的唯一标识码id,

name:用户昵称

email:邮件,可以为null

角色role:

会议场模式:1是主持人 2普通参会人员;

培训模式:1是主持人 2是讲师,3普通参付人员,建议只邀请主持人和讲师

topicsArrayO

网络会议 子议题

数组内的Objet格式:

{ “title”:“议题”, “content”: “具体内容” }

21.3返回参数
参数类型参数说明
roomIdnumber会议对应房间的唯一标识码
meetingIdnumber会议唯一标识码
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参数
参数类型是否必选参数说明
typeNumberO1:音频会议 2网络会议 3在线培训
meetingIdnumberM会议唯一标识码
22.3返回参数
参数类型参数说明
resultnumber0 删除成功 2正在使用中,不能删除

23.查询会议列表(rtcPeer. queryAppointments)

23.1概述

根据时间段查询会议列表。

23.2参数
参数类型是否必选参数说明
startTimeDateO查询会议开始时间
endTimeDateO查询会议结束时间,默认开始时间+24*3小时
pageNonumberO页码 从0开始
pageSizenumberO一页数据量
23.3返回参数
参数类型参数说明
meetingsArray会议列表
23.4示例
rtcPeer.queryAppointments({}).then(function(d){console.log(d)})

24.查询参会信息(rtcPeer. getRoomByInviteCode)

24.1概述

根据会议唯一标识码或随机码查询会议信息。

24.2参数
参数类型是否必选参数说明
codeNumberM会议唯一标识码
inviteCodeNumberO随机码,随码入会,有值用随机码,没值用code
24.3返回参数
参数类型参数说明
resultnumber0成功,3未开始,5没有查询到,其它无效会议号
roomObject当前会议所在虚拟房间信息
meetingObject当前会议信息
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参数
参数类型是否必选参数说明
roomIdnumberM房间唯一标识码
pageNonumberM页码 从0开始
pageSizenumberM一页数据量
25.3返回参数
参数类型参数说明
resultListArray会议列表
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参数
参数类型是否必选参数说明
orgIdnumberM公司唯一标识码
userIdnumberM用户唯一标识
pageNonumberM页码 从0开始
pageSizenumberM一页数据量
26.3返回参数
参数类型参数说明
usersArray用户列表
totalCountnumber数据总数
totalPagenumber数据总页数
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参数
参数类型是否必选参数说明
orgIdnumberM公司唯一标识码
accountnumberM用户帐号
passwordStringM默认密码
levelnumberM用户级别,4:普通用户,5:参会用户
nameStringM用户名称
27.3返回参数
参数类型参数说明
resultnumber0 成功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参数
参数类型是否必选参数说明
userIdnumberM用户唯一标识码
phoneStringO手机号
addressStringO地址
jobStringO用户级别,4:普通用户,5:参会用户
nameStringO用户名称
companynameStringO对应的所在公司
28.3返回参数
参数类型参数说明
resultnumber0 成功1 账号重复
userObject更新后的用户对象
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参数
参数类型是否必选参数说明
orgIdnumberM公司唯一标识码
userIdnumberM用户唯一标识
29.3返回参数
参数类型参数说明
resultnumber0 成功1 账号重复
29.4示例
rtcPeer.deleteUser({
			orgId:2,
			userId:84
			}).then(function(d){
				console.log(d)
			})

30.查询流媒体当前状态(rtcPeer. getMediaState)

30.1概述

查询流媒体当前状态。

30.2参数

30.3返回参数
参数类型参数说明
objectArray多台流媒体数组

数组中的media参数说明

参数类型参数说明
mediaAddressString流媒体地址
mediaIdnumber流媒体对应的唯一标识
mediaNameString流媒体名称
participantsnumber参会总人员
roomSizeString会议室数量
statusnumber0正常,其它:不正常
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参数
参数类型是否必选参数说明
orgIdnumberM公司唯一标识码
userIdnumberO用户唯一标识,传值查询当前用户的录制,不传查询公司下所有录制
nameStringO模糊查询
startDateStringO查询会议开始时间,传入UTC时间格式 “yyyyMMddHHmmss”
endDateStringO查询会议结束时间,传入UTC时间格式 “yyyyMMddHHmmss”
pageNonumberM页码 从0开始
pageSizenumberM一页数据量
31.3返回参数
参数类型参数说明
recordListArray录制数据
totalPagenumber总页数
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参数
参数类型是否必选参数说明
recordIdsArrayM录制Id数组
32.3返回参数
参数类型参数说明
resultnumber0成功 1失败
32.4示例
rtcPeer.deleteRecords({
      recordIds: records
   }).then(function(data) {
   }

33. 创建即时会议(rtcPeer.instantAppointment

33.1概述

创建即使会议

33.2参数
参数类型是否必选参数说明
nameStringM会议名称
orgIdnumberM公司唯一标识,私有部署可传2
startTimeStringM会议开始时间 ,传入UTC时间格式 “yyyyMMddHHmmss”
endTimeStringM会议结束时间 ,传入UTC时间格式“yyyyMMddHHmmss”
typenumberM房间类型 1音频会议 2视频会议 3 远程培训
isPublicBooleanMture公共会议室 false 私有会议室
33.3返回参数
参数类型参数说明
meetingIdnumber会议唯一标识
roomIdnumber对应的房间id
resultnumber0成功 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参数
参数类型是否必选参数说明
userIdObjectM用户唯一标识
roomIdnumberM会议虚拟房间唯一标识
roomTypenumberM1.音频会议 2视频会议 3在线培训
usernameStringO用户名称,游客时使用
1.3返回参数
参数类型参数说明
clientObject虚拟参会人员信息,当前用户client
membersArray虚拟参会人员列表,不包含当前用户client
roomObject当前会议所在虚拟房间信息
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返回参数
参数类型参数说明
resultnumber0:成功,1:失败
2.4示例
meeting.exit().then(function() {
    showVideoArea(false);
    $('#local').empty();
    $('#network').empty();
 });

3.结束会议(rtcPeer.meeting. finish)

3.1概述

所有参会人员全部退出会议。

3.2参数

3.3返回参数
参数类型参数说明
resultnumber0:成功,1:失败
3.4监听事件
参数类型是否必选参数说明
onFinishStringM会议结束消息事件

事件获取数据

参数类型参数说明
userIdnumber调用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参数

参数类型是否必选参数说明
audioBooleanM本地麦克风是否使用获取声音
videoBooleanM本地视频是否使用获取视频
useVideoBooleanO是否使用摄像头,如果不使用摄像头,video属性设置为false,默认true
localTagStringO本地视频挂载的Dom(Video tag id)
remoteTagStringO远端视频挂载的Dom(Video tag id),展示时是声控切换流(默认流)
definitionStringO清晰度 1080p 720p 480p 240p
maxFrameRatenumberO最大帧率 ,范围1~30
minFrameRatenumberO最小帧率,范围1~30,注:minFrameRate<=maxFrameRate
callbackFunctionO成功后回调
4.3返回参数
参数类型参数说明
getBitrateFunction获取当前通道码率和帧率
clientobject虚拟参会方
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参数
参数类型是否必选参数说明
clientObjectM用户参会的虚拟身份
domIdStringM视频挂载的Dom(Video tag id)
callbackFunctionO播放成功回调
5.3返回参数
参数类型参数说明
getBitrateFunction获取当前通道码率和帧率
clientobject虚拟参会方
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参数
参数类型是否必选参数说明
objectObjectM用户参会的虚拟身份
callbackFunctionO停止播放成功回调
6.3示例
rtcPeer.meeting.stopPlay({
                    client: data.client,
                    callback: function(option) {
                        $('#client' + option.client.id).remove();
                    }
                });

7.打开或关闭本地视频(rtcPeer.meeting. updateVideo)

7.1概述

打开或关闭本地视频。

7.2参数
参数类型是否必选参数说明
clientObjectM用户参会的虚拟身份
videoBooleanMtrue :打开视频 false:关闭视频
callbackFunctionO回调函数
7.3示例
meeting.updateVideoMode({
            		video: isOpenVideo,
            		client: myClient,
            		callback: function(myClient) {}
        	});

8.打开或关闭本地麦克风(meeting. updateMute)

8.1概述

打开或关闭本地麦克风。

8.2参数
参数类型是否必选参数说明
isMuteBooleanMfalse:打开麦克风 true:关闭麦克风
8.3示例
rtcPeer.meeting. updateAudioMode (isAudio);

9.指定用户静音消息(rtcPeer.meeting. muteMsg)

9.1概述

发送关闭或打开指定用户的麦克风消息,指定用户接收到消息后,将自己静音或取消静音。

9.2参数
参数类型是否必选参数说明
userIdnumberMClient中的id值
roomIdnumberM当前会议房间的唯一标识(room id)
isMuteBooleanMfalse :打开麦克风 true:关闭麦克风
superStringO‘fromSuper’ 主持人发送
9.3监听事件
参数类型是否必选参数说明
onMuteStringM静音消息事件

事件获取数据

参数类型是否必选参数说明
userIdnumberMClient中的id值
roomIdnumberM当前会议房间的唯一标识(room id)
isMuteBooleanMfalse :打开麦克风 true:关闭麦克风
superStringO‘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参数
参数类型是否必选参数说明
userIdnumberMClient中的id值
roomIdnumberM当前会议房间的唯一标识(room id)
isMuteBooleanMfalse:打开麦克风 true:关闭麦克风
10.3监听事件
参数类型是否必选参数说明
onMuteAllStringM全体静音消息事件

事件获取数据

参数类型是否必选参数说明
userIdnumberMClient中的id值
roomIdnumberM当前会议房间的唯一标识(room id)
isMuteBooleanMfalse:打开麦克风 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参数
参数类型是否必选参数说明
userIdnumberMClient中的id值
roomIdnumberM当前会议房间的唯一标识(room id)
11.3监听事件
参数类型是否必选参数说明
tirenStringM踢人消息事件

事件获取数据

参数类型是否必选参数说明
userIdnumberMClient中的id值
roomIdnumberM当前会议房间的唯一标识(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监听事件
参数类型是否必选参数说明
onRaiseHandStringM踢人消息事件

事件获取数据

参数类型是否必选参数说明
clientObjectMClient
roomIdnumberM当前会议房间的唯一标识(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参数
参数类型是否必选参数说明
fileNameStringM保存文件名
callbackFunctionM回调函数
13.3示例
		rtcPeer.meeting.startLocalRecord ({
            		fileName:”abcd” 
              });

14.停止本地录制(rtcPeer.meeting.stopLoaclRecord)

14.1概述

停止本地录制。只支持PC端,浏览器需要安装插件。

14.2参数
参数类型是否必选参数说明
callbackFunctionM回调函数
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参数
参数类型是否必选参数说明
userIdnumberMClient中的id值
roomIdnumberM当前会议房间的唯一标识(room id)
17.3监听事件
参数类型是否必选参数说明
onCompereStringM设置主持人消息事件

事件获取数据

参数类型是否必选参数说明
userIdnumberMClient中的id值
roomIdnumberM当前会议房间的唯一标识(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参数
参数类型是否必选参数说明
shareScreenIdnumberM临时创建的分享唯一标识
domIdStringMvideo标签唯一dom id
18.3监听事件
参数类型是否必选参数说明
onShareScreenStringM分享控制事件

事件获取数据

参数类型参数说明
shareScreenIdnumbershareScreenId 有值表是分享,为空表册关闭
roomIdnumber分享所在的房间唯一标识
clientObject分享的发起者
18.4监听本地事件
参数类型是否必选参数说明
shareScreenString 分享屏幕者的本地事件

事件获取数据

参数类型参数说明
typeString

type值: play, stop,事件类型

play:屏幕分享

stop:停止分享

shareScreenIdnumbershareScreenId 分享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参数
参数类型是否必选参数说明
callbackFunctionO回调函数
19.3示例
rtcPeer.meeting. stopShareScreen ();

20.播放屏幕共享(rtcPeer.meeting. playShareScreen)

20.1概述

播放远端屏幕共享。只支持PC端。html video标签一定要加autoplay muted

20.2参数
参数类型是否必选参数说明
shareScreenIdnumberM临时创建的分享唯一标识
domIdStringMvideo标签唯一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参数
参数类型是否必选参数说明
callbackFunctionO回调函数
21.4示例
rtcPeer.meeting.flipsCamera(function(){});

22.视频切语音(rtcPeer.meeting. audioOnlyMeeting)

22.1概述

将视频会议切换成语音会议模式。

22.2参数
参数类型是否必选参数说明
clientObjectM用户参会的虚拟身份
callbackFunctionO回调函数
22.3监听事件
参数类型是否必选参数说明
onPublishedStringM视频消息事件

事件获取数据

参数类型参数说明
eventString

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参数
参数类型是否必选参数说明
userIdnumberM用户唯一标识
roomIdnumberM房间唯一标识
isMuteBooleanM是否静音,true静音,false取消静音
23.3监听事件
参数类型是否必选参数说明
onMuteStringM静音消息事件

事件获取数据

参数类型参数说明
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参数
参数类型是否必选参数说明
KeyStringM消息事件名:换成对应事件名

主要事件

参数类型参数说明
EnterRoomString进入房间事件
ExitRoomString退出房间事件
onLocalPublishedString本地流连接流媒体服务器成功 本地播放成功事件
onPublishedString视频播放或停止事件
onLinkSlowStringcode: 1001本地视频网络上传较差 code: 1002远端视频网络下载较差
onLocalRecordString

录制本地流事件,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参数
参数类型是否必选参数说明
userIdnumberMClient中的id值 ,当前用户
roomIdnumberM当前会议房间的唯一标识(room id)
contentStringM聊天内容
25.3监听事件
参数类型是否必选参数说明
onChatStringM聊天消息事件

事件获取数据

参数类型参数说明
userIdnumberClient中的id值
roomIdnumber当前会议房间的唯一标识(room id)
contentString聊天内容
clientClient发送信息的人信息
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参数
参数类型是否必选参数说明
userIdnumberMClient中的id值 ,当前用户
otherUserIdnumberM指定聊天的的client id,当前会议已存的用户
roomIdnumberM当前会议房间的唯一标识(room id)
contentStringM聊天内容
26.3监听事件
参数类型是否必选参数说明
onChatStringM聊天消息事件

事件获取数据

参数类型参数说明
userIdnumberClient中的id值
roomIdnumber当前会议房间的唯一标识(room id)
contentString聊天内容
clientClient发送信息的人信息
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参数
参数类型是否必选参数说明
actionStringMstart|stop|pause|resume]启动翻译,停止翻译,暂停和恢复
27.3监听事件
参数类型是否必选参数说明
onTranscriptionStringM翻译消息事件

事件获取数据

参数类型是否必选参数说明
varStringM翻译文字
onebestStringM最终调整后的翻译文字(不是每次翻译后都 有onebest)
bgStringM同一句翻译,唯一标识
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返回数据
参数类型参数说明
messageString描述
resultBooleanture翻译打开状态,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参数
参数类型是否必选参数说明
fileNameStringO保存文件名
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参数
参数类型是否必选参数说明
targetUserIdnumberM用户User中的id值
ownDeviceTypeStringO设备类型 pc 、Android、iOS、webphone、tv
1.3监听事件
参数类型是否必选参数说明
doInviteStringM被呼叫者收到的邀请消息事件

事件获取数据

参数类型参数说明
ownUserIdnumber发起呼叫者的用户唯一标识Id
ownDeviceTypeString发起呼叫者的用户设备类型
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参数
参数类型是否必选参数说明
targetUserIdnumberM呼叫者用户唯一标识码
targetDeviceTypeStringO设备类型 pc 、Android、iOS、webphone、tv
ownDeviceTypeStringO设备类型 pc 、Android、iOS、webphone、tv
2.3监听事件
参数类型是否必选参数说明
doAgreeStringM被呼叫者发送同意请求消息事件

事件获取数据

参数类型参数说明
ownUserIdnumber被呼叫者的用户唯一标识Id
ownDeviceTypeString被呼叫者的用户设备类型
2.4示例
   rtcPeer.agree({
        'targetUserId': receiveUser.id,
        'targetDeviceType': receiveUser.deviceType
    });
 

    rtcPeer.off("doAgree").on("doAgree", function(data) {
    });

3.拒绝呼叫请求(rtcPeer. reject)

3.1概述

拒绝呼叫请求,并发送信息告诉呼叫。

3.2参数
参数类型是否必选参数说明
targetUserIdnumberM呼叫者用户唯一标识码
targetDeviceTypeStringO设备类型 pc 、Android、iOS、webphone、tv
ownDeviceTypeStringO设备类型 pc 、Android、iOS、webphone、tv
3.3监听事件
参数类型是否必选参数说明
rejectStringM被呼叫者发送拒绝请求消息事件

事件获取数据

参数类型参数说明
ownUserIdnumber被呼叫者的用户唯一标识Id
ownDeviceTypeString被呼叫者的用户设备类型
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参数
参数类型是否必选参数说明
targetUserIdnumberM呼叫者用户唯一标识码
targetDeviceTypeStringO呼叫者设备类型 pc 、Android、iOS、webphone、tv
ownDeviceTypeStringO设备类型 pc 、Android、iOS、webphone、tv
6.3监听事件
参数类型是否必选参数说明
doEventStringM

消息事件 event:

onRinging响铃事件

onBusy 正在忙事件

onConnected 连接成功事件,开始音视频连接

事件获取数据

参数类型参数说明
ownUserIdnumber被呼叫者的用户唯一标识Id
ownDeviceTypeString被呼叫者的用户设备类型
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参数
参数类型是否必选参数说明
targetUserIdnumberM呼叫者用户唯一标识码
targetDeviceTypeStringO呼叫者设备类型 pc 、Android、iOS、webphone、tv
roomIdNumberM虚拟房间唯 一标识码
roomTypeNumberM

房间类型:1:音频会议 2 :视频会议

3: 在线培训

7.3监听事件
参数类型是否必选参数说明
doEventStringM

消息事件 event:

onRinging响铃事件

onBusy 正在忙事件

onConnected 连接成功事件,开始音视频连接

事件获取数据

参数类型参数说明
ownUserIdnumber被呼叫者的用户唯一标识Id
ownDeviceTypeString被呼叫者的用户设备类型
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参数
参数类型是否必选参数说明
moduleStringM值:call
methodStringM方法名:doInvite
ownUserIdLongM当前用户唯一标识
targetUserIdLongM被呼叫用户User中的id(用户唯一标识)
ownDeviceTypeStringO设备类型 pc 、Android、iOS、webphone、tv
targetDeviceTypeStringO被呼叫设备类型 pc 、Android、iOS、webphone、tv
typeLongO1音频会议 2视频会议 3视频回传
roomIdLongM会议室房间唯一标识,通过创建房间接口获取(newTempRoom接口)
1.3监听事件
参数类型是否必选参数说明
doInviteStringM被呼叫者收到的邀请消息事件

事件获取数据

参数类型参数说明
ownUserIdnumber发起呼叫者的用户唯一标识Id
ownDeviceTypeString发起呼叫者的用户设备类型
typenumber1音频会议 2视频会议 3视频回传

2.同意呼叫请求接口

2.1概述

同意呼叫请求,并发送信息告诉呼叫。

2.2参数
参数类型是否必选参数说明
moduleStringM值:call
methodStringM方法名:doAgree
ownUserIdLongM当前用户唯一标识
targetUserIdLongM呼叫用户User中的id(用户唯一标识)
ownDeviceTypeStringO设备类型 pc 、Android、iOS、webphone、tv
targetDeviceType StringO呼叫设备类型 pc 、Android、iOS、webphone、tv
typeLongO1音频会议 2视频会议 3视频回传
roomIdLongM通过呼叫接口得到
2.3监听事件
参数类型是否必选参数说明
doAgreeStringM被呼叫者发送同意请求消息事件

事件获取数据

参数类型参数说明
ownUserIdnumber被呼叫者的用户唯一标识Id
ownDeviceTypeString被呼叫者的用户设备类型

3.拒绝呼叫请求接口

3.1概述

拒绝呼叫请求,并发送信息告诉呼叫。

3.2参数
参数类型是否必选参数说明
moduleStringM值:call
methodStringM方法名:reject
ownUserIdLongM当前用户唯一标识
targetUserIdLongM呼叫用户User中的id(用户唯一标识)
ownDeviceTypeStringO设备类型 pc 、Android、iOS、webphone、tv
targetDeviceTypeStringO呼叫设备类型 pc 、Android、iOS、webphone、tv
3.3监听事件
参数类型是否必选参数说明
rejectStringM被呼叫者发送拒绝请求消息事件

事件获取数据

参数类型参数说明
ownUserIdnumber被呼叫者的用户唯一标识Id
ownDeviceTypeString被呼叫者的用户设备类型

4.取消呼叫请求接口

4.1概述

取消呼叫请求,并发送信息告诉被呼叫者。

4.2参数
参数类型是否必选参数说明
moduleStringM值:call
methodStringM方法名:cancel
ownUserIdLongM当前用户唯一标识
targetUserIdLongM呼叫用户User中的id(用户唯一标识)
ownDeviceTypeStringO设备类型 pc 、Android、iOS、webphone、tv
targetDeviceTypeStringO呼叫设备类型 pc 、Android、iOS、webphone、tv
4.3监听事件
参数类型是否必选参数说明
cancelStringM取消呼叫请求消息事件

事件获取数据

参数类型参数说明
ownUserIdnumber被呼叫者的用户唯一标识Id
ownDeviceTypeString被呼叫者的用户设备类型

5.事件消息通用接口

5.1概述

响铃消息、忙消息、连接成功消息都是通过自定doEvent 接口中event 的值来实现

5.2参数
参数类型是否必选参数说明
moduleStringM值:call
methodStringM方法名:doEvent
ownUserIdLongM当前用户唯一标识
targetUserIdLongM呼叫用户User中的id(用户唯一标识)
ownDeviceTypeStringO设备类型 pc 、Android、iOS、webphone、tv
targetDeviceTypeStringO呼叫设备类型 pc 、Android、iOS、webphone、tv
eventStringM

自定议事件名:onRinging响铃事件

onBusy 正在忙事件

onConnected 连接成功事件,开始音视频连接

5.3监听事件
参数类型是否必选参数说明
doEventStringM

消息事件 event:

onRinging响铃事件

onBusy 正在忙事件

onConnected 连接成功事件,开始音视频连接

事件获取数据

参数类型参数说明
ownUserIdnumber被呼叫者的用户唯一标识Id
ownDeviceTypeString被呼叫者的用户设备类型

6.呼叫注册接口

6.1概述

登录后,调用呼叫注册接口,注册当前用户已在线,可以被呼叫。

6.2参数
参数类型是否必选参数说明
moduleStringM值:call
methodStringM方法名:doRegister
SIDStringMSession ID 由认证接口成功后返回
userIdLongM当前用户唯一标识
deviceTypeStringO设备类型 pc 、Android、iOS、webphone、tv
6.3返回
参数类型参数说明
resultLong呼叫注册成功

7.响铃消息

7.1概述

被呼叫方接收到邀请事件(doInvite)后,被呼叫方当前处于空闲状态时,被呼叫方自动发送响铃消息,告诉呼叫方被呼叫方已响铃。

8.忙消息

8.1概述

被呼叫方接收到邀请事件(doInvite)后,被呼叫方当前处于忙状态(正在开会中)时,被呼叫方自动发送正在忙消息,告诉呼叫方被呼叫方无法接听。

9.连接成功消息

9.1概述

接收到被呼叫方接同意事件(doAgree)后,呼叫方进入会议并发送连接成功消息给被呼叫方,被呼叫方接收到connected事件后,进入指定会议。

10.创建临时房间接口

10.1概述

创建临时房间。

10.2参数
参数类型是否必选参数说明
moduleStringM值:room
methodStringM方法名:newAppRoom
nameStringM房间名称
numberLimitLongM会议室人员上限,最大200人
roomtypeLongM1音频会议 2视频会议 3在线培训
userIdLongM当前用户唯一标识
10.3返回
参数类型参数说明
resultLong0成功
roomIdLong会议室房间唯一标识

11.登出接口

11.1概述

登出。

11.2参数
参数类型是否必选参数说明
moduleStringM值:account
methodStringM方法名:logout
SIDStringMSession ID 由认证接口成功后返回
userIdLongM当前用户唯一标识
11.3返回
参数类型参数说明
resultLong0成功

12.创建预约会议

12.1概述

创建预约会议接口, 创建即时会议,将开始时间设置为当前时间。

12.2参数
参数类型是否必选参数说明
methodStringM方法名,值:new
moduleStringM值:meeting
SIDStringMSession ID 用户登录后产生的身份标识码
nameStringM会议名称
startTimeStringM会议开始时间 ,传入UTC时间格式 “yyyyMMddHHmmss”
endTimeStringM会议结束时间 ,传入UTC时间格式“yyyyMMddHHmmss”
hourStringO会议时长(小时)
leverageStringO会议容量人数(自然数,200方);主要看流媒体服务器的CPU
typeLongM

会议类型 :

1音频会议 2视频会议 3视频回传

isPublicBooleanM是否公开,true公共会议,false:私人会议。建议传false,
pinLongO会议进入校验密码
membersArrayO

邀请成员,数组内成员格式为String,

格式如下:

memberId,name,email,id, Etc/GMT+8,role

注:memberId 默认为0,

id为用户的唯一标识码id,

name:用户昵称

email:邮件,可以为null

角色role:

会议场模式:1是主持人 2普通参会人员;

培训模式:1是主持人 2是讲师,3普通参付人员,建议只邀请主持人和讲师

templateLongO模板
postUrlStringO海报
orgIdLongM公司唯一标识码Id,可以提供,一般情况传2
roomIdLongO

房间唯 一标识id

不传id会重新创建一个,传存在的room id,用此room

baseURLStringO邮件链接地址
topicsArrayO

网络会议 子议题

数组内的Objet格式:

{ “title”:“议题”, “content”: “具体内容” }

12.3返回参数
参数类型参数说明
idInt会议唯一标识
roomIdInt房间的唯一标识,新建会议,如果不传roomId,会议和房间的关系是一对一。
resultInt0:成功,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/accountPOST
1.2.2请求格式
参数类型是否必选参数说明
methodStringM方法名,值:tokenLogin
urlStringM回调请求地址checkUrl(第三方平台用户信息接口地址)
tokenStringM回调请求用户信息确权凭证(调用第三方平台用户信息接口的凭证)
app_codeStringO应用代码,可以不传
companyStringM公司名称(在会议平台注册公司名)
appkeyStringO公司接入api认证key(值:“F6JJKH7LKJKJ8JKJH6GTYMBPO9”)
1.2.3返回参数
参数类型参数说明
SIDStringSession ID 用户登录后产生的身份标识码
organisationCompany公司信息,参考been类中的Company。
userUser用户信息,参考been类中的User.
responseJsonJson回调返回对象
resultLong  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参数
参数类型是否必选参数说明
SIDStringMSession ID 用户登录后产生的身份标识码
uidStringO用户唯一标识,登录用户传
rolenumberO

角色role:

会议场模式:1是主持人 2普通参会人员;

培训模式:1是主持人 2是讲师,3普通参付人员

codenumberM会议唯一标识码
vnumberO进入会议室默认:1:摄像头打开,0:摄像头不打开
nameStringO参会人员昵称

Bean类说明

对文中的Object的对象补充说明。

1.User

参数 类型 参数说明
id Number 用户唯一标识码
account String 账号
name String 昵称
email String 邮件地址
phone String 手机号
photo String 头像
company String 公司名称

2.Company

参数 类型 参数说明
id Number 公司唯一标识码
name String 公司名
email 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 昵称
email 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 真实结束时间