zby-live-sdk 1.0.49-beta-talrtc0922 → 1.0.49-beta-talrtc1014
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.babelrc +5 -5
- package/.editorconfig +13 -13
- package/.eslintrc.js +29 -29
- package/CHANGELOG.md +381 -370
- package/README.md +276 -276
- package/dist/zby-live-sdk.cjs.js +4 -3
- package/dist/zby-live-sdk.esm.js +4 -3
- package/dist/zby-live-sdk.umd.js +4 -3
- package/package.json +1 -1
- package/src/channel/getSendMsgParams.js +66 -66
- package/src/channel/index.js +138 -138
- package/src/channel/pomelo/index.js +184 -184
- package/src/channel/pomelo/latestQueue.js +151 -151
- package/src/channel/pomelo/polemo.js +749 -749
- package/src/channel/pomelo/util.js +54 -54
- package/src/channel/sdk-cb.js +73 -73
- package/src/channel/stream-msg.js +97 -97
- package/src/channel/zby/index.js +74 -74
- package/src/channel/zby/interactWithChannel.js +4 -4
- package/src/channel/zby/interactWithChannelControl.js +1568 -1568
- package/src/channel/zby/interactWithChannelEntry.js +318 -318
- package/src/config/config.js +153 -153
- package/src/default/base.js +70 -70
- package/src/default/extend.js +36 -36
- package/src/default/index.js +9 -9
- package/src/live/base.js +42 -42
- package/src/live/call-method.js +9 -9
- package/src/live/extend.js +53 -53
- package/src/live/index.js +9 -9
- package/src/network/api.js +50 -50
- package/src/network/commonFetch.js +66 -66
- package/src/network/dataReport.js +429 -429
- package/src/notice.js +394 -394
- package/src/tool/base.js +74 -74
- package/src/tool/call-method.js +9 -9
- package/src/tool/extend.js +42 -42
- package/src/tool/index.js +9 -9
- package/src/util/bridge.js +87 -87
- package/src/util/bridge1.js +46 -46
- package/src/util/dict.js +51 -51
- package/src/util/sessionStorage.js +29 -29
- package/src/util/sha256.js +482 -482
- package/src/util/util.js +308 -308
- package/src/zby-av-sdk/agora-sdk.js +711 -711
- package/src/zby-av-sdk/device.js +145 -145
- package/src/zby-av-sdk/rtc-sdk.js +2839 -2839
- package/src/zby-av-sdk/talrtc-sdk.js +2392 -2348
- package/src/zby-av-sdk/trtc-sdk.js +1801 -1801
- package/src/zby-av-sdk/zby-av-sdk.js +1891 -1891
- package/src/zby-av-sdk/zego-sdk.js +2987 -2987
- package/src/zby-live-sdk.js +1561 -1557
|
@@ -1,54 +1,54 @@
|
|
|
1
|
-
import pako from 'pako';
|
|
2
|
-
export default {
|
|
3
|
-
translateRole(role, roleNum) {
|
|
4
|
-
const roleArr = ['student', 'assist', 'teacher'];
|
|
5
|
-
const roleNumArr = ['1', '2', '4'];
|
|
6
|
-
if (roleArr.includes(role)) {
|
|
7
|
-
return roleNumArr[roleArr.indexOf(role)];
|
|
8
|
-
}
|
|
9
|
-
if (roleNumArr.includes(roleNum)) {
|
|
10
|
-
return roleArr[roleNumArr.indexOf(roleNum)];
|
|
11
|
-
}
|
|
12
|
-
},
|
|
13
|
-
/**
|
|
14
|
-
* 压缩 / 解压 json
|
|
15
|
-
*/
|
|
16
|
-
zip(data) {
|
|
17
|
-
if (data) {
|
|
18
|
-
const str = JSON.stringify(data);
|
|
19
|
-
const binaryString = pako.gzip(encodeURIComponent(str), {
|
|
20
|
-
to: 'string'
|
|
21
|
-
});
|
|
22
|
-
return btoa(binaryString);
|
|
23
|
-
}
|
|
24
|
-
},
|
|
25
|
-
unzip(b64Data) {
|
|
26
|
-
let strData = atob(b64Data);
|
|
27
|
-
// Convert binary string to character-number array
|
|
28
|
-
const charData = strData.split('').map(function (x) {
|
|
29
|
-
return x.charCodeAt(0);
|
|
30
|
-
});
|
|
31
|
-
// Turn number array into byte-array
|
|
32
|
-
const binData = new Uint8Array(charData);
|
|
33
|
-
// // unzip
|
|
34
|
-
// const data = pako.inflate(binData)
|
|
35
|
-
const data = pako.inflate(binData, {to: 'string'});
|
|
36
|
-
// Convert gunzipped byteArray back to ascii string:
|
|
37
|
-
// strData = arrayBufferToString(data)
|
|
38
|
-
return decodeURIComponent(data);
|
|
39
|
-
},
|
|
40
|
-
arrayBufferToString(buffer) {
|
|
41
|
-
const bufView = new Uint16Array(buffer);
|
|
42
|
-
const length = bufView.length;
|
|
43
|
-
let result = '';
|
|
44
|
-
let addition = Math.pow(2, 16) - 1;
|
|
45
|
-
|
|
46
|
-
for (var i = 0; i < length; i += addition) {
|
|
47
|
-
if (i + addition > length) {
|
|
48
|
-
addition = length - i;
|
|
49
|
-
}
|
|
50
|
-
result += String.fromCharCode.apply(null, bufView.subarray(i, i + addition));
|
|
51
|
-
}
|
|
52
|
-
return result;
|
|
53
|
-
}
|
|
54
|
-
};
|
|
1
|
+
import pako from 'pako';
|
|
2
|
+
export default {
|
|
3
|
+
translateRole(role, roleNum) {
|
|
4
|
+
const roleArr = ['student', 'assist', 'teacher'];
|
|
5
|
+
const roleNumArr = ['1', '2', '4'];
|
|
6
|
+
if (roleArr.includes(role)) {
|
|
7
|
+
return roleNumArr[roleArr.indexOf(role)];
|
|
8
|
+
}
|
|
9
|
+
if (roleNumArr.includes(roleNum)) {
|
|
10
|
+
return roleArr[roleNumArr.indexOf(roleNum)];
|
|
11
|
+
}
|
|
12
|
+
},
|
|
13
|
+
/**
|
|
14
|
+
* 压缩 / 解压 json
|
|
15
|
+
*/
|
|
16
|
+
zip(data) {
|
|
17
|
+
if (data) {
|
|
18
|
+
const str = JSON.stringify(data);
|
|
19
|
+
const binaryString = pako.gzip(encodeURIComponent(str), {
|
|
20
|
+
to: 'string'
|
|
21
|
+
});
|
|
22
|
+
return btoa(binaryString);
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
unzip(b64Data) {
|
|
26
|
+
let strData = atob(b64Data);
|
|
27
|
+
// Convert binary string to character-number array
|
|
28
|
+
const charData = strData.split('').map(function (x) {
|
|
29
|
+
return x.charCodeAt(0);
|
|
30
|
+
});
|
|
31
|
+
// Turn number array into byte-array
|
|
32
|
+
const binData = new Uint8Array(charData);
|
|
33
|
+
// // unzip
|
|
34
|
+
// const data = pako.inflate(binData)
|
|
35
|
+
const data = pako.inflate(binData, {to: 'string'});
|
|
36
|
+
// Convert gunzipped byteArray back to ascii string:
|
|
37
|
+
// strData = arrayBufferToString(data)
|
|
38
|
+
return decodeURIComponent(data);
|
|
39
|
+
},
|
|
40
|
+
arrayBufferToString(buffer) {
|
|
41
|
+
const bufView = new Uint16Array(buffer);
|
|
42
|
+
const length = bufView.length;
|
|
43
|
+
let result = '';
|
|
44
|
+
let addition = Math.pow(2, 16) - 1;
|
|
45
|
+
|
|
46
|
+
for (var i = 0; i < length; i += addition) {
|
|
47
|
+
if (i + addition > length) {
|
|
48
|
+
addition = length - i;
|
|
49
|
+
}
|
|
50
|
+
result += String.fromCharCode.apply(null, bufView.subarray(i, i + addition));
|
|
51
|
+
}
|
|
52
|
+
return result;
|
|
53
|
+
}
|
|
54
|
+
};
|
package/src/channel/sdk-cb.js
CHANGED
|
@@ -1,73 +1,73 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* @Author: your name
|
|
3
|
-
* @Date: 2021-01-05 20:41:36
|
|
4
|
-
* @LastEditTime: 2021-03-25 21:57:42
|
|
5
|
-
* @LastEditors: Please set LastEditors
|
|
6
|
-
* @Description: In User Settings Edit
|
|
7
|
-
* @FilePath: \1223\xbase_extension_zby_live_sdk\src\channel\sdk-cb.js
|
|
8
|
-
*/
|
|
9
|
-
import NOTICE from '../notice';
|
|
10
|
-
import dict from '../util/dict';
|
|
11
|
-
|
|
12
|
-
const sdkCb = {
|
|
13
|
-
join(data) {
|
|
14
|
-
NOTICE.join({
|
|
15
|
-
userId: data.userid || data.actorId,
|
|
16
|
-
userName: data.actorName,
|
|
17
|
-
role: data.actorType || data.role
|
|
18
|
-
});
|
|
19
|
-
},
|
|
20
|
-
joinAck(data) {
|
|
21
|
-
NOTICE.joinAck({
|
|
22
|
-
userId: data.userid || data.actorId,
|
|
23
|
-
userName: data.actorName,
|
|
24
|
-
role: data.actorType || data.role
|
|
25
|
-
});
|
|
26
|
-
},
|
|
27
|
-
addStream(data) {
|
|
28
|
-
NOTICE.addStream({
|
|
29
|
-
userId: data.userid || data.actorId,
|
|
30
|
-
userName: data.actorName,
|
|
31
|
-
role: data.actorType || data.role,
|
|
32
|
-
streamId: data.streamUrl,
|
|
33
|
-
videoSrc: ''
|
|
34
|
-
});
|
|
35
|
-
},
|
|
36
|
-
removeStream(data) {
|
|
37
|
-
NOTICE.removeStream({
|
|
38
|
-
userId: data.userid || data.actorId|| data.streamUrl.split('_')[2],
|
|
39
|
-
userName: data.actorName,
|
|
40
|
-
role: data.actorType || data.role,
|
|
41
|
-
streamId: data.streamUrl
|
|
42
|
-
});
|
|
43
|
-
},
|
|
44
|
-
updateStreamDeviceStatus(data) {
|
|
45
|
-
NOTICE.updateStreamDeviceStatus({
|
|
46
|
-
userId: data.userid || data.actorId,
|
|
47
|
-
userName: data.actorName,
|
|
48
|
-
role: data.actorType || data.role,
|
|
49
|
-
//获取设备类型和状态对应的文案,返回给业务层
|
|
50
|
-
deviceType: dict.devicesMap.get(parseInt(data.streamType)),
|
|
51
|
-
deviceStatus: dict.devicesStatusMap.get(parseInt(data.status))
|
|
52
|
-
});
|
|
53
|
-
},
|
|
54
|
-
leave(data) {
|
|
55
|
-
NOTICE.leave({
|
|
56
|
-
userId: data.userid || data.actorId,
|
|
57
|
-
userName: data.actorName,
|
|
58
|
-
role: data.actorType || data.role
|
|
59
|
-
});
|
|
60
|
-
},
|
|
61
|
-
channelDisconnect() {
|
|
62
|
-
NOTICE.channelDisconnect();
|
|
63
|
-
},
|
|
64
|
-
userDisconnect(data) {
|
|
65
|
-
NOTICE.userDisconnect({
|
|
66
|
-
userId: data.userid || data.actorId,
|
|
67
|
-
userName: data.username,
|
|
68
|
-
role: data.role
|
|
69
|
-
});
|
|
70
|
-
}
|
|
71
|
-
};
|
|
72
|
-
|
|
73
|
-
export default sdkCb;
|
|
1
|
+
/*
|
|
2
|
+
* @Author: your name
|
|
3
|
+
* @Date: 2021-01-05 20:41:36
|
|
4
|
+
* @LastEditTime: 2021-03-25 21:57:42
|
|
5
|
+
* @LastEditors: Please set LastEditors
|
|
6
|
+
* @Description: In User Settings Edit
|
|
7
|
+
* @FilePath: \1223\xbase_extension_zby_live_sdk\src\channel\sdk-cb.js
|
|
8
|
+
*/
|
|
9
|
+
import NOTICE from '../notice';
|
|
10
|
+
import dict from '../util/dict';
|
|
11
|
+
|
|
12
|
+
const sdkCb = {
|
|
13
|
+
join(data) {
|
|
14
|
+
NOTICE.join({
|
|
15
|
+
userId: data.userid || data.actorId,
|
|
16
|
+
userName: data.actorName,
|
|
17
|
+
role: data.actorType || data.role
|
|
18
|
+
});
|
|
19
|
+
},
|
|
20
|
+
joinAck(data) {
|
|
21
|
+
NOTICE.joinAck({
|
|
22
|
+
userId: data.userid || data.actorId,
|
|
23
|
+
userName: data.actorName,
|
|
24
|
+
role: data.actorType || data.role
|
|
25
|
+
});
|
|
26
|
+
},
|
|
27
|
+
addStream(data) {
|
|
28
|
+
NOTICE.addStream({
|
|
29
|
+
userId: data.userid || data.actorId,
|
|
30
|
+
userName: data.actorName,
|
|
31
|
+
role: data.actorType || data.role,
|
|
32
|
+
streamId: data.streamUrl,
|
|
33
|
+
videoSrc: ''
|
|
34
|
+
});
|
|
35
|
+
},
|
|
36
|
+
removeStream(data) {
|
|
37
|
+
NOTICE.removeStream({
|
|
38
|
+
userId: data.userid || data.actorId|| data.streamUrl.split('_')[2],
|
|
39
|
+
userName: data.actorName,
|
|
40
|
+
role: data.actorType || data.role,
|
|
41
|
+
streamId: data.streamUrl
|
|
42
|
+
});
|
|
43
|
+
},
|
|
44
|
+
updateStreamDeviceStatus(data) {
|
|
45
|
+
NOTICE.updateStreamDeviceStatus({
|
|
46
|
+
userId: data.userid || data.actorId,
|
|
47
|
+
userName: data.actorName,
|
|
48
|
+
role: data.actorType || data.role,
|
|
49
|
+
//获取设备类型和状态对应的文案,返回给业务层
|
|
50
|
+
deviceType: dict.devicesMap.get(parseInt(data.streamType)),
|
|
51
|
+
deviceStatus: dict.devicesStatusMap.get(parseInt(data.status))
|
|
52
|
+
});
|
|
53
|
+
},
|
|
54
|
+
leave(data) {
|
|
55
|
+
NOTICE.leave({
|
|
56
|
+
userId: data.userid || data.actorId,
|
|
57
|
+
userName: data.actorName,
|
|
58
|
+
role: data.actorType || data.role
|
|
59
|
+
});
|
|
60
|
+
},
|
|
61
|
+
channelDisconnect() {
|
|
62
|
+
NOTICE.channelDisconnect();
|
|
63
|
+
},
|
|
64
|
+
userDisconnect(data) {
|
|
65
|
+
NOTICE.userDisconnect({
|
|
66
|
+
userId: data.userid || data.actorId,
|
|
67
|
+
userName: data.username,
|
|
68
|
+
role: data.role
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
export default sdkCb;
|
|
@@ -1,97 +1,97 @@
|
|
|
1
|
-
import dict from '../util/dict';
|
|
2
|
-
import CHANNEL from './index';
|
|
3
|
-
import defaultApi from '../default';
|
|
4
|
-
import sdkCb from './sdk-cb';
|
|
5
|
-
import {
|
|
6
|
-
userAndDeviceStatusInfo
|
|
7
|
-
} from '../zby-live-sdk';
|
|
8
|
-
import dataReport from '../network/dataReport';
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
export default function(data, baseInfo) {
|
|
13
|
-
try {
|
|
14
|
-
dataReport.pomeloRecvMsg({data});
|
|
15
|
-
} catch(e) {
|
|
16
|
-
console.log('pomeloRecvMsg_error',e);
|
|
17
|
-
}
|
|
18
|
-
switch (data.api) {
|
|
19
|
-
case 'join':
|
|
20
|
-
//通知业务层信息:有人进入房间
|
|
21
|
-
sdkCb.join(data);
|
|
22
|
-
defaultApi.writeLog(`sdk notice user_join role: ${data.actorType} userId : ${data.actorId} userName: ${data.actorName}`);
|
|
23
|
-
//如果本地是学生,就定向回应joinAck和addStream,让对方可以展示自己的视频
|
|
24
|
-
//定向回应joinAck和addStream,让对方可以展示自己的视频
|
|
25
|
-
//线路切换:本地学生和老师SDK类型不一致
|
|
26
|
-
if (window.target_sdk_type) {
|
|
27
|
-
//存在target_sdk_type ,表示正在切换中,等待切换
|
|
28
|
-
defaultApi.writeLog(`changing sdk to ${window.target_sdk_type},ignore remote userId ${data.actorId} join msg`);
|
|
29
|
-
break;
|
|
30
|
-
} else {
|
|
31
|
-
CHANNEL.sendJoinAck(baseInfo);
|
|
32
|
-
CHANNEL.sendAddStream(baseInfo);
|
|
33
|
-
CHANNEL.sendUpdateStreamDeviceStatus(Object.assign({}, baseInfo, {
|
|
34
|
-
deviceType: dict.getDeviceTypeKey('video'),
|
|
35
|
-
deviceStatus: dict.getDeviceStatusKey(userAndDeviceStatusInfo && userAndDeviceStatusInfo.camera ? 'open' : 'closed'),
|
|
36
|
-
}));
|
|
37
|
-
CHANNEL.sendUpdateStreamDeviceStatus(Object.assign({}, baseInfo, {
|
|
38
|
-
deviceType: dict.getDeviceTypeKey('audio'),
|
|
39
|
-
deviceStatus: dict.getDeviceStatusKey(userAndDeviceStatusInfo && userAndDeviceStatusInfo.microPhone ? 'open' : 'closed'),
|
|
40
|
-
}));
|
|
41
|
-
}
|
|
42
|
-
break;
|
|
43
|
-
|
|
44
|
-
case 'joinAck':
|
|
45
|
-
//首先确认对方的消息是针对本人进行回应的(信道处理)定向接收
|
|
46
|
-
//通知业务层信息:有人在房间的回应
|
|
47
|
-
sdkCb.joinAck(data);
|
|
48
|
-
defaultApi.writeLog(`sdk notice user_response role: ${data.actorType} userId : ${data.actorId} userName: ${data.actorName}`);
|
|
49
|
-
break;
|
|
50
|
-
|
|
51
|
-
case 'addStream':
|
|
52
|
-
defaultApi.writeLog({
|
|
53
|
-
changing_sdk_type: window.target_sdk_type,
|
|
54
|
-
local_sdk_type: window.current_sdk_type,
|
|
55
|
-
remote_sdk_type: data.sdkName,
|
|
56
|
-
isIgnore: !!window.target_sdk_type ||
|
|
57
|
-
(data.sdkName &&
|
|
58
|
-
(window.current_sdk_type !== data.sdkName))
|
|
59
|
-
});
|
|
60
|
-
if (!!window.target_sdk_type ||
|
|
61
|
-
(data.sdkName && (window.current_sdk_type !== data.sdkName))) {
|
|
62
|
-
defaultApi.writeLog(`recv different sdk addStream,:target ${window.target_sdk_type},ignore remote userId ${data.actorId} msg`);
|
|
63
|
-
break;
|
|
64
|
-
}
|
|
65
|
-
//处理接收的群发消息和定向消息(已经由消息服务器处理过)
|
|
66
|
-
//通知展示收到的视频流数据
|
|
67
|
-
sdkCb.addStream(data);
|
|
68
|
-
defaultApi.writeLog(`sdk notice remote_video_ready : current_sdk_type: ${window.current_sdk_type}, zbyAVSDK_type: ${window.zbyAVSDK_init_sdk_type}, role: ${data.actorType} userId : ${data.actorId} userName: ${data.actorName}`);
|
|
69
|
-
break;
|
|
70
|
-
case 'removeStream':
|
|
71
|
-
if (data.sdkName && (window.current_sdk_type !== data.sdkName)) {
|
|
72
|
-
break;
|
|
73
|
-
}
|
|
74
|
-
//处理接收的群发removeStream消息
|
|
75
|
-
//通知移除收到的视频流数据
|
|
76
|
-
sdkCb.removeStream(data);
|
|
77
|
-
defaultApi.writeLog(`sdk notice remote_video_removed ,streamUrl ${data.streamUrl}, role: ${data.actorType} userId : ${data.actorId} userName: ${data.actorName} `);
|
|
78
|
-
break;
|
|
79
|
-
case 'updateStreamDeviceStatus':
|
|
80
|
-
/**
|
|
81
|
-
* @data.streamType: 1视频 / 2麦克风
|
|
82
|
-
* @data.status: 1打开 / 2关闭
|
|
83
|
-
* @CONTROL.role: '1' 老师收流 / '2' 学生收流
|
|
84
|
-
* */
|
|
85
|
-
//通知业务层信息
|
|
86
|
-
sdkCb.updateStreamDeviceStatus(data);
|
|
87
|
-
defaultApi.writeLog(`sdk notice device_status role: ${data.actorType} userId : ${data.actorId} userName: ${data.actorName} deviceType : ${dict.devicesMap.get(parseInt(data.streamType))} deviceStatus: ${dict.devicesStatusMap.get(parseInt(data.status))}`);
|
|
88
|
-
break;
|
|
89
|
-
case 'leave':
|
|
90
|
-
//通知业务层信息
|
|
91
|
-
sdkCb.leave(data);
|
|
92
|
-
defaultApi.writeLog(`sdk notice user_leave role: ${data.actorType} userId : ${data.actorId} userName: ${data.actorName}`);
|
|
93
|
-
break;
|
|
94
|
-
default:
|
|
95
|
-
break;
|
|
96
|
-
}
|
|
97
|
-
}
|
|
1
|
+
import dict from '../util/dict';
|
|
2
|
+
import CHANNEL from './index';
|
|
3
|
+
import defaultApi from '../default';
|
|
4
|
+
import sdkCb from './sdk-cb';
|
|
5
|
+
import {
|
|
6
|
+
userAndDeviceStatusInfo
|
|
7
|
+
} from '../zby-live-sdk';
|
|
8
|
+
import dataReport from '../network/dataReport';
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
export default function(data, baseInfo) {
|
|
13
|
+
try {
|
|
14
|
+
dataReport.pomeloRecvMsg({data});
|
|
15
|
+
} catch(e) {
|
|
16
|
+
console.log('pomeloRecvMsg_error',e);
|
|
17
|
+
}
|
|
18
|
+
switch (data.api) {
|
|
19
|
+
case 'join':
|
|
20
|
+
//通知业务层信息:有人进入房间
|
|
21
|
+
sdkCb.join(data);
|
|
22
|
+
defaultApi.writeLog(`sdk notice user_join role: ${data.actorType} userId : ${data.actorId} userName: ${data.actorName}`);
|
|
23
|
+
//如果本地是学生,就定向回应joinAck和addStream,让对方可以展示自己的视频
|
|
24
|
+
//定向回应joinAck和addStream,让对方可以展示自己的视频
|
|
25
|
+
//线路切换:本地学生和老师SDK类型不一致
|
|
26
|
+
if (window.target_sdk_type) {
|
|
27
|
+
//存在target_sdk_type ,表示正在切换中,等待切换
|
|
28
|
+
defaultApi.writeLog(`changing sdk to ${window.target_sdk_type},ignore remote userId ${data.actorId} join msg`);
|
|
29
|
+
break;
|
|
30
|
+
} else {
|
|
31
|
+
CHANNEL.sendJoinAck(baseInfo);
|
|
32
|
+
CHANNEL.sendAddStream(baseInfo);
|
|
33
|
+
CHANNEL.sendUpdateStreamDeviceStatus(Object.assign({}, baseInfo, {
|
|
34
|
+
deviceType: dict.getDeviceTypeKey('video'),
|
|
35
|
+
deviceStatus: dict.getDeviceStatusKey(userAndDeviceStatusInfo && userAndDeviceStatusInfo.camera ? 'open' : 'closed'),
|
|
36
|
+
}));
|
|
37
|
+
CHANNEL.sendUpdateStreamDeviceStatus(Object.assign({}, baseInfo, {
|
|
38
|
+
deviceType: dict.getDeviceTypeKey('audio'),
|
|
39
|
+
deviceStatus: dict.getDeviceStatusKey(userAndDeviceStatusInfo && userAndDeviceStatusInfo.microPhone ? 'open' : 'closed'),
|
|
40
|
+
}));
|
|
41
|
+
}
|
|
42
|
+
break;
|
|
43
|
+
|
|
44
|
+
case 'joinAck':
|
|
45
|
+
//首先确认对方的消息是针对本人进行回应的(信道处理)定向接收
|
|
46
|
+
//通知业务层信息:有人在房间的回应
|
|
47
|
+
sdkCb.joinAck(data);
|
|
48
|
+
defaultApi.writeLog(`sdk notice user_response role: ${data.actorType} userId : ${data.actorId} userName: ${data.actorName}`);
|
|
49
|
+
break;
|
|
50
|
+
|
|
51
|
+
case 'addStream':
|
|
52
|
+
defaultApi.writeLog({
|
|
53
|
+
changing_sdk_type: window.target_sdk_type,
|
|
54
|
+
local_sdk_type: window.current_sdk_type,
|
|
55
|
+
remote_sdk_type: data.sdkName,
|
|
56
|
+
isIgnore: !!window.target_sdk_type ||
|
|
57
|
+
(data.sdkName &&
|
|
58
|
+
(window.current_sdk_type !== data.sdkName))
|
|
59
|
+
});
|
|
60
|
+
if (!!window.target_sdk_type ||
|
|
61
|
+
(data.sdkName && (window.current_sdk_type !== data.sdkName))) {
|
|
62
|
+
defaultApi.writeLog(`recv different sdk addStream,:target ${window.target_sdk_type},ignore remote userId ${data.actorId} msg`);
|
|
63
|
+
break;
|
|
64
|
+
}
|
|
65
|
+
//处理接收的群发消息和定向消息(已经由消息服务器处理过)
|
|
66
|
+
//通知展示收到的视频流数据
|
|
67
|
+
sdkCb.addStream(data);
|
|
68
|
+
defaultApi.writeLog(`sdk notice remote_video_ready : current_sdk_type: ${window.current_sdk_type}, zbyAVSDK_type: ${window.zbyAVSDK_init_sdk_type}, role: ${data.actorType} userId : ${data.actorId} userName: ${data.actorName}`);
|
|
69
|
+
break;
|
|
70
|
+
case 'removeStream':
|
|
71
|
+
if (data.sdkName && (window.current_sdk_type !== data.sdkName)) {
|
|
72
|
+
break;
|
|
73
|
+
}
|
|
74
|
+
//处理接收的群发removeStream消息
|
|
75
|
+
//通知移除收到的视频流数据
|
|
76
|
+
sdkCb.removeStream(data);
|
|
77
|
+
defaultApi.writeLog(`sdk notice remote_video_removed ,streamUrl ${data.streamUrl}, role: ${data.actorType} userId : ${data.actorId} userName: ${data.actorName} `);
|
|
78
|
+
break;
|
|
79
|
+
case 'updateStreamDeviceStatus':
|
|
80
|
+
/**
|
|
81
|
+
* @data.streamType: 1视频 / 2麦克风
|
|
82
|
+
* @data.status: 1打开 / 2关闭
|
|
83
|
+
* @CONTROL.role: '1' 老师收流 / '2' 学生收流
|
|
84
|
+
* */
|
|
85
|
+
//通知业务层信息
|
|
86
|
+
sdkCb.updateStreamDeviceStatus(data);
|
|
87
|
+
defaultApi.writeLog(`sdk notice device_status role: ${data.actorType} userId : ${data.actorId} userName: ${data.actorName} deviceType : ${dict.devicesMap.get(parseInt(data.streamType))} deviceStatus: ${dict.devicesStatusMap.get(parseInt(data.status))}`);
|
|
88
|
+
break;
|
|
89
|
+
case 'leave':
|
|
90
|
+
//通知业务层信息
|
|
91
|
+
sdkCb.leave(data);
|
|
92
|
+
defaultApi.writeLog(`sdk notice user_leave role: ${data.actorType} userId : ${data.actorId} userName: ${data.actorName}`);
|
|
93
|
+
break;
|
|
94
|
+
default:
|
|
95
|
+
break;
|
|
96
|
+
}
|
|
97
|
+
}
|
package/src/channel/zby/index.js
CHANGED
|
@@ -1,74 +1,74 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* @Author: your name
|
|
3
|
-
* @Date: 2020-12-03 16:07:40
|
|
4
|
-
* @LastEditTime: 2020-12-10 21:25:24
|
|
5
|
-
* @LastEditors: Please set LastEditors
|
|
6
|
-
* @Description: In User Settings Edit
|
|
7
|
-
* @FilePath: \xiaoban_report\xbase_extension_51_demo\src\_zby_live_sdk\src\channel\zby\index.js
|
|
8
|
-
*/
|
|
9
|
-
import interactWithChannel from './interactWithChannel';
|
|
10
|
-
import CHANNEL from '../index';
|
|
11
|
-
import util from '../../util/util';
|
|
12
|
-
import {getApiCloudBaseUrl} from '../../config/config';
|
|
13
|
-
|
|
14
|
-
function sendChannelMsgInner(data) {
|
|
15
|
-
const target = data.target;
|
|
16
|
-
if(target) {
|
|
17
|
-
delete data.target;
|
|
18
|
-
interactWithChannel.control.sendStreamMsg('stream', JSON.stringify(data), target);
|
|
19
|
-
} else {
|
|
20
|
-
interactWithChannel.control.sendStreamMsg('stream', JSON.stringify(data));
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
export default {
|
|
25
|
-
joinRoom(args, cb) {
|
|
26
|
-
try {
|
|
27
|
-
//设置信道基础参数
|
|
28
|
-
interactWithChannel.entry.setConfigInfo(JSON.stringify({
|
|
29
|
-
'address': args.chatUrl,
|
|
30
|
-
'user': {
|
|
31
|
-
'userid': args.userId,
|
|
32
|
-
'username': args.userName || '',
|
|
33
|
-
'token': args.channelToken,
|
|
34
|
-
'role': args.role,
|
|
35
|
-
'avatar': '',
|
|
36
|
-
'code': '1234',
|
|
37
|
-
},
|
|
38
|
-
'language': 0,
|
|
39
|
-
'logmode': 0,
|
|
40
|
-
'channeltype': 1,
|
|
41
|
-
}));
|
|
42
|
-
} catch (error) {
|
|
43
|
-
window.zby_sdk_init_status_for_data_report = false;
|
|
44
|
-
try {
|
|
45
|
-
dataReport.joinRoomResult({
|
|
46
|
-
code: '2',
|
|
47
|
-
// cloud_api_response: JSON.stringify(window.zby_sdk_cloud_data),
|
|
48
|
-
cloud_api_response: window.zby_sdk_cloud_data,
|
|
49
|
-
cloud_api_url: `${getApiCloudBaseUrl()}/rtccloud/class/init`,
|
|
50
|
-
chat_url: args.chatUrl
|
|
51
|
-
});
|
|
52
|
-
} catch (e) {};
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
interactWithChannel.entry.enterRoom(JSON.stringify({
|
|
56
|
-
//向老客户端兼容,拼接institutionId,信道进房间使用拼接后的roomid
|
|
57
|
-
'roomid': util.getConfId(args.institutionId, args.roomId),
|
|
58
|
-
'classmode': 4,
|
|
59
|
-
'playmode': 1, //1=正常上课;2=回放
|
|
60
|
-
'institutionid': args.institutionId,
|
|
61
|
-
//51连接信道所需,区分连接来源
|
|
62
|
-
'conn_origin': '51plan'
|
|
63
|
-
}), cb);
|
|
64
|
-
CHANNEL.sendJoin(args);
|
|
65
|
-
},
|
|
66
|
-
leaveRoom() {
|
|
67
|
-
interactWithChannel.entry.leaveRoom();
|
|
68
|
-
},
|
|
69
|
-
sendChannelMsg(data, target) {
|
|
70
|
-
util.waitFlagToRun(() => {
|
|
71
|
-
return interactWithChannel.control.isInRoom;
|
|
72
|
-
}, sendChannelMsgInner, {...data, target});
|
|
73
|
-
},
|
|
74
|
-
};
|
|
1
|
+
/*
|
|
2
|
+
* @Author: your name
|
|
3
|
+
* @Date: 2020-12-03 16:07:40
|
|
4
|
+
* @LastEditTime: 2020-12-10 21:25:24
|
|
5
|
+
* @LastEditors: Please set LastEditors
|
|
6
|
+
* @Description: In User Settings Edit
|
|
7
|
+
* @FilePath: \xiaoban_report\xbase_extension_51_demo\src\_zby_live_sdk\src\channel\zby\index.js
|
|
8
|
+
*/
|
|
9
|
+
import interactWithChannel from './interactWithChannel';
|
|
10
|
+
import CHANNEL from '../index';
|
|
11
|
+
import util from '../../util/util';
|
|
12
|
+
import {getApiCloudBaseUrl} from '../../config/config';
|
|
13
|
+
|
|
14
|
+
function sendChannelMsgInner(data) {
|
|
15
|
+
const target = data.target;
|
|
16
|
+
if(target) {
|
|
17
|
+
delete data.target;
|
|
18
|
+
interactWithChannel.control.sendStreamMsg('stream', JSON.stringify(data), target);
|
|
19
|
+
} else {
|
|
20
|
+
interactWithChannel.control.sendStreamMsg('stream', JSON.stringify(data));
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export default {
|
|
25
|
+
joinRoom(args, cb) {
|
|
26
|
+
try {
|
|
27
|
+
//设置信道基础参数
|
|
28
|
+
interactWithChannel.entry.setConfigInfo(JSON.stringify({
|
|
29
|
+
'address': args.chatUrl,
|
|
30
|
+
'user': {
|
|
31
|
+
'userid': args.userId,
|
|
32
|
+
'username': args.userName || '',
|
|
33
|
+
'token': args.channelToken,
|
|
34
|
+
'role': args.role,
|
|
35
|
+
'avatar': '',
|
|
36
|
+
'code': '1234',
|
|
37
|
+
},
|
|
38
|
+
'language': 0,
|
|
39
|
+
'logmode': 0,
|
|
40
|
+
'channeltype': 1,
|
|
41
|
+
}));
|
|
42
|
+
} catch (error) {
|
|
43
|
+
window.zby_sdk_init_status_for_data_report = false;
|
|
44
|
+
try {
|
|
45
|
+
dataReport.joinRoomResult({
|
|
46
|
+
code: '2',
|
|
47
|
+
// cloud_api_response: JSON.stringify(window.zby_sdk_cloud_data),
|
|
48
|
+
cloud_api_response: window.zby_sdk_cloud_data,
|
|
49
|
+
cloud_api_url: `${getApiCloudBaseUrl()}/rtccloud/class/init`,
|
|
50
|
+
chat_url: args.chatUrl
|
|
51
|
+
});
|
|
52
|
+
} catch (e) {};
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
interactWithChannel.entry.enterRoom(JSON.stringify({
|
|
56
|
+
//向老客户端兼容,拼接institutionId,信道进房间使用拼接后的roomid
|
|
57
|
+
'roomid': util.getConfId(args.institutionId, args.roomId),
|
|
58
|
+
'classmode': 4,
|
|
59
|
+
'playmode': 1, //1=正常上课;2=回放
|
|
60
|
+
'institutionid': args.institutionId,
|
|
61
|
+
//51连接信道所需,区分连接来源
|
|
62
|
+
'conn_origin': '51plan'
|
|
63
|
+
}), cb);
|
|
64
|
+
CHANNEL.sendJoin(args);
|
|
65
|
+
},
|
|
66
|
+
leaveRoom() {
|
|
67
|
+
interactWithChannel.entry.leaveRoom();
|
|
68
|
+
},
|
|
69
|
+
sendChannelMsg(data, target) {
|
|
70
|
+
util.waitFlagToRun(() => {
|
|
71
|
+
return interactWithChannel.control.isInRoom;
|
|
72
|
+
}, sendChannelMsgInner, {...data, target});
|
|
73
|
+
},
|
|
74
|
+
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import control from './interactWithChannelControl.js';
|
|
2
|
-
import entry from './interactWithChannelEntry';
|
|
3
|
-
|
|
4
|
-
export default { control, entry };
|
|
1
|
+
import control from './interactWithChannelControl.js';
|
|
2
|
+
import entry from './interactWithChannelEntry';
|
|
3
|
+
|
|
4
|
+
export default { control, entry };
|