zby-live-sdk 1.0.49-beta0825-1 → 1.0.49-beta0921-1
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/CHANGELOG.md +7 -0
- package/dist/zby-live-sdk.cjs.js +3 -3
- package/dist/zby-live-sdk.esm.js +3 -3
- package/dist/zby-live-sdk.umd.js +3 -3
- package/package.json +1 -1
- package/src/config/config.js +12 -1
- package/src/network/api.js +10 -1
- package/src/zby-av-sdk/zby-av-sdk.js +14 -2
- package/src/zby-av-sdk/zego-sdk.js +145 -4
- package/src/zby-live-sdk.js +10 -0
package/package.json
CHANGED
package/src/config/config.js
CHANGED
|
@@ -13,7 +13,7 @@ const urls = {
|
|
|
13
13
|
};
|
|
14
14
|
|
|
15
15
|
// export const version = require('../../package.json').version;
|
|
16
|
-
export const version = '1.0.49-
|
|
16
|
+
export const version = '1.0.49-beta0921-1';
|
|
17
17
|
|
|
18
18
|
export const liveExt = {
|
|
19
19
|
name: 'live',
|
|
@@ -108,11 +108,22 @@ const apiChangeSdkUrl = {
|
|
|
108
108
|
online: 'https://cloud-platform-live.speiyou.com/cloud-platform'
|
|
109
109
|
};
|
|
110
110
|
|
|
111
|
+
//开启混流
|
|
112
|
+
const apiMixStreams = {
|
|
113
|
+
test: 'https://tf-classroom-api-test.vdyoo.com',
|
|
114
|
+
online: 'https://tf-classroom-api-online.vdyoo.com'
|
|
115
|
+
};
|
|
116
|
+
|
|
111
117
|
export const getApiCloudBaseUrl = () => {
|
|
112
118
|
const {env} = config;
|
|
113
119
|
return apiCloudUrl[env];
|
|
114
120
|
};
|
|
115
121
|
|
|
122
|
+
export const getApiMixStreams = () => {
|
|
123
|
+
const {env} = config;
|
|
124
|
+
return apiMixStreams[env];
|
|
125
|
+
}
|
|
126
|
+
|
|
116
127
|
export const getApiChangeSdkUrl = () => {
|
|
117
128
|
const {env} = config;
|
|
118
129
|
return apiChangeSdkUrl[env];
|
package/src/network/api.js
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* @FilePath: \1705\zby_live_sdk\src\network\api.js
|
|
8
8
|
*/
|
|
9
9
|
import commonFetch from './commonFetch.js';
|
|
10
|
-
import {getReportBaseUrl, getApiCloudBaseUrl, getCloudApiDomain, getApiChangeSdkUrl, timestampUrl} from '../config/config.js';
|
|
10
|
+
import {getReportBaseUrl, getApiCloudBaseUrl, getCloudApiDomain, getApiChangeSdkUrl, timestampUrl, getApiMixStreams} from '../config/config.js';
|
|
11
11
|
import util from '../util/util';
|
|
12
12
|
|
|
13
13
|
//获取信道服务器地址
|
|
@@ -48,3 +48,12 @@ export function dabanDataReport(param){
|
|
|
48
48
|
export function changeSdkInRoom(param){
|
|
49
49
|
return commonFetch(`${getApiChangeSdkUrl()}/rtccloud/sdk/set/lecture/client`, param, 'FROMDATA');
|
|
50
50
|
}
|
|
51
|
+
|
|
52
|
+
//开始混流
|
|
53
|
+
export function mixStreamsStart(param) {
|
|
54
|
+
return commonFetch(`${getApiMixStreams()}/rtc-backend/mix/stream/start`, param, 'POST');
|
|
55
|
+
}
|
|
56
|
+
//结束混流
|
|
57
|
+
export function mixStreamsStop(param) {
|
|
58
|
+
return commonFetch(`${getApiMixStreams()}/rtc-backend/mix/stream/end`, param, 'POST');
|
|
59
|
+
}
|
|
@@ -83,7 +83,7 @@ export const deviceCheckerInit = async (extension, env) => {
|
|
|
83
83
|
});
|
|
84
84
|
window.zbyAVSDK_init_sdk_type = 'zego';
|
|
85
85
|
}
|
|
86
|
-
defaultApi.writeLog('change zbyAVSDK_init_sdk_type to
|
|
86
|
+
defaultApi.writeLog('change zbyAVSDK_init_sdk_type to zego , from avsdk device check init');
|
|
87
87
|
};
|
|
88
88
|
|
|
89
89
|
/**
|
|
@@ -1817,6 +1817,16 @@ const setThirdAudioCallbackType = (sdkType) => {
|
|
|
1817
1817
|
return zegosdk.setThirdAudioType(type);
|
|
1818
1818
|
}
|
|
1819
1819
|
|
|
1820
|
+
const startMixStreams = (urls) => {
|
|
1821
|
+
console.log('zego startmixStreams');
|
|
1822
|
+
return zegosdk.startmixStreams(urls);
|
|
1823
|
+
}
|
|
1824
|
+
|
|
1825
|
+
const stopMixtStreams = (urls) => {
|
|
1826
|
+
console.log('zego stopMixtStreams');
|
|
1827
|
+
return zegosdk.stopMixtStreams(urls);
|
|
1828
|
+
}
|
|
1829
|
+
|
|
1820
1830
|
|
|
1821
1831
|
export default {
|
|
1822
1832
|
init,
|
|
@@ -1896,6 +1906,8 @@ export default {
|
|
|
1896
1906
|
enableHighlight,
|
|
1897
1907
|
setAUXAudioType,
|
|
1898
1908
|
mixedstuVideo,
|
|
1899
|
-
setThirdAudioCallbackType
|
|
1909
|
+
setThirdAudioCallbackType,
|
|
1910
|
+
startMixStreams,
|
|
1911
|
+
stopMixtStreams
|
|
1900
1912
|
// getDeviceState
|
|
1901
1913
|
};
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
**/
|
|
7
7
|
import {dabanDataReport} from '../network/api.js';
|
|
8
8
|
import dataReport from '../network/dataReport.js';
|
|
9
|
+
import { mixStreamsStart,mixStreamsStop } from '../network/api';
|
|
9
10
|
import {
|
|
10
11
|
getS,
|
|
11
12
|
setS,
|
|
@@ -69,6 +70,9 @@ let currStreamIdRtcPlayerInfo ;
|
|
|
69
70
|
|
|
70
71
|
//记录底层推流回调的值
|
|
71
72
|
let dataZegoCapture = {};
|
|
73
|
+
|
|
74
|
+
//记录推流id
|
|
75
|
+
let streamIdList = [];
|
|
72
76
|
/**
|
|
73
77
|
* @function 调用端提供的回调方法
|
|
74
78
|
* @param name:String 回调方法名
|
|
@@ -190,7 +194,10 @@ const addListener = (userId, userName, confId, nNetType, devices) => {
|
|
|
190
194
|
afterInitSDK(userId, userName, confId, nNetType, devices);
|
|
191
195
|
}
|
|
192
196
|
}
|
|
193
|
-
|
|
197
|
+
break;
|
|
198
|
+
case 'OnMixStreamEx':
|
|
199
|
+
console.log('OnMixStreamEx',data)
|
|
200
|
+
break;
|
|
194
201
|
case 'OnLoginChannel':
|
|
195
202
|
var status = JSON.parse(data).uiErrorCode;
|
|
196
203
|
defaultApi.writeLog(`ZEGO::addListener-- OnLoginChannel: ${status}`);
|
|
@@ -745,7 +752,7 @@ export const stopCheckDevice = async() => {
|
|
|
745
752
|
removerListener();
|
|
746
753
|
await stopSoundLevelMonitor();
|
|
747
754
|
await stopPreview();
|
|
748
|
-
defaultApi.writeLog('
|
|
755
|
+
defaultApi.writeLog('zego stopCheckDevice and removerListener and captureDestroy');
|
|
749
756
|
return callMethod('DestroyEngine', {});
|
|
750
757
|
};
|
|
751
758
|
|
|
@@ -1791,11 +1798,16 @@ export const setDefaultDevice = async (devices, operationType) => {
|
|
|
1791
1798
|
*/
|
|
1792
1799
|
export const startPublish2 = async (streamid, idx, title, flag, seq) => {
|
|
1793
1800
|
const streamId = streamid || window.zbyAVSDK_init_params.zego.streamId;
|
|
1801
|
+
if (streamIdList.includes(streamId)) {
|
|
1802
|
+
console.log('streamIdList is including this streamid', streamIdList, streamId);
|
|
1803
|
+
} else {
|
|
1804
|
+
streamIdList.push(streamId);
|
|
1805
|
+
}
|
|
1794
1806
|
if (typeof title === 'undefined') {
|
|
1795
1807
|
title = 'none';
|
|
1796
1808
|
}
|
|
1797
1809
|
if (typeof flag === 'undefined') {
|
|
1798
|
-
flag =
|
|
1810
|
+
flag = 1;
|
|
1799
1811
|
}
|
|
1800
1812
|
if (typeof seq === 'undefined') {
|
|
1801
1813
|
seq = 0;
|
|
@@ -2069,6 +2081,133 @@ export const mixStream = (type, args, seq) => {
|
|
|
2069
2081
|
|
|
2070
2082
|
};
|
|
2071
2083
|
|
|
2084
|
+
export const startmixStreams = async (targetUrl) => {
|
|
2085
|
+
const zego = window.zbyAVSDK_init_params.zego;
|
|
2086
|
+
|
|
2087
|
+
let rtcStreamId = `${zego.sid.slice(0,str.length-1)+2}` //'4000_345_123_2'
|
|
2088
|
+
let param = {
|
|
2089
|
+
institutionId: zego.institutionId,
|
|
2090
|
+
taskId: zego.sid,
|
|
2091
|
+
userId: zego.userId,
|
|
2092
|
+
streamIds: streamIdList,
|
|
2093
|
+
rtcStreamId,
|
|
2094
|
+
pushUrls: targetUrl //数组
|
|
2095
|
+
}
|
|
2096
|
+
let res = await mixStreamsStart(param);
|
|
2097
|
+
if (res.code == 0) {
|
|
2098
|
+
console.log('混流成功:', res);
|
|
2099
|
+
} else {
|
|
2100
|
+
console.log('startmixStream local start……');
|
|
2101
|
+
return callMethod('MixStreamEx', {
|
|
2102
|
+
mixstreamid: zego.sid,
|
|
2103
|
+
config: {
|
|
2104
|
+
nOutputFps: 15,
|
|
2105
|
+
nOutputBitrate: 512000,
|
|
2106
|
+
nOutputAudioBitrate: 48000,
|
|
2107
|
+
nOutputWidth: 1280,
|
|
2108
|
+
nOutputHeight: 720,
|
|
2109
|
+
nOutputAudioConfig: 0,
|
|
2110
|
+
pUserData: '',
|
|
2111
|
+
nLenOfUserData: 0,
|
|
2112
|
+
pInputStreamList: [
|
|
2113
|
+
{
|
|
2114
|
+
szStreamID: streamIdList[1],//截屏窗
|
|
2115
|
+
layout: { left: 0, top: 0, right: 1040, bottom: 720 },
|
|
2116
|
+
uSoundLevelID: 1234,
|
|
2117
|
+
nContentControl: 0,
|
|
2118
|
+
nVolume: 100,
|
|
2119
|
+
bAudioFocus: false,
|
|
2120
|
+
nAudioDirection: -1,
|
|
2121
|
+
renderMode: 0
|
|
2122
|
+
},
|
|
2123
|
+
{
|
|
2124
|
+
szStreamID: streamIdList[0],//头像
|
|
2125
|
+
layout: { left: 1040, top: 0, right: 1280, bottom: 180 },
|
|
2126
|
+
uSoundLevelID: 3232,
|
|
2127
|
+
nContentControl: 0,
|
|
2128
|
+
nVolume: 100,
|
|
2129
|
+
bAudioFocus: false,
|
|
2130
|
+
nAudioDirection: -1,
|
|
2131
|
+
renderMode: 0
|
|
2132
|
+
}
|
|
2133
|
+
],
|
|
2134
|
+
nInputStreamCount: 2,
|
|
2135
|
+
pOutputList: [
|
|
2136
|
+
{
|
|
2137
|
+
isUrl: true, // 输出是否为流名或URL
|
|
2138
|
+
target: targetUrl[0], //isUrl=ture完整的RTMP URL,false是流名
|
|
2139
|
+
videoCodec: 0,
|
|
2140
|
+
videoBitrate: 0,
|
|
2141
|
+
encodeProfile: 1,
|
|
2142
|
+
encodeLatency: 0
|
|
2143
|
+
}
|
|
2144
|
+
// {
|
|
2145
|
+
// isUrl: false,
|
|
2146
|
+
// target: "streamId",
|
|
2147
|
+
// videoCodec: 0,
|
|
2148
|
+
// videoBitrate: 0,
|
|
2149
|
+
// encodeProfile: 1,
|
|
2150
|
+
// encodeLatency: 0
|
|
2151
|
+
// }
|
|
2152
|
+
],
|
|
2153
|
+
nOutputStreamCount: 1,
|
|
2154
|
+
pOutputBackgroundImage: '',
|
|
2155
|
+
}
|
|
2156
|
+
})
|
|
2157
|
+
}
|
|
2158
|
+
|
|
2159
|
+
|
|
2160
|
+
};
|
|
2161
|
+
|
|
2162
|
+
export const stopMixtStreams = async (targetUrl) => {
|
|
2163
|
+
const zego = window.zbyAVSDK_init_params.zego;
|
|
2164
|
+
let param = {
|
|
2165
|
+
taskId: zego.sid,
|
|
2166
|
+
userId: zego.userId
|
|
2167
|
+
}
|
|
2168
|
+
let res = await mixStreamsStop(param);
|
|
2169
|
+
if (res.code == 0) {
|
|
2170
|
+
console.log('停止混流成功:', res);
|
|
2171
|
+
} else {
|
|
2172
|
+
return callMethod('MixStreamEx', {
|
|
2173
|
+
mixstreamid: zego.sid,
|
|
2174
|
+
config: {
|
|
2175
|
+
nOutputFps: 15,
|
|
2176
|
+
nOutputBitrate: 512000,
|
|
2177
|
+
nOutputAudioBitrate: 48000,
|
|
2178
|
+
nOutputWidth: 1280,
|
|
2179
|
+
nOutputHeight: 720,
|
|
2180
|
+
nOutputAudioConfig: 0,
|
|
2181
|
+
pUserData: '',
|
|
2182
|
+
nLenOfUserData: 0,
|
|
2183
|
+
pInputStreamList: [],
|
|
2184
|
+
nInputStreamCount: 2,
|
|
2185
|
+
pOutputList: [
|
|
2186
|
+
{
|
|
2187
|
+
isUrl: true, // 输出是否为流名或URL
|
|
2188
|
+
target: targetUrl[0], //isUrl=ture完整的RTMP URL,false是流名
|
|
2189
|
+
videoCodec: 0,
|
|
2190
|
+
videoBitrate: 0,
|
|
2191
|
+
encodeProfile: 1,
|
|
2192
|
+
encodeLatency: 0
|
|
2193
|
+
}
|
|
2194
|
+
// {
|
|
2195
|
+
// isUrl: false,
|
|
2196
|
+
// target: "streamId",
|
|
2197
|
+
// videoCodec: 0,
|
|
2198
|
+
// videoBitrate: 0,
|
|
2199
|
+
// encodeProfile: 1,
|
|
2200
|
+
// encodeLatency: 0
|
|
2201
|
+
// }
|
|
2202
|
+
],
|
|
2203
|
+
nOutputStreamCount: 1,
|
|
2204
|
+
pOutputBackgroundImage: '',
|
|
2205
|
+
}
|
|
2206
|
+
})
|
|
2207
|
+
}
|
|
2208
|
+
};
|
|
2209
|
+
|
|
2210
|
+
|
|
2072
2211
|
/**
|
|
2073
2212
|
* @function 是否拉取音频流--通过流id控制
|
|
2074
2213
|
* @param streamId:String 被拉取的流的 id,必选
|
|
@@ -2992,5 +3131,7 @@ export default {
|
|
|
2992
3131
|
stopCheckDevice,
|
|
2993
3132
|
getDeviceCheckInitStatus,
|
|
2994
3133
|
setDeviceCheckInitStatus,
|
|
2995
|
-
setThirdAudioType
|
|
3134
|
+
setThirdAudioType,
|
|
3135
|
+
startmixStreams,
|
|
3136
|
+
stopMixtStreams
|
|
2996
3137
|
};
|
package/src/zby-live-sdk.js
CHANGED
|
@@ -1520,6 +1520,16 @@ const zbysdk = {
|
|
|
1520
1520
|
return zbyAVSDK.sendMediaSideInfo(info);
|
|
1521
1521
|
},
|
|
1522
1522
|
|
|
1523
|
+
startMixStreams(urls) {
|
|
1524
|
+
defaultApi.writeLog('sdk action: startMixStream');
|
|
1525
|
+
return zbyAVSDK.startMixStreams(urls);
|
|
1526
|
+
},
|
|
1527
|
+
|
|
1528
|
+
stopMixtStreams(urls) {
|
|
1529
|
+
defaultApi.writeLog('sdk action: stopMixtStreams');
|
|
1530
|
+
return zbyAVSDK.stopMixtStreams(urls);
|
|
1531
|
+
},
|
|
1532
|
+
|
|
1523
1533
|
/**
|
|
1524
1534
|
* @function 切换sdk类型
|
|
1525
1535
|
* @return: Promise
|