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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zby-live-sdk",
3
- "version": "1.0.49-beta0825-1",
3
+ "version": "1.0.49-beta0921-1",
4
4
  "main": "dist/zby-live-sdk.cjs.js",
5
5
  "module": "dist/zby-live-sdk.esm.js",
6
6
  "browsers": "dist/zby-live-sdk.umd.js",
@@ -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-beta0825-1';
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];
@@ -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 rtc , from avsdk device check init');
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
- break;
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('rtc stopCheckDevice and removerListener and captureDestroy');
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 = 0;
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
  };
@@ -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