李勇

增加事件消息USER_DEVICE_STATUS_CHAANGE,更新用户的摄像头麦克风开启状态

此 diff 太大无法显示。
... ... @@ -27,7 +27,7 @@ import Server from "config/Server";
import UTF8 from 'utf-8';
let loger = Loger.getLoger('McuClient');
let _sdkInfo = {"version": "v1.15.2.20170507", "author": "www.3mang.com"};
let _sdkInfo = {"version": "v1.16.1.201705010", "author": "www.3mang.com"};
//APE
let _sass;
... ... @@ -105,11 +105,13 @@ export default class MessageEntrance extends Emiter {
_video_ape = new VideoApe();
_video_ape.on('*', (type, data) => this._emit(type, data));
_video_ape.on(MessageTypes.VIDEO_UPDATE, this.videoUpdate.bind(this));//这个监听事件不能删除,需要通知课堂模块,检查channel占用
_video_ape.on(MessageTypes.USER_DEVICE_STATUS_CHAANGE, this.userDeviecStatusChange.bind(this));//监听摄像头和麦克风的开启状态
_audio_ape = new AudioApe();
_audio_ape.on('*', (type, data) => this._emit(type, data));
_audio_ape.on(MessageTypes.AUDIO_UPDATE, this.audioUpdate.bind(this));//这个监听事件不能删除,需要通知课堂模块,检查channel占用
_audio_ape.on(MessageTypes.USER_DEVICE_STATUS_CHAANGE, this.userDeviecStatusChange.bind(this));//监听摄像头和麦克风的开启状态
_whiteboard_ape = new WhiteBoardApe();
_whiteboard_ape.on('*', (type, data) => this._emit(type, data));
... ... @@ -1034,6 +1036,19 @@ export default class MessageEntrance extends Emiter {
}
}
//监听摄像头麦克风状态
userDeviecStatusChange(_data){
/* nodeId:GlobalConfig.nodeId,
userRole:GlobalConfig.userRole,
userName:GlobalConfig.userName,
userId:GlobalConfig.userId,
openCamera:GlobalConfig.openCamera,
openMicrophones:GlobalConfig.openMicrophones*/
if (_confer_ape) {
_confer_ape.updaterUserDeviecStatusChange(_data);
}
}
//VidoeApe
videoUpdate(_data) {
//视频同步的消息发送改变,需要通知ferApe模块中的用户更新状态
... ...
... ... @@ -39,6 +39,7 @@ MessageTypes.CLASS_RECORD_SUCCESS="class_record_success";////开启录制成功
MessageTypes.CHAT_RECEIVE ="chat_receive_message";// 'chat.receive';
//视频模块事件定义
MessageTypes.USER_DEVICE_STATUS_CHAANGE ="user_device_status_change";// 'video.play';//播放视频
MessageTypes.VIDEO_PLAY ="video_play";// 'video.play';//播放视频
MessageTypes.VIDEO_STOP ="video_stop"; //'video.stop';//停止视频
MessageTypes.VIDEO_UPDATE ="video_update";// //这个监听事件不能删除,需要通知课堂模块,检查channel占用(内部使用)
... ...
... ... @@ -375,7 +375,21 @@ class AudioApe extends Ape {
}else {
loger.warn("消息是自己发送的或者是消息无效,不需要处理,消息内容如下:");
loger.log(unpackChannelInfo);
if(unpackChannelInfo.status==ApeConsts.CHANNEL_STATUS_OPENING){
GlobalConfig.openMicrophones=EngineUtils.creatTimestamp();
GlobalConfig.openCamera=0;
}else {
GlobalConfig.openCamera=0;
GlobalConfig.openMicrophones=0;
}
this._emit(MessageTypes.USER_DEVICE_STATUS_CHAANGE,{
nodeId:GlobalConfig.nodeId,
userRole:GlobalConfig.userRole,
userName:GlobalConfig.userName,
userId:GlobalConfig.userId,
openCamera:GlobalConfig.openCamera,
openMicrophones:GlobalConfig.openMicrophones
});
}
this._emit(MessageTypes.AUDIO_UPDATE, unpackChannelInfo);
}
... ...
... ... @@ -697,12 +697,12 @@ class ConferApe extends Ape {
updaterRosterStatus(_param) {
//loger.log("媒体模块发生更新,人员状态需要更新,fromNodeId->",_param);
//如果视频消息中channel的占用人 fromNodeId在人员列表中不存在,需要释放这channel,因为这个有可能是之前没释放成功的
/* if (_param && _param.status == ApeConsts.CHANNEL_STATUS_OPENING && this.rosters[_param.fromNodeId] == null) {
loger.log("媒体模块被占用,占有人已经不存在课堂中,释放Channel,_param->", _param);
if (_param && _param.status == ApeConsts.CHANNEL_STATUS_OPENING && this.rosters[_param.fromNodeId] == null) {
loger.log("媒体模块被占用->占有人已经不存在课堂中->释放->", _param);
this._emit(MessageTypes.CLASS_NONENTITY_ROSTER, {"nodeId": _param.fromNodeId});
}*/
}
if (_param && _param.status == ApeConsts.CHANNEL_STATUS_OPENING) {
/* if (_param && _param.status == ApeConsts.CHANNEL_STATUS_OPENING) {
if(this.rosters[_param.fromNodeId] == null){
loger.log("媒体模块被占用,占有人已经不存在课堂中,释放Channel,_param->", _param);
this._emit(MessageTypes.CLASS_NONENTITY_ROSTER, {"nodeId": _param.fromNodeId});
... ... @@ -727,7 +727,12 @@ class ConferApe extends Ape {
GlobalConfig.openMicrophones=0;
this.updateUserInfo();
}
}
}*/
}
//设备状态更新
updaterUserDeviecStatusChange(_data){
loger.log("音视频设备状态更新->",_data);
this.updateUserInfo();
}
//删除用户
... ...
... ... @@ -379,6 +379,21 @@ class VideoApe extends Ape {
}else {
loger.warn("视频消息是自己发送的或者是视频消息无效,不需要处理,消息内容如下:");
loger.log(unpackChannelInfo);
if(unpackChannelInfo.status==ApeConsts.CHANNEL_STATUS_OPENING){
GlobalConfig.openCamera=EngineUtils.creatTimestamp();
GlobalConfig.openMicrophones=GlobalConfig.openCamera;
}else {
GlobalConfig.openCamera=0;
GlobalConfig.openMicrophones=0;
}
this._emit(MessageTypes.USER_DEVICE_STATUS_CHAANGE,{
nodeId:GlobalConfig.nodeId,
userRole:GlobalConfig.userRole,
userName:GlobalConfig.userName,
userId:GlobalConfig.userId,
openCamera:GlobalConfig.openCamera,
openMicrophones:GlobalConfig.openMicrophones
});
}
this._emit(MessageTypes.VIDEO_UPDATE, unpackChannelInfo);
... ...