李勇

音视频模块控制消息修改字段类型,data字段修改为object对象,可以储存更多数据

此 diff 太大无法显示。
@@ -27,7 +27,7 @@ import Server from "config/Server"; @@ -27,7 +27,7 @@ import Server from "config/Server";
27 import UTF8 from 'utf-8'; 27 import UTF8 from 'utf-8';
28 28
29 let loger = Loger.getLoger('McuClient'); 29 let loger = Loger.getLoger('McuClient');
30 -let _sdkInfo = {"version": "v1.10.5.20170503", "author": "www.3mang.com"}; 30 +let _sdkInfo = {"version": "v1.10.6.20170503", "author": "www.3mang.com"};
31 31
32 //APE 32 //APE
33 let _sass; 33 let _sass;
@@ -29,18 +29,6 @@ ApeConsts.CLASS_TYPE_INTERACT= 1; // 互动课堂,通过MS转发音视频, @@ -29,18 +29,6 @@ ApeConsts.CLASS_TYPE_INTERACT= 1; // 互动课堂,通过MS转发音视频,
29 ApeConsts.CLASS_TYPE_LIVE= 2; // 直播课堂,通过CDN转发音视频,不能进行音视频互动 29 ApeConsts.CLASS_TYPE_LIVE= 2; // 直播课堂,通过CDN转发音视频,不能进行音视频互动
30 30
31 31
32 -/*  
33 -flash  
34 -public static const NR_GUEST:uint = 0; // 客人  
35 -public static const NR_NORMAL:uint = 1; // 普通与会者  
36 -public static const NR_ADMIN:uint = 2; // 管理员  
37 -public static const NR_MASTER:uint = 4; // 主持人  
38 -public static const NR_PRESENTER:uint = 8; // 主讲人  
39 -public static const NR_ASSISTANT:uint = 16; // 助教  
40 -public static const NR_INVISIBLE:uint = 32; // 隐身用户  
41 -*/  
42 -  
43 -  
44 //角色身份 32 //角色身份
45 //ApeConsts.NR_GUEST = 0; // 客人 33 //ApeConsts.NR_GUEST = 0; // 客人
46 ApeConsts.NR_NORMAL = 1;// 普通与会者 34 ApeConsts.NR_NORMAL = 1;// 普通与会者
@@ -103,11 +91,13 @@ ApeConsts.USER_CAMERA_OPEN = 0x0080; // 音视频开启 @@ -103,11 +91,13 @@ ApeConsts.USER_CAMERA_OPEN = 0x0080; // 音视频开启
103 //VIDEO MIC 流媒体消息操作控制类型 91 //VIDEO MIC 流媒体消息操作控制类型
104 ApeConsts.MEDIA_ACTION_DEFAULT=0; 92 ApeConsts.MEDIA_ACTION_DEFAULT=0;
105 93
106 -ApeConsts.MEDIA_ACTION_OPEN_CAMERA=1;// "open.camera";  
107 -ApeConsts.MEDIA_ACTION_CLOSE_CAMERA=2;// "close.camera"; 94 +ApeConsts.MEDIA_ACTION_OPEN_CAMERA=1;// "打开摄像头推流;
  95 +ApeConsts.MEDIA_ACTION_CLOSE_CAMERA=2;// "关闭停止推流";
  96 +
  97 +ApeConsts.MEDIA_ACTION_OPEN_MIC= 21;//"打开音频推流";
  98 +ApeConsts.MEDIA_ACTION_CLOSE_MIC= 22;//"停止音频推流";
