trtc-cloud-js-sdk 2.0.0 → 2.1.0

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.
Files changed (143) hide show
  1. package/package.json +7 -57
  2. package/trtc-cloud-js-sdk.js +1 -0
  3. package/.eslintrc.js +0 -88
  4. package/.prettierrc +0 -5
  5. package/CHANGELOG.md +0 -58
  6. package/build/jsdoc/clean-doc.js +0 -12
  7. package/build/jsdoc/fix-doc.js +0 -141
  8. package/build/jsdoc/jsdoc.json +0 -42
  9. package/build/package-bundle.js +0 -29
  10. package/build/rollup.config.dev.js +0 -88
  11. package/build/rollup.config.prod.js +0 -93
  12. package/build/rollup.js +0 -359
  13. package/build/template/npm-package/package.json +0 -24
  14. package/coverage/Chrome 103.0.5060 (Mac OS X 10.15.7)/base.css +0 -213
  15. package/coverage/Chrome 103.0.5060 (Mac OS X 10.15.7)/index.html +0 -80
  16. package/coverage/Chrome 103.0.5060 (Mac OS X 10.15.7)/prettify.css +0 -1
  17. package/coverage/Chrome 103.0.5060 (Mac OS X 10.15.7)/prettify.js +0 -1
  18. package/coverage/Chrome 103.0.5060 (Mac OS X 10.15.7)/sort-arrow-sprite.png +0 -0
  19. package/coverage/Chrome 103.0.5060 (Mac OS X 10.15.7)/sorter.js +0 -158
  20. package/examples/apiExample/.env +0 -2
  21. package/examples/apiExample/README.md +0 -70
  22. package/examples/apiExample/package-lock.json +0 -30915
  23. package/examples/apiExample/package.json +0 -51
  24. package/examples/apiExample/public/audio.js +0 -195
  25. package/examples/apiExample/public/audio.js.map +0 -7
  26. package/examples/apiExample/public/av_processing.js +0 -1
  27. package/examples/apiExample/public/basic/av_processing.wasm +0 -0
  28. package/examples/apiExample/public/basic/worker.js +0 -10434
  29. package/examples/apiExample/public/favicon.ico +0 -0
  30. package/examples/apiExample/public/index.html +0 -47
  31. package/examples/apiExample/public/logo192.png +0 -0
  32. package/examples/apiExample/public/logo512.png +0 -0
  33. package/examples/apiExample/public/manifest.json +0 -25
  34. package/examples/apiExample/public/robots.txt +0 -3
  35. package/examples/apiExample/src/App.css +0 -37
  36. package/examples/apiExample/src/App.js +0 -25
  37. package/examples/apiExample/src/api/http.js +0 -127
  38. package/examples/apiExample/src/api/nav.js +0 -44
  39. package/examples/apiExample/src/components/BasicInfoComponent.css +0 -16
  40. package/examples/apiExample/src/components/BasicInfoComponent.js +0 -27
  41. package/examples/apiExample/src/config/gen-test-user-sig.js +0 -64
  42. package/examples/apiExample/src/config/lib-generate-test-usersig.min.js +0 -7052
  43. package/examples/apiExample/src/config/nav.js +0 -136
  44. package/examples/apiExample/src/home.js +0 -16
  45. package/examples/apiExample/src/index.css +0 -21
  46. package/examples/apiExample/src/index.js +0 -12
  47. package/examples/apiExample/src/logo.svg +0 -1
  48. package/examples/apiExample/src/page/basic/screen-share/index.css +0 -52
  49. package/examples/apiExample/src/page/basic/screen-share/index.js +0 -223
  50. package/examples/apiExample/src/page/basic/setDevice/index.js +0 -262
  51. package/examples/apiExample/src/page/basic/setDevice/index.scss +0 -93
  52. package/examples/apiExample/src/page/basic/video-call/index.js +0 -521
  53. package/examples/apiExample/src/page/basic/video-call/index.scss +0 -93
  54. package/examples/apiExample/src/page/basic/video-call-init/index.js +0 -382
  55. package/examples/apiExample/src/page/basic/video-call-init/index.scss +0 -93
  56. package/examples/apiExample/src/page/basic/video-live/index.css +0 -37
  57. package/examples/apiExample/src/page/basic/video-live/index.js +0 -188
  58. package/examples/apiExample/src/page/layout.js +0 -22
  59. package/examples/apiExample/src/page/layout.scss +0 -76
  60. package/examples/apiExample/src/utils/utils.js +0 -35
  61. package/examples/jsExample/assets/css/bootstrap-material-design.css +0 -12169
  62. package/examples/jsExample/assets/css/bootstrap-material-design.min.css +0 -8
  63. package/examples/jsExample/assets/css/common.css +0 -48
  64. package/examples/jsExample/assets/icon/iconfont.js +0 -1
  65. package/examples/jsExample/assets/js/bootstrap-material-design.js +0 -6939
  66. package/examples/jsExample/assets/js/bootstrap-material-design.js.map +0 -1
  67. package/examples/jsExample/assets/js/bootstrap-material-design.min.js +0 -1
  68. package/examples/jsExample/assets/js/graph.js +0 -695
  69. package/examples/jsExample/assets/js/jquery-3.2.1.min.js +0 -4
  70. package/examples/jsExample/assets/js/jquery-3.2.1.slim.min.js +0 -4
  71. package/examples/jsExample/assets/js/lib-generate-test-usersig.min.js +0 -2
  72. package/examples/jsExample/assets/js/popper.js +0 -2442
  73. package/examples/jsExample/index.html +0 -57
  74. package/examples/jsExample/rtc/css/common.css +0 -82
  75. package/examples/jsExample/rtc/index.html +0 -107
  76. package/examples/jsExample/rtc/js/index.js +0 -142
  77. package/examples/vueDemo/LICENSE +0 -21
  78. package/examples/vueDemo/README.md +0 -144
  79. package/examples/vueDemo/README_EN.md +0 -136
  80. package/examples/vueDemo/av_processing.wasm +0 -0
  81. package/examples/vueDemo/index.html +0 -23
  82. package/examples/vueDemo/package-lock.json +0 -1375
  83. package/examples/vueDemo/package.json +0 -36
  84. package/examples/vueDemo/src/App.vue +0 -12
  85. package/examples/vueDemo/src/api/index.js +0 -59
  86. package/examples/vueDemo/src/assets/css/color-dark.css +0 -28
  87. package/examples/vueDemo/src/assets/css/icon.css +0 -4
  88. package/examples/vueDemo/src/assets/css/main.css +0 -177
  89. package/examples/vueDemo/src/assets/img/img.jpg +0 -0
  90. package/examples/vueDemo/src/assets/img/login-bg.jpg +0 -0
  91. package/examples/vueDemo/src/components/Header.vue +0 -172
  92. package/examples/vueDemo/src/components/Sidebar.vue +0 -117
  93. package/examples/vueDemo/src/components/Tags.vue +0 -174
  94. package/examples/vueDemo/src/components/tendency.vue +0 -206
  95. package/examples/vueDemo/src/components/trtc/main-menu.vue +0 -50
  96. package/examples/vueDemo/src/components/trtc/nav-bar.vue +0 -53
  97. package/examples/vueDemo/src/components/trtc/show-screen-capture.vue +0 -118
  98. package/examples/vueDemo/src/components/trtc/trtc-state-check.vue +0 -117
  99. package/examples/vueDemo/src/config/gen-test-user-sig.js +0 -67
  100. package/examples/vueDemo/src/config/lib-generate-test-usersig.min.js +0 -7052
  101. package/examples/vueDemo/src/main.js +0 -11
  102. package/examples/vueDemo/src/plugins/element.js +0 -17
  103. package/examples/vueDemo/src/router/index.js +0 -73
  104. package/examples/vueDemo/src/store/sidebar.js +0 -17
  105. package/examples/vueDemo/src/store/tags.js +0 -48
  106. package/examples/vueDemo/src/utils/i18n.js +0 -24
  107. package/examples/vueDemo/src/utils/request.js +0 -34
  108. package/examples/vueDemo/src/utils/utils.js +0 -35
  109. package/examples/vueDemo/src/views/Home.vue +0 -46
  110. package/examples/vueDemo/src/views/I18n.vue +0 -40
  111. package/examples/vueDemo/src/views/Icon.vue +0 -229
  112. package/examples/vueDemo/src/views/basic/trtc.vue +0 -194
  113. package/examples/vueDemo/src/views/feature/index.vue +0 -259
  114. package/examples/vueDemo/src/views/github/index.vue +0 -243
  115. package/examples/vueDemo/src/views/improve/live-index.vue +0 -256
  116. package/examples/vueDemo/src/views/improve/live-room-anchor.vue +0 -689
  117. package/examples/vueDemo/src/views/improve/live-room-audience.vue +0 -383
  118. package/examples/vueDemo/src/views/sdkAppId/index.vue +0 -284
  119. package/examples/vueDemo/vite.config.js +0 -18
  120. package/examples/vueDemo/worker.js +0 -22
  121. package/karma.conf.js +0 -99
  122. package/scripts/publish.js +0 -86
  123. package/src/Camera.ts +0 -80
  124. package/src/Mic.ts +0 -145
  125. package/src/common/IError.ts +0 -6
  126. package/src/common/ITRTCCloud.ts +0 -68
  127. package/src/common/constants.ts +0 -116
  128. package/src/common/trtc-code.ts +0 -43
  129. package/src/common/trtc-define.ts +0 -1007
  130. package/src/common/trtc-event.ts +0 -29
  131. package/src/index.ts +0 -1672
  132. package/src/utils/environment.js +0 -297
  133. package/src/utils/raf.js +0 -131
  134. package/src/utils/time.js +0 -22
  135. package/src/utils/utils.ts +0 -71
  136. package/src/utils/uuid.js +0 -12
  137. package/test/unit/env.test.js +0 -25
  138. package/test/unit/get-user-media.test.js +0 -40
  139. package/test/unit/ice-parser.test.js +0 -23
  140. package/test/unit/sdp.test.js +0 -45
  141. package/test/unit/signal.test.js +0 -78
  142. package/tsconfig.json +0 -32
  143. /package/{build/template/npm-package/README.md → README.md} +0 -0
