李勇

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

此 diff 太大无法显示。
... ... @@ -27,7 +27,7 @@ import Server from "config/Server";
import UTF8 from 'utf-8';
let loger = Loger.getLoger('McuClient');
let _sdkInfo = {"version": "v1.10.5.20170503", "author": "www.3mang.com"};
let _sdkInfo = {"version": "v1.10.6.20170503", "author": "www.3mang.com"};
//APE
let _sass;
... ...
... ... @@ -29,18 +29,6 @@ ApeConsts.CLASS_TYPE_INTERACT= 1; // 互动课堂,通过MS转发音视频,
ApeConsts.CLASS_TYPE_LIVE= 2; // 直播课堂,通过CDN转发音视频,不能进行音视频互动
/*
flash
public static const NR_GUEST:uint = 0; // 客人
public static const NR_NORMAL:uint = 1; // 普通与会者
public static const NR_ADMIN:uint = 2; // 管理员
public static const NR_MASTER:uint = 4; // 主持人
public static const NR_PRESENTER:uint = 8; // 主讲人
public static const NR_ASSISTANT:uint = 16; // 助教
public static const NR_INVISIBLE:uint = 32; // 隐身用户
*/
//角色身份
//ApeConsts.NR_GUEST = 0; // 客人
ApeConsts.NR_NORMAL = 1;// 普通与会者
... ... @@ -103,11 +91,13 @@ ApeConsts.USER_CAMERA_OPEN = 0x0080; // 音视频开启
//VIDEO MIC 流媒体消息操作控制类型
ApeConsts.MEDIA_ACTION_DEFAULT=0;
ApeConsts.MEDIA_ACTION_OPEN_CAMERA=1;// "open.camera";
ApeConsts.MEDIA_ACTION_CLOSE_CAMERA=2;// "close.camera";
ApeConsts.MEDIA_ACTION_OPEN_CAMERA=1;// "打开摄像头推流;
ApeConsts.MEDIA_ACTION_CLOSE_CAMERA=2;// "关闭停止推流";
ApeConsts.MEDIA_ACTION_OPEN_MIC= 21;//"打开音频推流";
ApeConsts.MEDIA_ACTION_CLOSE_MIC= 22;//"停止音频推流";
ApeConsts.MEDIA_ACTION_OPEN_MIC= 3;//"open.mic";
ApeConsts.MEDIA_ACTION_CLOSE_MIC= 4;//"close.mic";
ApeConsts.MEDIA_ACTION_SETING= 31;//"音视频设置设置";
// VIDEO AUDIO CHANNEL使用状态
... ...
... ... @@ -236,7 +236,15 @@ class AudioApe extends Ape {
audioSendPdu.toNodeId = parseInt(_param.toNodeId) || 0;//接收者,0就是所有人
audioSendPdu.actionType = parseInt(_param.actionType) || ApeConsts.MEDIA_ACTION_DEFAULT;
audioSendPdu.data = this._rCArrayBufferUtil.strToUint8Array("h5" + _param.data);//开头两个字会乱码
let dataStr='';
try{
dataStr=JSON.stringify(_param.data);
}catch (err){
loger.warn('控制消息->JSON转换失败');
dataStr=_param.data;
}
audioSendPdu.data = this._rCArrayBufferUtil.strToUint8Array("h5" +dataStr);//开头两个字会乱码,需要加上h5两个字符
if (!audioSendPdu.isPublic && 0 != audioSendPdu.toNodeId) {
//发送给制定的人
... ... @@ -296,12 +304,20 @@ class AudioApe extends Ape {
return;
}
audioReceivePdu.data = this._rCArrayBufferUtil.uint8ArrayToStr(audioReceivePdu.data, 2);//开头两个字会乱码
loger.log('音频消息处理 receiveAudiooCommandHandler.', audioReceivePdu);
let dataObj= {};
try{
dataObj=JSON.parse(audioReceivePdu.data);
}catch (err){
loger.warn('控制消息->JSON转换失败');
dataObj= audioReceivePdu.data;
}
audioReceivePdu.data=dataObj;
//判断接收者的id,如果不是0,并且也不是自己的nodeId,那么消息不做处理
if (audioReceivePdu.toNodeId != 0 && audioReceivePdu.toNodeId != GlobalConfig.nodeId) {
loger.log('音频消息不处理 toNodeId=', audioReceivePdu.toNodeId, "my nodeId=", GlobalConfig.nodeId);
} else {
loger.log('音频控制消息处理 .',audioReceivePdu);
this._emit(MessageTypes.AUDIO_BROADCAST, audioReceivePdu);
}
}
... ...
... ... @@ -236,15 +236,22 @@ class VideoApe extends Ape {
videoSendPdu.toNodeId = parseInt(_param.toNodeId) || 0;//接收者,0就是所有人
videoSendPdu.actionType = parseInt(_param.actionType) || ApeConsts.MEDIA_ACTION_DEFAULT;
videoSendPdu.data = this._rCArrayBufferUtil.strToUint8Array("h5" + _param.data);//开头两个字会乱码
let dataStr='';
try{
dataStr=JSON.stringify(_param.data);
}catch (err){
loger.warn('控制消息->JSON转换失败');
dataStr=_param.data;
}
videoSendPdu.data = this._rCArrayBufferUtil.strToUint8Array("h5" + dataStr);//开头两个字会乱码
if (!videoSendPdu.isPublic && 0 != videoSendPdu.toNodeId) {
//发送给制定的人
loger.log('发送私聊Video消息.');
//loger.log('发送私聊Video消息.');
this.send(videoSendPdu);
} else {
//发送给所有人
loger.log('发送公聊Video消息.');
//loger.log('发送公聊Video消息.');
this.sendChatUniform(videoSendPdu);
}
return {"code": ApeConsts.RETURN_SUCCESS, "data": ""};
... ... @@ -297,16 +304,26 @@ class VideoApe extends Ape {
return;
}
videoReceivePdu.data = this._rCArrayBufferUtil.uint8ArrayToStr(videoReceivePdu.data, 2);//开头两个字会乱码
loger.log('视频控制消息处理 .',videoReceivePdu);
let dataObj= {};
try{
dataObj=JSON.parse(videoReceivePdu.data);
}catch (err){
loger.warn('控制消息->JSON转换失败');
dataObj= videoReceivePdu.data;
}
videoReceivePdu.data=dataObj;
//判断接收者的id,如果不是0,并且也不是自己的nodeId,那么消息不做处理
if (videoReceivePdu.toNodeId != 0 && videoReceivePdu.toNodeId != GlobalConfig.nodeId) {
loger.log('视频消息不处理 toNodeId=', videoReceivePdu.toNodeId, "my nodeId=", GlobalConfig.nodeId);
} else {
loger.log('视频控制消息处理 .',videoReceivePdu);
this._emit(MessageTypes.VIDEO_BROADCAST, videoReceivePdu);
}
}
tableUpdateHandler(owner, itemIdx, itemData,seek) {
// debugger;
let unpackChannelInfo = this.unPackPdu(owner, itemIdx, itemData);
... ...