new Room()
房间Room构造函数。
Example
var room = new Room(roomId);
Methods
-
addCallback(type, callback)
-
房间级别的回调
Parameters:
Name Type Description type
RoomCallback 回调枚举标识
callback
Object 回调方法名,可以自定义,建议保持默认值
Example
room.addCallback(RoomCallback.connection_status, onConnectionStatus); room.addCallback(RoomCallback.connection_indicator,onConnectionIndicator); room.addCallback(RoomCallback.room_status_notify, onRoomStatusNotify); room.addCallback(RoomCallback.user_join_notify, onUserJoinNotify); room.addCallback(RoomCallback.user_leave_notify, onUserLeaveNotify); room.addCallback(RoomCallback.leave_indication, onLeaveIndication); room.addCallback(RoomCallback.close_room_result, onCloseRoomResult); room.addCallback(RoomCallback.close_room_notify, onCloseRoomNotify); room.addCallback(RoomCallback.app_data_notify, onAppdataNotify); room.addCallback(RoomCallback.user_data_notify, onUserDataNotify); room.addCallback(RoomCallback.user_name_notify, onUserNameNotify); room.addCallback(RoomCallback.public_message, onPublicMessage); room.addCallback(RoomCallback.private_message, onPrivateMessage); room.addCallback(RoomCallback.public_data, onPublicData); room.addCallback(RoomCallback.private_data, onPrivateData); room.addCallback(RoomCallback.screen_sharing_ended, onScreenSharingEnded); room.addCallback(RoomCallback.outgoing_invite_status_notify, onOutgoingInviteStatusNotify); room.addCallback(RoomCallback.room_control_change_notify, onRoomControlChangeNotify); 与服务器连接状态回调 param:status - 连接状态 function onConnectionStatus(status) { if (status == ConnectionStatus.connecting) { //TODO 与服务器重连中 } else if (status == ConnectionStatus.connected) { //TODO 与服务器重连成功 } else if (status == ConnectionStatus.connectFailed) { //TODO 与服务器重连失败,需要重新登陆 } } 与服务器连接指示器回调 param: connectionIndicator - 连接指示器 function onConnectionIndicator(connectionIndicator){ if(connectionIndicator){ var roomConnection = connectionIndicator.getRoomConnection(); //房间级别 roomConnection.localAddress 本地地址 roomConnection.localPort 本地端口 roomConnection.localProtocol 本地协议 roomConnection.remoteAddress 远端地址 roomConnection.remotePort 远端端口 roomConnection.remoteProtocol 远端协议 roomConnection.downloadBitrate 下载流量 roomConnection.uploadBitrate 上传流量 roomConnection.downloadPacket 下载数据包 roomConnection.uploadPacket 上传数据包 roomConnection.downloadPacketLost 下载数据包丢包数 roomConnection.uploadPacketLost 上传数据包丢包数 roomConnection.downloadPacketLossRate 下载数据包丢包率 roomConnection.uploadPacketLossRate 上传数据包丢包率 //某路音频相关 var audioConnection = connectionIndicator.getAudioConnection(userId); audioConnection.downloadBitrate 音频下载流量 audioConnection.uploadBitrate 音频上传流量 audioConnection.downloadPacket 音频下载数据包 audioConnection.uploadPacket 音频上传数据包 audioConnection.packetsLost 音频数据包丢包数 audioConnection.ssrc audioConnection.trackId audioConnection.payloadType audioConnection.mimeType audioConnection.clockRate //某路视频相关 videoConnection = connectionIndicator.getVideoConnection(userId, cameraId); videoConnection.downloadBitrate 视频下载流量 videoConnection.uploadBitrate 视频上传流量 videoConnection.downloadPacket 视频下载数据包 videoConnection.uploadPacket 视频传数据包 videoConnection.packetsLost 视频数据包丢包数 videoConnection.resolution 分辨率 videoConnection.frameRate 帧率 videoConnection.ssrc videoConnection.trackId videoConnection.payloadType videoConnection.mimeType videoConnection.clockRate * //某路桌面共享相关 screenConnection = connectionIndicator.getScreenConnection(userId); screenConnection.downloadBitrate 桌面共享下载流量 screenConnection.uploadBitrate 桌面共享上传流量 screenConnection.downloadPacket 桌面共享下载数据包 screenConnection.uploadPacket 桌面共享传数据包 screenConnection.packetsLost 桌面共享数据包丢包数 screenConnection.resolution 分辨率 screenConnection.frameRate 帧率 screenConnection.ssrc screenConnection.trackId screenConnection.payloadType screenConnection.mimeType screenConnection.clockRate } } 参会者加会回调 param :users - 参会者数组 function onUserJoinNotify(users) { } 参会者退会回调 param:opt - 退会类型 param:reason - 退会原因 param:user - 退会用户 function onUserLeaveNotify(opt,reason,user) { } 被踢出会议室 param:reason - 被踢原因 param:userId - 踢人的操作者 function onLeaveIndication(reason,userId) { } 房间应用扩展字段回调 param {Object} key - key值 param {Object} value - value值 function onAppdataNotify(key, value) { } 用户扩展内容更新回调 param:userData - 用户扩展内容 param:userId - 用户id function onUserDataNotify(userData, userId ) { } 用户修改名字回调 param {String} userName - 用户新名字 param {String} userId - 用户id function onUserNameNotify(userName, userId){ } 公聊回调 param : Message function onPublicMessage(Message) { } 私聊回调 param: Message function onPrivateMessage(Message) { } 公有透明通道回调 param:dataArrayBuffer - DataArrayBuffer对象 param:userId - user id function onPublicData(dataArrayBuffer, userId) { } 私有透明通道回调 param:dataArrayBuffer - DataArrayBuffer对象 param:userId - user id function onPrivateData(dataArrayBuffer, userId) { } 桌面共享关闭的回调 function onScreenSharingEnded(){ } 外部设备邀请状态回调 param:type - OutgoingInviteType枚举值 param:roomId - 房间ID param:addr - 设备地址 param:status - 邀请状态码 param:msg - 邀请返回状态 function onOutgoingInviteStatusNotify(type,roomId,addr,status,msg){ } 房间参数设置回调 param:roomControl - 参数对象 function onRoomControlChangeNotify(roomControl){ }
-
closeRoom(userId)
-
关闭房间
Parameters:
Name Type Description userId
String 关闭房间的操作用户ID
-
continuousReJoin()
-
多次后重新加会超时后,开启持续永久重新加会
-
getAppData(key)
-
获得房间应用扩展字段信息
Parameters:
Name Type Description key
String key值
Returns:
value- value值
- Type
- String
-
getMaxAttendee()
-
获取允许的最大参加会议人数
Returns:
maxAttendee - 最大参加会议人数
- Type
- Int
-
getMaxAudio()
-
获取允许的最大音频路数
Returns:
maxAudio - 最大音频路数
- Type
- Int
-
getMaxVideo()
-
获取允许的最大视频路数
Returns:
maxVideo - 最大视频路数
- Type
- Int
-
getOwnerId()
-
获取会议建创者Id
Returns:
ownerId - 会议建创者Id
- Type
- String
-
getParticipants()
-
返回参会者数组
Returns:
participants -参会者数组
- Type
- Object
-
getPublishedCamera()
-
获取房间中所有已发布的摄像头视频对象集
-
getPublishedCameraCount()
-
获取房间中所有已发布的摄像头视频数量
-
getPublishedScreen()
-
获取房间中所有已发布的共享屏幕窗口视频对象集
-
getPublishedScreenCount()
-
获取房间中所有已发发布的共享屏幕窗口视频数量
-
getRoomControl()
-
获取房间控制参数
Returns:
- roomControl 房间控制参数
- Type
- Object
-
getRoomId()
-
获取房间号
Returns:
roomId - 房间号
- Type
- String
-
getRoomTopic()
-
获取会议主题
Returns:
topic - 会议主题
- Type
- String
-
getRoomType(roomTypEnum)
-
会议类型判断
Parameters:
Name Type Description roomTypEnum
Enum 传入会议类型枚举
Returns:
true: 是枚举对应的会议类型,false:非枚举对应的会议类型
- Type
- Boolean
-
getSelfUser()
-
返回自己对象
Returns:
selfUser - 自己对象
- Type
- user
-
getSelfUserId()
-
返回自己对象的Id
Returns:
userId - 自己对象的Id
- Type
- String
-
getUsableAudio()
-
获取音频路数的剩余可用数。
逻辑:允许的最大音频路数 - 已发布的音频路数
注:主要用于界面显示用,具体打开的限制提示时,会采用服务器端的返回号来处理
Returns:
usableAudio - 剩余可用音频路数
- Type
- Int
-
getUsableVideo()
-
获取视频路数的剩余可用数。
逻辑:允许的最大视频路数 - 已发布的视频路数
注:主要用于界面显示用,具体打开的限制提示时,会采用服务器端的返回号来处理
Returns:
usableVideo - 剩余可用视频路数
- Type
- Int
-
getUser(userId)
-
通过用户ID获取用户对象
Parameters:
Name Type Description userId
String 用户的Id
Returns:
user - 用户对象
- Type
- Object
-
getUserByUserIdAndNodeId(userId)
-
通过用户ID获取用户对象
Parameters:
Name Type Description userId
String 用户的Id
Returns:
user - 用户对象
- Type
- Object
-
hasUser(userId)
-
通过用户ID,判断用户对象是否存在。
Parameters:
Name Type Description userId
String 用户的Id
-
isMcu()
-
判断当前会议模式是否为MCU模式
Returns:
isMcuRoomMode - 是否为MCU模式. true: mcu模式;false:P2P模式
- Type
- Boolean
-
ismuteSpeaker()
-
获取屏蔽会议声音的当前状态
Returns:
- 屏蔽会议声音的当前状态
- Type
- Boolean
-
join(userId, userName, userData, password, isUseCascade)
-
加会
Parameters:
Name Type Description userId
String 用户的Id
userName
String 用户名
userData
String 用户扩展字段
password
String 会议密码
isUseCascade
Boolean 是否级联加入会议,可以不传,默认为false
-
joinWithOEM(userId, userName, userData, password)
-
OEM加会
Parameters:
Name Type Description userId
Object 用户的Id
userName
Object 用户名
userData
Object 用户扩展字段
password
String 会议密码
-
kickoffUser(reason, userId)
-
踢人
Parameters:
Name Type Description reason
int 踢人原因
userId
String 被踢用户id
-
leave(reason, kickoffOpt)
-
退会
Parameters:
Name Type Description reason
int 退会原因
kickoffOpt
boolean 退会类型: true:被踢退会,false:主动退会,可以不填
-
localICERestart()
-
本地网络变化,ICE重新启动.如:从WIFI切换到有线
-
muteSpeaker()
-
屏蔽会议声音
-
reJoin()
-
重新加会
-
remoteICERestart(iceRestartMsg)
-
远端candidate更新,ICE重新启动
Parameters:
Name Type Description iceRestartMsg
Object 远端下发的ice restart candidate
-
sendPrivateData(dataBinary, userId)
-
发送私有透明通送
Parameters:
Name Type Description dataBinary
Object - ArrayBinary类型的内容
注: ArrayBinary : 二进制数据的原始缓冲区,该缓冲区用于存储各种类型化数组的数据
userId
String 内容接受用户ID
Example
var dataArrayBuffer = typeConversionUtil.String2ArrayBuffer("This is an important piece of news."); room.sendPrivateData(dataArrayBuffer,'15').then(dataSendSuccess).otherwise(dataSendError); function dataSendSuccess(dataMsg) { }
-
sendPrivateMessage(message, userId)
-
发送私聊消息
Parameters:
Name Type Description message
String 消息内容
userId
String 消息接受用户ID
-
sendPublicData(dataBinary)
-
发送公有透明通送
Parameters:
Name Type Description dataBinary
Object - ArrayBinary类型的内容
注: ArrayBinary : 二进制数据的原始缓冲区,该缓冲区用于存储各种类型化数组的数据
Example
var dataArrayBuffer = typeConversionUtil.String2ArrayBuffer("This is an important piece of news."); room.sendPublicData(dataArrayBuffer).then(dataSendSuccess).otherwise(dataSendError); function dataSendSuccess(dataMsg) { }
-
sendPublicMessage(message)
-
发送公聊消息
Parameters:
Name Type Description message
String 消息内容
-
setCameraResolutionOrFrameRate(cameraId, resolution, frameRate, resolutionSetType-, aspectRatio-)
-
设置摄像头分辨率或帧率
Parameters:
Name Type Description cameraId
String 摄摄像头ID
resolution
String 分辨率枚举值,如
frameRate
int 帧率
resolutionSetType-
Object 分辨率设置类型,可不填写,null时默认为ResolutionSetType.exact
aspectRatio-
Number 分辨率宽高比(1.7777777778, 1.3333333333),可不填写(null,0时浏览器自动处理),16:9或4:3时会开启强制
-
setCameraResolutionWHOrFrameRate(cameraId, resolutionWidth, resolutionHeight, frameRate, resolutionSetType-, aspectRatio-)
-
设置摄像头分辨率或帧率
Parameters:
Name Type Description cameraId
String 摄摄像头ID
resolutionWidth
int 分辨率宽
resolutionHeight
int 分辨率高
frameRate
int 帧率
resolutionSetType-
Object 分辨率设置类型,可不填写,null时默认为ResolutionSetType.exact
aspectRatio-
Number 分辨率宽高比(1.7777777778, 1.3333333333),可不填写(null,0时浏览器自动处理),16:9或4:3时会开启强制
-
setRoomControl(attributes)
-
设置房间控制参数(参数为JSON格式字符串)
Parameters:
Name Type Description attributes
String 房间控制参数(JSON格式字符串)
Example
var attributes = '{ 'record': 0, 'mix_record' : 0, 'avc_model': 0, 'resolution': '640*480', 'liver'': 0, 'mixer_live: 0 }"; room.setRoomControl(attributes);
-
setUserAgent(userAgent)
-
设置当前登陆用户的userAgent属性,默认为USER_AGENT_AVD_DEFAULT
Parameters:
Name Type Description userAgent
String Example
room.setUserAgent(USER_AGENT_AVD_MEDIA_MIXER_ADMIN);
-
unmuteSpeaker()
-
取消屏蔽会议声音
-
updateAppData(key, value)
-
更新房间应用扩展字段
Parameters:
Name Type Description key
String - key值
value
String - value值
-
updateRoomStatus(roomStatus)
-
修改会议房间状态
Parameters:
Name Type Description roomStatus
Enum 房间状态枚举