@@ -1,262 +0,0 @@
1
- /* eslint-disable no-unused-vars */
2
- import React, { useState, useEffect } from 'react';
3
- import { Button } from '@material-ui/core';
4
- import './index.scss';
5
- import BasicInfoComponent from '../../../components/BasicInfoComponent';
6
- import TRTCCloud, { TRTCAppScene, TRTCParams, TRTCVideoStreamType } from 'trtc-cloud-js-sdk';
7
- import genTestUserSig from '../../../config/gen-test-user-sig';
8
- import { validParams } from '../../../utils/utils';
9
- const trtcCloud = TRTCCloud.getTRTCShareInstance();
10
- let preRemoteUserIdList = [];
11
-
12
- export default function SetDevice() {
13
- const [userId, setUserId] = useState('TRTCCloud_' + parseInt(Math.random() * 100000));
14
- const [roomId, setRoomId] = useState(parseInt(Math.random() * 100000) + '');
15
- const [remoteUserIdList, setRemoteUserIdList] = useState([]);
16
- const [cameraList, setCameraList] = useState([]);
17
- const [micList, setMicList] = useState([]);
18
- const [speakerList, setSpeakerList] = useState([]);
19
- let info = {};
20
- let sdkAppId = 0 || info.sdkAppId;
21
- let userSignature = '';
22
- const LOG_PREFIX = '[Video Call]';
23
-
24
- useEffect(async () => {
25
- console.warn(`${LOG_PREFIX} TRTC version:`, trtcCloud.getSDKVersion());
26
- subscribeEvents();
27
-
28
- const tempCameraList = await trtcCloud.getCameraDevicesList();
29
- const tempMicList = await trtcCloud.getMicDevicesList();
30
- const tempSpeakerList = await trtcCloud.getSpeakerDevicesList();
31
- console.warn('==== camera list = ', tempCameraList);
32
- console.warn('==== mic list = ', tempMicList);
33
- console.warn('==== speaker list = ', tempSpeakerList);
34
-
35
- setCameraList(tempCameraList);
36
- setMicList(tempMicList);
37
- setSpeakerList(tempSpeakerList);
38
- }, []);
39
-
40
- useEffect(() => {
41
- try {
42
- remoteUserIdList.forEach(async (userId) => {
43
- const domElement = document.getElementById(userId);
44
- await trtcCloud.startRemoteView(userId, domElement, TRTCVideoStreamType.TRTCVideoStreamTypeBig);
45
- });
46
- } catch (error) {
47
- console.error(`${LOG_PREFIX} remoteUserIdList useEffect error: ${JSON.stringify(error)}`);
48
- }
49
- }, [remoteUserIdList]);
50
-
51
- // 进房
52
- const enterRoom = async () => {
53
- const trtcParams = new TRTCParams();
54
- trtcParams.userId = userId;
55
- trtcParams.sdkAppId = sdkAppId;
56
- trtcParams.userSig = userSignature;
57
- trtcParams.roomId = +roomId;
58
- await trtcCloud.enterRoom(trtcParams, TRTCAppScene.TRTCAppSceneVideoCall);
59
- await startLocalPreview();
60
- await startLocalAudio();
61
- };
62
- // 退房
63
- const exitRoom = () => {
64
- setRemoteUserIdList([]);
65
- preRemoteUserIdList = [];
66
- stopLocalPreview();
67
- stopLocalAudio();
68
- trtcCloud.exitRoom();
69
- unsubscribeEvents();
70
- };
71
- // input 输入框内容改变处理
72
- const handleInputChange = (event, type) => {
73
- if (type === 'USERID') {
74
- setUserId(event.target.value);
75
- }
76
- if (type === 'ROOMID') {
77
- setRoomId(event.target.value);
78
- }
79
- };
80
- const handleStart = () => {
81
- info = genTestUserSig(userId);
82
- sdkAppId = info.sdkAppId;
83
- userSignature = info.userSig;
84
- if (!validParams(userId, +roomId, sdkAppId, userSignature)) {
85
- return;
86
- }
87
- enterRoom();
88
- };
89
- const handleStop = () => exitRoom();
90
- // 打开本地视频
91
- const startLocalPreview = async () => {
92
- const localVideoWrapper = document.getElementById('localVideoWrapper');
93
- await trtcCloud.startLocalPreview(localVideoWrapper);
94
- };
95
- // 关闭本地视频
96
- const stopLocalPreview = () => trtcCloud.stopLocalPreview();
97
- // 开启本地音频
98
- const startLocalAudio = async () => await trtcCloud.startLocalAudio();
99
- // 关闭本地音频
100
- const stopLocalAudio = async () => await trtcCloud.stopLocalAudio();
101
- // 切换设备
102
- const handleChangeDevice = async (e, type) => {
103
- const deviceId = e.target.value;
104
- console.warn(' select device id: ', deviceId);
105
- if (type === 'CAMERA') {
106
- await trtcCloud.setCurrentCameraDevice(deviceId);
107
- } else if (type === 'MIC') {
108
- let currentMicDevice = trtcCloud.getCurrentMicDevice();
109
- console.warn(`${LOG_PREFIX} current Mic deviceId before :`, currentMicDevice);
110
-
111
- await trtcCloud.setCurrentMicDevice(deviceId);
112
-
113
- currentMicDevice = trtcCloud.getCurrentMicDevice();
114
- console.warn(`${LOG_PREFIX} current Mic deviceId after :`, currentMicDevice);
115
- } else if (type === 'SPEAKER') {
116
- await trtcCloud.setCurrentSpeakerDevice(deviceId);
117
- console.warn('---- 切换 speaker ');
118
- }
119
- };
120
-
121
- // ============================【所有需要监听事件的回调】============================
122
- // 错误回调
123
- const onError = (errCode, errMsg) => {
124
- console.warn(`${LOG_PREFIX} onError: errCode: ${errCode}, errMsg: ${errMsg}`);
125
- };
126
- // 进房回调
127
- const onEnterRoom = (elapsed) => {
128
- if (elapsed > 0) {
129
- console.warn(`${LOG_PREFIX} onEnterRoom: elapsed: ${elapsed}`);
130
- } else {
131
- console.warn(`${LOG_PREFIX} onEnterRoom failed: elapsed: ${elapsed}`);
132
- }
133
- };
134
- // 退房回调
135
- const onExitRoom = (reason) => {
136
- console.warn(`${LOG_PREFIX} onExitRoom: reason: ${reason}`);
137
- };
138
- // 远端用户进房事件
139
- const onRemoteUserEnterRoom = (userId) => {
140
- console.warn(`${LOG_PREFIX} onRemoteUserEnterRoom: userId: ${userId}`);
141
- };
142
- // 远端用户退房事件
143
- const onRemoteUserLeaveRoom = (userId, reason) => {
144
- console.warn(`${LOG_PREFIX} onRemoteUserLeaveRoom: userId: ${userId}, ${reason}`);
145
- };
146
- // 远端用户 video 可用事件
147
- const onUserVideoAvailable = (userId, available) => {
148
- console.warn(`${LOG_PREFIX} onUserVideoAvailable: userId: ${userId}, available: ${available}`);
149
- if (available) {
150
- if (preRemoteUserIdList.indexOf(userId) === -1) {
151
- preRemoteUserIdList = [...preRemoteUserIdList, userId];
152
- }
153
- } else {
154
- preRemoteUserIdList = preRemoteUserIdList.filter((str) => str !== userId);
155
- }
156
- setRemoteUserIdList(preRemoteUserIdList);
157
- };
158
- // audio available
159
- const handleUserAudioAvailable = (userId, available) => {
160
- console.warn(`${LOG_PREFIX} onUserAudioAvailable: userId: ${userId}, available: ${available}`);
161
- };
162
- // 注册所有的事件监听
163
- const subscribeEvents = () => {
164
- trtcCloud.on('onError', onError);
165
- trtcCloud.on('onEnterRoom', onEnterRoom);
166
- trtcCloud.on('onExitRoom', onExitRoom);
167
- trtcCloud.on('onRemoteUserEnterRoom', onRemoteUserEnterRoom);
168
- trtcCloud.on('onRemoteUserLeaveRoom', onRemoteUserLeaveRoom);
169
- trtcCloud.on('onUserVideoAvailable', onUserVideoAvailable);
170
- trtcCloud.on('onUserAudioAvailable', handleUserAudioAvailable);
171
- };
172
- // 注销所有的事件监听
173
- const unsubscribeEvents = () => {
174
- trtcCloud.off('onError', onError);
175
- trtcCloud.off('onEnterRoom', onEnterRoom);
176
- trtcCloud.off('onExitRoom', onExitRoom);
177
- trtcCloud.off('onRemoteUserEnterRoom', onRemoteUserEnterRoom);
178
- trtcCloud.off('onRemoteUserLeaveRoom', onRemoteUserLeaveRoom);
179
- trtcCloud.off('onUserVideoAvailable', onUserVideoAvailable);
180
- };
181
-
182
- return (
183
- <div className="content-container">
184
- <div className="operate-container">
185
- <BasicInfoComponent userId={userId} roomId={roomId} handleInputChange={handleInputChange} handleStart={handleStart} handleStop={handleStop}></BasicInfoComponent>
186
- {/* 摄像头选择 */}
187
- <div className="select-container">
188
- <label htmlFor="camera-select" className="select-item-label">
189
- 摄像头:
190
- </label>
191
- <select id="camera-select" className="select-item" onChange={(e) => handleChangeDevice(e, 'CAMERA')}>
192
- {cameraList.map((obj, idx) => (
193
- <option key={obj.deviceId} value={obj.deviceId}>
194
- {obj.deviceName}
195
- </option>
196
- ))}
197
- </select>
198
- </div>
199
- {/* 麦克风选择 */}
200
- <div className="select-container">
201
- <label htmlFor="mic-select" className="select-item-label">
202
- 麦克风:
203
- </label>
204
- <select id="mic-select" className="select-item" onChange={(e) => handleChangeDevice(e, 'MIC')}>
205
- {micList.map((obj, idx) => (
206
- <option key={obj.deviceId} value={obj.deviceId}>
207
- {obj.deviceName}
208
- </option>
209
- ))}
210
- </select>
211
- </div>
212
- {/* Speaker */}
213
- <div className="select-container">
214
- <label htmlFor="speaker-select" className="select-item-label">
215
- 外放:
216
- </label>
217
- <select id="speaker-select" className="select-item" onChange={(e) => handleChangeDevice(e, 'SPEAKER')}>
218
- {speakerList.map((obj, idx) => (
219
- <option key={obj.deviceId} value={obj.deviceId}>
220
- {obj.deviceName}
221
- </option>
222
- ))}
223
- </select>
224
- </div>
225
-
226
- {/* 额外操作 */}
227
- <div className="external-operate-container">
228
- {/* <Button variant="contained" color="primary" onChange={() => operateFirstRemote()} style={{ marginTop: '8px' }}>
229
- {isStopRemote ? 'start' : 'stop'}第一个远端用户
230
- </Button> */}
231
- {/*
232
- <Button variant="contained" color="primary" onChange={() => disableAudioVolumeEvaluation()} style={{ marginTop: '8px' }}>关闭音量采集</Button>
233
- <Button variant="contained" color="primary" onChange={() => muteAllRemoteAudio()} style={{ marginTop: '8px' }}>{isMuteAllRemoteAudio ? '开启' : '关闭'}远端所有音频</Button> */}
234
- </div>
235
- </div>
236
-
237
- <div className="video-view-preview">
238
- <div className="video-wrapper local-user">
239
- <div className="user-desc">
240
- <span className="user-type">本地用户</span>
241
- <span className="user-role" id="localUserRole"></span>
242
- </div>
243
- <div id="localVideoWrapper"></div>
244
- </div>
245
- <div className="video-wrapper remote-user">
246
- <div className="user-desc">
247
- <span className="user-type">远程用户</span>
248
- <span className="user-role" id="remoteUserRole"></span>
249
- </div>
250
- <div className="video-wrapper-container">
251
- <div className="remoteVideoWrapper" id="remote-screen-share-container">
252
- <div className="remote-share-text">远端屏幕分享</div>
253
- </div>
254
- {remoteUserIdList.map((userId, index) => (
255
- <div id={userId} key={userId + '_' + index} className="remoteVideoWrapper"></div>
256
- ))}
257
- </div>
258
- </div>
259
- </div>
260
- </div>
261
- );
262
- }
@@ -1,93 +0,0 @@
1
- .content-container {
2
- display: flex;
3
- .operate-container {
4
- display: flex;
5
- flex-direction: column;
6
- width: 330px;
7
- .external-operate-container {
8
- display: flex;
9
- justify-content: center;
10
- flex-direction: column;
11
- .btn-operate-group {
12
- display: flex;
13
- justify-content: space-between;
14
- margin-top: 6px;
15
- }
16
- }
17
- .select-container {
18
- display: flex;
19
- margin-top: 8px;
20
- .select-item-label {
21
- flex: 1;
22
- }
23
- .select-item {
24
- height: 28px;
25
- width: 200px;
26
- }
27
- }
28
- }
29
- .video-view-preview {
30
- margin-left: 12px;
31
- }
32
- }
33
- .video-view-preview {
34
- /* padding: 1rem 2rem; */
35
- display: flex;
36
- flex-direction: column;
37
- justify-content: center;
38
- }
39
-
40
- .video-wrapper {
41
- flex: 0 0 auto;
42
- padding: 0 0.5rem;
43
- }
44
-
45
- .user-desc {
46
- margin: 0.5rem 0rem;
47
- }
48
- .user-type {
49
- font-weight: bold;
50
- }
51
- .video-wrapper-container {
52
- display: flex;
53
- flex-wrap: wrap;
54
- margin-bottom: 1rem;
55
- }
56
- #localVideoWrapper,
57
- .remoteVideoWrapper {
58
- position: relative;
59
- width: 320px;
60
- height: 184px;
61
- box-shadow: 2px 2px 18px 4px #c0c0c0;
62
- background-color: lightblue;
63
- margin-right: 20px;
64
- border-radius: 8px;
65
- }
66
- .remote-share-text {
67
- position: absolute;
68
- background-color: white;
69
- color: black;
70
- opacity: 0.7;
71
- border-radius: 6px;
72
- bottom: 0rem;
73
- display: flex;
74
- justify-content: center;
75
- align-items: center;
76
- padding: 0rem 0.5rem;
77
- z-index: 100;
78
- }
79
-
80
- .local-statistic,
81
- .remote-statistic {
82
- margin-top: 1rem;
83
- }
84
-
85
- .config-form {
86
- margin: 1rem 0;
87
- }
88
-
89
- .form-line {
90
- padding: 0.5rem 0.25rem;
91
- }
92
-
93
-