108 99
109 -ApeConsts.MEDIA_ACTION_OPEN_MIC= 3;//"open.mic";  
110 -ApeConsts.MEDIA_ACTION_CLOSE_MIC= 4;//"close.mic"; 100 +ApeConsts.MEDIA_ACTION_SETING= 31;//"音视频设置设置";
111 101
112 102
113 // VIDEO AUDIO CHANNEL使用状态 103 // VIDEO AUDIO CHANNEL使用状态
@@ -236,7 +236,15 @@ class AudioApe extends Ape { @@ -236,7 +236,15 @@ class AudioApe extends Ape {
236 audioSendPdu.toNodeId = parseInt(_param.toNodeId) || 0;//接收者,0就是所有人 236 audioSendPdu.toNodeId = parseInt(_param.toNodeId) || 0;//接收者,0就是所有人
237 audioSendPdu.actionType = parseInt(_param.actionType) || ApeConsts.MEDIA_ACTION_DEFAULT; 237 audioSendPdu.actionType = parseInt(_param.actionType) || ApeConsts.MEDIA_ACTION_DEFAULT;
238 238
239 - audioSendPdu.data = this._rCArrayBufferUtil.strToUint8Array("h5" + _param.data);//开头两个字会乱码 239 + let dataStr='';
  240 + try{
  241 + dataStr=JSON.stringify(_param.data);
  242 + }catch (err){
  243 + loger.warn('控制消息->JSON转换失败');
  244 + dataStr=_param.data;
  245 + }
  246 +
  247 + audioSendPdu.data = this._rCArrayBufferUtil.strToUint8Array("h5" +dataStr);//开头两个字会乱码,需要加上h5两个字符
240 248
241 if (!audioSendPdu.isPublic && 0 != audioSendPdu.toNodeId) { 249 if (!audioSendPdu.isPublic && 0 != audioSendPdu.toNodeId) {
242 //发送给制定的人 250 //发送给制定的人
@@ -296,12 +304,20 @@ class AudioApe extends Ape { @@ -296,12 +304,20 @@ class AudioApe extends Ape {
296 return; 304 return;
297 } 305 }
298 audioReceivePdu.data = this._rCArrayBufferUtil.uint8ArrayToStr(audioReceivePdu.data, 2);//开头两个字会乱码 306 audioReceivePdu.data = this._rCArrayBufferUtil.uint8ArrayToStr(audioReceivePdu.data, 2);//开头两个字会乱码
299 - loger.log('音频消息处理 receiveAudiooCommandHandler.', audioReceivePdu);  
300 307
  308 + let dataObj= {};
  309 + try{
  310 + dataObj=JSON.parse(audioReceivePdu.data);
  311 + }catch (err){
  312 + loger.warn('控制消息->JSON转换失败');
  313 + dataObj= audioReceivePdu.data;
  314 + }
  315 + audioReceivePdu.data=dataObj;
301 //判断接收者的id,如果不是0,并且也不是自己的nodeId,那么消息不做处理 316 //判断接收者的id,如果不是0,并且也不是自己的nodeId,那么消息不做处理
302 if (audioReceivePdu.toNodeId != 0 && audioReceivePdu.toNodeId != GlobalConfig.nodeId) { 317 if (audioReceivePdu.toNodeId != 0 && audioReceivePdu.toNodeId != GlobalConfig.nodeId) {
303 loger.log('音频消息不处理 toNodeId=', audioReceivePdu.toNodeId, "my nodeId=", GlobalConfig.nodeId); 318 loger.log('音频消息不处理 toNodeId=', audioReceivePdu.toNodeId, "my nodeId=", GlobalConfig.nodeId);
304 } else { 319 } else {
  320 + loger.log('音频控制消息处理 .',audioReceivePdu);
305 this._emit(MessageTypes.AUDIO_BROADCAST, audioReceivePdu); 321 this._emit(MessageTypes.AUDIO_BROADCAST, audioReceivePdu);
306 } 322 }
307 } 323 }
@@ -236,15 +236,22 @@ class VideoApe extends Ape { @@ -236,15 +236,22 @@ class VideoApe extends Ape {
236 videoSendPdu.toNodeId = parseInt(_param.toNodeId) || 0;//接收者,0就是所有人 236 videoSendPdu.toNodeId = parseInt(_param.toNodeId) || 0;//接收者,0就是所有人
237 videoSendPdu.actionType = parseInt(_param.actionType) || ApeConsts.MEDIA_ACTION_DEFAULT; 237 videoSendPdu.actionType = parseInt(_param.actionType) || ApeConsts.MEDIA_ACTION_DEFAULT;
238 238
239 - videoSendPdu.data = this._rCArrayBufferUtil.strToUint8Array("h5" + _param.data);//开头两个字会乱码 239 + let dataStr='';
  240 + try{
  241 + dataStr=JSON.stringify(_param.data);
  242 + }catch (err){
  243 + loger.warn('控制消息->JSON转换失败');
  244 + dataStr=_param.data;
  245 + }
  246 + videoSendPdu.data = this._rCArrayBufferUtil.strToUint8Array("h5" + dataStr);//开头两个字会乱码
240 247
241 if (!videoSendPdu.isPublic && 0 != videoSendPdu.toNodeId) { 248 if (!videoSendPdu.isPublic && 0 != videoSendPdu.toNodeId) {
242 //发送给制定的人 249 //发送给制定的人
243 - loger.log('发送私聊Video消息.'); 250 + //loger.log('发送私聊Video消息.');
244 this.send(videoSendPdu); 251 this.send(videoSendPdu);
245 } else { 252 } else {
246 //发送给所有人 253 //发送给所有人
247 - loger.log('发送公聊Video消息.'); 254 + //loger.log('发送公聊Video消息.');
248 this.sendChatUniform(videoSendPdu); 255 this.sendChatUniform(videoSendPdu);
249 } 256 }
250 return {"code": ApeConsts.RETURN_SUCCESS, "data": ""}; 257 return {"code": ApeConsts.RETURN_SUCCESS, "data": ""};
@@ -297,16 +304,26 @@ class VideoApe extends Ape { @@ -297,16 +304,26 @@ class VideoApe extends Ape {
297 return; 304 return;
298 } 305 }
299 videoReceivePdu.data = this._rCArrayBufferUtil.uint8ArrayToStr(videoReceivePdu.data, 2);//开头两个字会乱码 306 videoReceivePdu.data = this._rCArrayBufferUtil.uint8ArrayToStr(videoReceivePdu.data, 2);//开头两个字会乱码
300 - loger.log('视频控制消息处理 .',videoReceivePdu);  
301 307
  308 + let dataObj= {};
  309 + try{
  310 + dataObj=JSON.parse(videoReceivePdu.data);
  311 + }catch (err){
  312 + loger.warn('控制消息->JSON转换失败');
  313 + dataObj= videoReceivePdu.data;
  314 + }
  315 + videoReceivePdu.data=dataObj;
302 //判断接收者的id,如果不是0,并且也不是自己的nodeId,那么消息不做处理 316 //判断接收者的id,如果不是0,并且也不是自己的nodeId,那么消息不做处理
303 if (videoReceivePdu.toNodeId != 0 && videoReceivePdu.toNodeId != GlobalConfig.nodeId) { 317 if (videoReceivePdu.toNodeId != 0 && videoReceivePdu.toNodeId != GlobalConfig.nodeId) {
304 loger.log('视频消息不处理 toNodeId=', videoReceivePdu.toNodeId, "my nodeId=", GlobalConfig.nodeId); 318 loger.log('视频消息不处理 toNodeId=', videoReceivePdu.toNodeId, "my nodeId=", GlobalConfig.nodeId);
305 } else { 319 } else {
  320 + loger.log('视频控制消息处理 .',videoReceivePdu);
306 this._emit(MessageTypes.VIDEO_BROADCAST, videoReceivePdu); 321 this._emit(MessageTypes.VIDEO_BROADCAST, videoReceivePdu);
307 } 322 }
308 } 323 }
309 324
  325 +
  326 +
310 tableUpdateHandler(owner, itemIdx, itemData,seek) { 327 tableUpdateHandler(owner, itemIdx, itemData,seek) {
311 // debugger; 328 // debugger;
312 let unpackChannelInfo = this.unPackPdu(owner, itemIdx, itemData); 329 let unpackChannelInfo = this.unPackPdu(owner, itemIdx, itemData);