trtc-electron-sdk 11.4.502-beta.2 → 11.4.502

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.
@@ -1,9 +1,13 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  exports.TRTCLocalMediaTranscodingSourceType = exports.TRTCLocalMediaTranscodingEvents = exports.TRTCLocalMediaTranscodingError = void 0;
4
7
  const events_1 = require("events");
5
8
  const trtc_define_1 = require("../trtc_define");
6
9
  const Renderer_1 = require("../Renderer");
10
+ const logger_1 = __importDefault(require("../logger"));
7
11
  /**
8
12
  * @description 本地媒体流混流转码错误码
9
13
  * @enum {Number}
@@ -397,7 +401,7 @@ class TRTCLocalMediaTranscoder extends events_1.EventEmitter {
397
401
  this.container = null;
398
402
  }
399
403
  catch (error) {
400
- console.warn('trtc: TRTCLocalMediaTranscoder.destroy error', error);
404
+ logger_1.default.warn('TRTCLocalMediaTranscoder.destroy error', error);
401
405
  }
402
406
  }
403
407
  // 帧率、码率在 JS 层为数值,可能被设置为负数,底层要求为无符号整数,此处做检验并将负值设置为零
@@ -8,6 +8,7 @@ const yuv_canvas_1 = __importDefault(require("yuv-canvas"));
8
8
  const yuv_buffer_1 = __importDefault(require("../yuv-buffer"));
9
9
  const trtc_define_1 = require("../../trtc_define");
10
10
  const util_1 = require("../util");
11
+ const logger_1 = __importDefault(require("../../logger"));
11
12
  class Canvas2dRenderer {
12
13
  constructor(pixelFormat, view) {
13
14
  this.pixelFormat = pixelFormat;
@@ -46,7 +47,7 @@ class Canvas2dRenderer {
46
47
  this.viewContainer.removeChild(this.viewWrapper);
47
48
  }
48
49
  else {
49
- console.warn("trtc: Canvas2DRenderer unbind error: remove viewWrapper error", this.viewWrapper, this.viewContainer, (_a = this.viewContainer) === null || _a === void 0 ? void 0 : _a.parentElement);
50
+ logger_1.default.warn("trtc: Canvas2DRenderer unbind error: remove viewWrapper error", this.viewWrapper, this.viewContainer, (_a = this.viewContainer) === null || _a === void 0 ? void 0 : _a.parentElement);
50
51
  }
51
52
  this.viewContainer = null;
52
53
  this.yuv = null;
@@ -63,7 +64,7 @@ class Canvas2dRenderer {
63
64
  this._drawFrameBGRA(frameData);
64
65
  break;
65
66
  default:
66
- console.warn('trtc:Canvas2dRenderer.drawFrame error. Not support video format:', this.pixelFormat);
67
+ logger_1.default.warn('Canvas2dRenderer.drawFrame error. Not support video format:', this.pixelFormat);
67
68
  }
68
69
  }
69
70
  _drawFrameI420(frameData) {
@@ -107,7 +108,7 @@ class Canvas2dRenderer {
107
108
  }
108
109
  }
109
110
  catch (err) {
110
- console.error('trtc:Canvas2dRenderer._drawFrameI420 error:', err);
111
+ logger_1.default.error('Canvas2dRenderer._drawFrameI420 error:', err);
111
112
  }
112
113
  }
113
114
  _drawFrameRGBA(frameData) {
@@ -151,7 +152,7 @@ class Canvas2dRenderer {
151
152
  }
152
153
  }
153
154
  catch (err) {
154
- console.error('trtc:Canvas2dRenderer._drawFrameRGBA error:', err);
155
+ logger_1.default.error('Canvas2dRenderer._drawFrameRGBA error:', err);
155
156
  }
156
157
  }
157
158
  _drawFrameBGRA(frameData) {
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  // import { createProgramFromSources } from './webgl-utils.js';
4
7
  const util_1 = require("../util");
8
+ const logger_1 = __importDefault(require("../../logger"));
5
9
  const createProgramFromSources = require('./webgl-utils').createProgramFromSources;
6
10
  const vertexShaderSource = 'attribute vec2 a_position;'
7
11
  + 'attribute vec2 a_texCoord;'
@@ -43,7 +47,7 @@ const createGL = function (canvas) {
43
47
  || canvas.getContext("experimental-webgl");
44
48
  }
45
49
  catch (err) {
46
- console.warn('trtc:createGL error:', err);
50
+ logger_1.default.warn('createGL error:', err);
47
51
  isSuccess = false;
48
52
  }
49
53
  if (!isSuccess || !gl) {
@@ -68,10 +72,10 @@ class I420Canvas3DRenderer {
68
72
  this.glProgram = createProgramFromSources(this.gl, [vertexShaderSource, yuvShaderSource]);
69
73
  this.gl.useProgram(this.glProgram);
70
74
  this._initTextures();
71
- console.debug('trtc:gl created', this.gl, canvas);
75
+ logger_1.default.debug('gl created', this.gl, canvas);
72
76
  }
73
77
  catch (err) {
74
- console.warn('trtc:I420RenderContextCreator.constructor() failed.', err);
78
+ logger_1.default.warn('I420RenderContextCreator.constructor() failed.', err);
75
79
  throw new Error('create WebGL context failed');
76
80
  }
77
81
  }
@@ -93,7 +97,7 @@ class I420Canvas3DRenderer {
93
97
  }
94
98
  }
95
99
  catch (err) {
96
- console.warn('trtc:I420Canvas3DRenderer.draw error:', err);
100
+ logger_1.default.warn('I420Canvas3DRenderer.draw error:', err);
97
101
  }
98
102
  }
99
103
  destroy() {
@@ -103,11 +107,11 @@ class I420Canvas3DRenderer {
103
107
  if (glExtension) {
104
108
  glExtension.loseContext();
105
109
  }
106
- console.debug('trtc:I420Canvas3DRenderer isContextLost:', this.gl.isContextLost());
110
+ logger_1.default.debug('I420Canvas3DRenderer isContextLost:', this.gl.isContextLost());
107
111
  }
108
112
  }
109
113
  catch (err) {
110
- console.warn('trtc:I420Canvas3DRenderer.destroy', err);
114
+ logger_1.default.warn('I420Canvas3DRenderer.destroy', err);
111
115
  }
112
116
  this._deleteProgram(this.glProgram);
113
117
  this.glProgram = null;
@@ -234,7 +238,7 @@ class I420Canvas3DRenderer {
234
238
  if (util_1.config.getDebugMode()) {
235
239
  e = this.gl.getError();
236
240
  if (e != this.gl.NO_ERROR) {
237
- console.log('trtc:upload y plane ', width, height, yplane.byteLength, ' error', e);
241
+ logger_1.default.log('upload y plane ', width, height, yplane.byteLength, ' error', e);
238
242
  }
239
243
  }
240
244
  this.gl.activeTexture(this.gl.TEXTURE1);
@@ -243,7 +247,7 @@ class I420Canvas3DRenderer {
243
247
  if (util_1.config.getDebugMode()) {
244
248
  e = this.gl.getError();
245
249
  if (e != this.gl.NO_ERROR) {
246
- console.log('trtc:upload u plane ', width, height, uplane.byteLength, ' error', e);
250
+ logger_1.default.log('upload u plane ', width, height, uplane.byteLength, ' error', e);
247
251
  }
248
252
  }
249
253
  this.gl.activeTexture(this.gl.TEXTURE2);
@@ -252,7 +256,7 @@ class I420Canvas3DRenderer {
252
256
  if (util_1.config.getDebugMode()) {
253
257
  e = this.gl.getError();
254
258
  if (e != this.gl.NO_ERROR) {
255
- console.log('trtc:upload v plane ', width, height, vplane.byteLength, ' error', e);
259
+ logger_1.default.log('upload v plane ', width, height, vplane.byteLength, ' error', e);
256
260
  }
257
261
  }
258
262
  }
@@ -1,5 +1,9 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ const logger_1 = __importDefault(require("../../logger"));
3
7
  const vertex = [
4
8
  -1, -1, 0,
5
9
  1, -1, 0.0,
@@ -25,7 +29,7 @@ const createGL = function (canvas) {
25
29
  || canvas.getContext("experimental-webgl", { alpha: true, premultipliedAlpha: false });
26
30
  }
27
31
  catch (err) {
28
- console.warn('trtc:createGL error:', err);
32
+ logger_1.default.warn('createGL error:', err);
29
33
  isSuccess = false;
30
34
  }
31
35
  if (!isSuccess || !gl) {
@@ -137,7 +141,7 @@ class RGBACanvas3DRenderer {
137
141
  initTexture(this.gl);
138
142
  }
139
143
  catch (err) {
140
- console.warn('trtc:RGBARenderContextCreator.create() failed.', err);
144
+ logger_1.default.warn('RGBARenderContextCreator.create() failed.', err);
141
145
  throw new Error('create WebGL context failed');
142
146
  }
143
147
  }
@@ -153,7 +157,7 @@ class RGBACanvas3DRenderer {
153
157
  }
154
158
  }
155
159
  catch (err) {
156
- console.warn('trtc:RGBACanvas3DRenderer.draw error:', err);
160
+ logger_1.default.warn('RGBACanvas3DRenderer.draw error:', err);
157
161
  }
158
162
  }
159
163
  destroy() {
@@ -8,6 +8,7 @@ const trtc_define_1 = require("../../trtc_define");
8
8
  const util_1 = require("../util");
9
9
  const RGBACanvas3DRenderer_1 = __importDefault(require("./RGBACanvas3DRenderer"));
10
10
  const I420Canvas3DRenderer_1 = __importDefault(require("./I420Canvas3DRenderer"));
11
+ const logger_1 = __importDefault(require("../../logger"));
11
12
  const UP_LIMIT_COUNT = 16;
12
13
  let currentCreatedCount = 0;
13
14
  class Canvas3dRenderer {
@@ -17,10 +18,10 @@ class Canvas3dRenderer {
17
18
  this.i420Rotation = 0;
18
19
  if (currentCreatedCount < UP_LIMIT_COUNT) {
19
20
  currentCreatedCount = currentCreatedCount + 1;
20
- console.log('trtc: currentCreatedCount=', currentCreatedCount);
21
+ logger_1.default.log('currentCreatedCount=', currentCreatedCount);
21
22
  }
22
23
  else {
23
- throw new Error('trtc: WebGL context reach up limit');
24
+ throw new Error('WebGL context reach up limit');
24
25
  }
25
26
  this.pixelFormat = pixelFormat;
26
27
  this.viewContainer = view;
@@ -43,7 +44,7 @@ class Canvas3dRenderer {
43
44
  this.bind(view);
44
45
  }
45
46
  _handleContextLost(e) {
46
- console.warn("trtc: _handleContextLost:", e);
47
+ logger_1.default.warn("_handleContextLost:", e);
47
48
  this.onContextLost && this.onContextLost();
48
49
  this.destroy();
49
50
  }
@@ -61,7 +62,7 @@ class Canvas3dRenderer {
61
62
  }
62
63
  }
63
64
  catch (err) {
64
- console.warn('trtc:create WebGL context failed.', err);
65
+ logger_1.default.warn('create WebGL context failed.', err);
65
66
  throw new Error('create and initialize WebGL context failed');
66
67
  }
67
68
  }
@@ -104,7 +105,7 @@ class Canvas3dRenderer {
104
105
  this.viewWrapper.removeChild(this.canvas);
105
106
  }
106
107
  else {
107
- console.warn("trtc: Canvas3DRenderer unbind error: remove canvas error", this.canvas, this.viewWrapper);
108
+ logger_1.default.warn("Canvas3DRenderer unbind error: remove canvas error", this.canvas, this.viewWrapper);
108
109
  }
109
110
  (_b = this.canvas) === null || _b === void 0 ? void 0 : _b.removeEventListener("webglcontextlost", this._handleContextLost);
110
111
  this.canvas = null;
@@ -112,7 +113,7 @@ class Canvas3dRenderer {
112
113
  this.viewContainer.removeChild(this.viewWrapper);
113
114
  }
114
115
  else {
115
- console.warn("trtc: Canvas3DRenderer unbind error: remove viewWrapper error", this.viewWrapper, this.viewContainer, (_c = this.viewContainer) === null || _c === void 0 ? void 0 : _c.parentElement);
116
+ logger_1.default.warn("Canvas3DRenderer unbind error: remove viewWrapper error", this.viewWrapper, this.viewContainer, (_c = this.viewContainer) === null || _c === void 0 ? void 0 : _c.parentElement);
116
117
  }
117
118
  this.viewContainer = null;
118
119
  }
@@ -128,7 +129,7 @@ class Canvas3dRenderer {
128
129
  this._drawFrameBGRA(frameData);
129
130
  break;
130
131
  default:
131
- console.warn('trtc:Canvas2dRenderer.drawFrame error. Not support video format:', this.pixelFormat);
132
+ logger_1.default.warn('Canvas2dRenderer.drawFrame error. Not support video format:', this.pixelFormat);
132
133
  }
133
134
  }
134
135
  _drawFrameI420(frameData) {
@@ -172,7 +173,7 @@ class Canvas3dRenderer {
172
173
  }
173
174
  }
174
175
  catch (err) {
175
- console.error('trtc:Canvas3dRenderer._drawFrameI420 error:', err);
176
+ logger_1.default.error('Canvas3dRenderer._drawFrameI420 error:', err);
176
177
  }
177
178
  }
178
179
  _drawFrameRGBA(frameData) {
@@ -200,7 +201,7 @@ class Canvas3dRenderer {
200
201
  }
201
202
  }
202
203
  catch (err) {
203
- console.error('trtc:Canvas3dRenderer._drawFrameRGBA error:', err);
204
+ logger_1.default.error('Canvas3dRenderer._drawFrameRGBA error:', err);
204
205
  }
205
206
  }
206
207
  _drawFrameBGRA(frameData) {
@@ -51,10 +51,10 @@
51
51
  function error(msg) {
52
52
  if (topWindow.console) {
53
53
  if (topWindow.console.error) {
54
- topWindow.console.error('trtc:', msg);
54
+ topWindow.console.error('[TRTC]', msg);
55
55
  }
56
56
  else if (topWindow.console.log) {
57
- topWindow.console.log('trtc:', msg);
57
+ topWindow.console.log('[TRTC]', msg);
58
58
  }
59
59
  }
60
60
  }
@@ -15,6 +15,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
15
15
  const lodash_isequal_1 = __importDefault(require("lodash.isequal"));
16
16
  const trtc_define_1 = require("../../trtc_define");
17
17
  const util_1 = require("../util");
18
+ const logger_1 = __importDefault(require("../../logger"));
18
19
  class VideoRenderer {
19
20
  constructor(pixelFormat, view) {
20
21
  this.pixelFormat = pixelFormat;
@@ -57,7 +58,7 @@ class VideoRenderer {
57
58
  this.viewContainer.removeChild(this.viewWrapper);
58
59
  }
59
60
  else {
60
- console.warn("trtc: Canvas3DRenderer unbind error: remove viewWrapper error", this.viewWrapper, this.viewContainer, (_a = this.viewContainer) === null || _a === void 0 ? void 0 : _a.parentElement);
61
+ logger_1.default.warn("Canvas3DRenderer unbind error: remove viewWrapper error", this.viewWrapper, this.viewContainer, (_a = this.viewContainer) === null || _a === void 0 ? void 0 : _a.parentElement);
61
62
  }
62
63
  this.viewContainer = null;
63
64
  }
@@ -73,13 +74,13 @@ class VideoRenderer {
73
74
  yield this._drawFrameH264(frameData);
74
75
  break;
75
76
  default:
76
- console.warn('trtc:VideoRenderer.drawFrame error. Not support video format:', this.pixelFormat);
77
+ logger_1.default.warn('VideoRenderer.drawFrame error. Not support video format:', this.pixelFormat);
77
78
  }
78
79
  });
79
80
  }
80
81
  _drawFrameH264(frameData) {
81
82
  // To-do
82
- console.warn('trtc:H264 renderer not supported right now');
83
+ logger_1.default.warn('H264 renderer not supported right now');
83
84
  }
84
85
  _drawFrameNonH264(frameData) {
85
86
  return __awaiter(this, void 0, void 0, function* () {
@@ -112,7 +113,7 @@ class VideoRenderer {
112
113
  }
113
114
  }
114
115
  catch (err) {
115
- console.error('trtc:VideoRenderer._drawFrameH264 error:', err);
116
+ logger_1.default.error('VideoRenderer._drawFrameH264 error:', err);
116
117
  }
117
118
  });
118
119
  }
@@ -22,6 +22,7 @@ const Canvas3DRenderer_1 = __importDefault(require("./Canvas3DRenderer"));
22
22
  const Canvas2DRenderer_1 = __importDefault(require("./Canvas2DRenderer"));
23
23
  const VideoRenderer_1 = __importDefault(require("./VideoRenderer"));
24
24
  const util_1 = require("./util");
25
+ const logger_1 = __importDefault(require("../logger"));
25
26
  const isWebGLSupported = (0, util_1.isSupportWebGL)();
26
27
  var RenderType;
27
28
  (function (RenderType) {
@@ -39,10 +40,10 @@ function createRenderer(pixelFormat, view, options) {
39
40
  renderer = new Canvas3DRenderer_1.default(pixelFormat, view, {
40
41
  onContextLost: options.onContextLost || null,
41
42
  });
42
- console.log('trtc: created WebGL render');
43
+ logger_1.default.log('created WebGL render');
43
44
  }
44
45
  catch (err) {
45
- console.log('trtc: create WebGL renderer error.', err.message);
46
+ logger_1.default.log('create WebGL renderer error.', err.message);
46
47
  renderer = null;
47
48
  }
48
49
  }
@@ -52,11 +53,11 @@ function createRenderer(pixelFormat, view, options) {
52
53
  && (options.type === RenderType.WebGL || options.type === RenderType.Video)) {
53
54
  // Electron 15+ 版本支持 WebCodec API
54
55
  renderer = new VideoRenderer_1.default(pixelFormat, view);
55
- console.log('trtc: created Video render');
56
+ logger_1.default.log('created Video render');
56
57
  }
57
58
  else {
58
59
  renderer = new Canvas2DRenderer_1.default(pixelFormat, view);
59
- console.log('trtc: created Canvas 2D render');
60
+ logger_1.default.log('created Canvas 2D render');
60
61
  }
61
62
  }
62
63
  return renderer;
@@ -0,0 +1,15 @@
1
+ import { TRTCLogLevel } from './trtc_define';
2
+ declare class Logger {
3
+ private prefix;
4
+ private logLevel;
5
+ constructor(prefix?: string);
6
+ info(...args: any[]): void;
7
+ log(...args: any[]): void;
8
+ warn(...args: any[]): void;
9
+ error(...args: any[]): void;
10
+ debug(...args: any[]): void;
11
+ setLogLevel(logLevel: TRTCLogLevel): void;
12
+ private getTime;
13
+ }
14
+ declare const logger: Logger;
15
+ export default logger;
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const trtc_define_1 = require("./trtc_define");
4
+ class Logger {
5
+ constructor(prefix = 'TRTC') {
6
+ this.prefix = `[${prefix}]`;
7
+ this.logLevel = trtc_define_1.TRTCLogLevel.TRTCLogLevelInfo;
8
+ }
9
+ info(...args) {
10
+ var _a;
11
+ if (this.logLevel <= trtc_define_1.TRTCLogLevel.TRTCLogLevelInfo) {
12
+ const param = Array.from(args);
13
+ (_a = console.info) === null || _a === void 0 ? void 0 : _a.apply(console, [this.getTime(), this.prefix, ...param]);
14
+ }
15
+ }
16
+ log(...args) {
17
+ var _a;
18
+ if (this.logLevel <= trtc_define_1.TRTCLogLevel.TRTCLogLevelInfo) {
19
+ const param = Array.from(args);
20
+ (_a = console.log) === null || _a === void 0 ? void 0 : _a.apply(console, [this.getTime(), this.prefix, ...param]);
21
+ }
22
+ }
23
+ warn(...args) {
24
+ var _a;
25
+ if (this.logLevel <= trtc_define_1.TRTCLogLevel.TRTCLogLevelWarn) {
26
+ const param = Array.from(args);
27
+ (_a = console.warn) === null || _a === void 0 ? void 0 : _a.apply(console, [this.getTime(), this.prefix, ...param]);
28
+ }
29
+ }
30
+ error(...args) {
31
+ var _a;
32
+ if (this.logLevel <= trtc_define_1.TRTCLogLevel.TRTCLogLevelError) {
33
+ const param = Array.from(args);
34
+ (_a = console.error) === null || _a === void 0 ? void 0 : _a.apply(console, [this.getTime(), this.prefix, ...param]);
35
+ }
36
+ }
37
+ debug(...args) {
38
+ var _a;
39
+ if (this.logLevel <= trtc_define_1.TRTCLogLevel.TRTCLogLevelDebug) {
40
+ const param = Array.from(args);
41
+ (_a = console.debug) === null || _a === void 0 ? void 0 : _a.apply(console, [this.getTime(), this.prefix, ...param]);
42
+ }
43
+ }
44
+ setLogLevel(logLevel) {
45
+ if (logLevel === trtc_define_1.TRTCLogLevel.TRTCLogLevelNone) {
46
+ this.logLevel = trtc_define_1.TRTCLogLevel.TRTCLogLevelError;
47
+ }
48
+ else {
49
+ this.logLevel = logLevel || trtc_define_1.TRTCLogLevel.TRTCLogLevelInfo;
50
+ }
51
+ }
52
+ getTime() {
53
+ const date = new Date();
54
+ return `${date.toLocaleTimeString('en-US', {
55
+ hour12: false,
56
+ })}.${padMs(date.getMilliseconds())}`;
57
+ }
58
+ }
59
+ function padMs(ms) {
60
+ const len = ms.toString().length;
61
+ let ret;
62
+ switch (len) {
63
+ case 1:
64
+ ret = `00${ms}`;
65
+ break;
66
+ case 2:
67
+ ret = `0${ms}`;
68
+ break;
69
+ default:
70
+ ret = ms;
71
+ break;
72
+ }
73
+ return ret;
74
+ }
75
+ const logger = new Logger("TRTC");
76
+ exports.default = logger;
package/liteav/trtc.d.ts CHANGED
@@ -1311,17 +1311,16 @@ declare class TRTCCloud extends EventEmitter {
1311
1311
  /**
1312
1312
  * 开始录音
1313
1313
  *
1314
- * 该方法调用后, SDK 会将通话过程中的所有音频(包括本地音频,远端音频,BGM等)录制到一个文件里。
1315
- * 无论是否进房,调用该接口都生效。
1316
- * 如果调用 exitRoom 时还在录音,录音会自动停止。
1317
- *
1318
- * 注意:录音文件路径需精确到文件名及格式后缀,格式后缀决定录制文件的格式。
1319
- * 例如:指定路径为 path/to/audio.aac,则会生成一个 AAC 格式的文件。目前支持的格式有 PCM, WAV, AAC
1314
+ * 当您调用该接口后, SDK 会将本地和远端的所有音频(包括本地音频,远端音频,背景音乐和音效等)混合并录制到一个本地文件中。
1315
+ * 该接口在进入房间前后调用均可生效,如果录制任务在退出房间前尚未通过 stopAudioRecording 停止,则退出房间后录制任务会自动被停止。
1320
1316
  *
1321
1317
  * @param {TRTCAudioRecordingParams} params - 录音参数。
1322
- * @param {String} params.filePath - 文件路径(必填),录音文件的保存路径。该路径需要用户自行指定,请确保路径存在且可写
1323
- * @param {TRTCAudioRecordingContent} params.recordingContent - 音频录制内容类型
1324
- * @return {Number} 0:成功;-1:录音已开始;-2:文件或目录创建失败;-3:后缀指定的音频格式不支持
1318
+ * @param {String} params.filePath - 录音文件的保存路径(必填)。
1319
+ * - 该路径需精确到文件名及格式后缀,格式后缀用于决定录音文件的格式,目前支持的格式有 PCM、WAV 和 AAC。例如:假如您指定路径为 "mypath/record/audio.aac",代表您希望 SDK 生成一个 AAC 格式的音频录制文件。
1320
+ * - 请您指定一个有读写权限的合法路径,否则录音文件无法生成。
1321
+ * @param {TRTCAudioRecordingContent} params.recordingContent - 音频录制内容类型。
1322
+ * @param {Number} params.maxDurationPerFile - 录制文件分片时长,单位毫秒,最小值10000。默认值为0,表示不分片。
1323
+ * @return {Number} 0:成功;-1:录音已开始;-2:文件或目录创建失败;-3:后缀指定的音频格式不支持;-4:参数错误。
1325
1324
  *
1326
1325
  * 注意:
1327
1326
  * - 在 9.3 之前的版本,params 为 string 代表 录音文件路径(必填), 9.3 以及以后同时支持 string 类型和 TRTCAudioRecordingParams。
package/liteav/trtc.js CHANGED
@@ -27,6 +27,7 @@ const YCbCr_1 = __importDefault(require("yuv-canvas/src/YCbCr"));
27
27
  // import TRTCLocalMediaTranscoder from './LocalMediaTranscoder';
28
28
  const trtc_define_1 = require("./trtc_define");
29
29
  const validate_util_1 = require("./validate-util");
30
+ const logger_1 = __importDefault(require("./logger"));
30
31
  const trtc = require('../build/Release/trtc_electron_sdk.node');
31
32
  const pkg = require('../package.json');
32
33
  __exportStar(require("./trtc_define"), exports);
@@ -55,7 +56,7 @@ const genSecFunc = function (instance, key) {
55
56
  return result;
56
57
  }
57
58
  catch (err) {
58
- console.warn('trtc:', err);
59
+ logger_1.default.warn(err);
59
60
  }
60
61
  };
61
62
  };
@@ -111,7 +112,7 @@ const getComponentNO = function () {
111
112
  }
112
113
  }
113
114
  catch (error) {
114
- console.warn('trtc: localstorage TRTCElectron parse error.', error);
115
+ logger_1.default.warn('localStorage TRTCElectron parse error.', error);
115
116
  }
116
117
  }
117
118
  }
@@ -185,7 +186,7 @@ class TRTCCloud extends events_1.EventEmitter {
185
186
  this.videoProcessBufferType = trtc_define_1.TRTCVideoBufferType.TRTCVideoBufferType_Buffer;
186
187
  this.videoProcessPixelFormat = trtc_define_1.TRTCVideoPixelFormat.TRTCVideoPixelFormat_I420;
187
188
  this.initEventHandler();
188
- console.log('trtc:constructor pixelFormat:' + this.pixelFormat + '|sdk version:' + pkg.version +
189
+ logger_1.default.log('constructor pixelFormat:' + this.pixelFormat + '|sdk version:' + pkg.version +
189
190
  '|native sdk version:' + this.rtcCloud.getSDKVersion());
190
191
  //视频数据回调
191
192
  this.imageData = null;
@@ -280,7 +281,7 @@ class TRTCCloud extends events_1.EventEmitter {
280
281
  */
281
282
  initEventHandler() {
282
283
  this.rtcCloud.onEvent('apierror', (funcName) => {
283
- console.error(`trtc:api ${funcName} failed. this is an error
284
+ logger_1.default.error(`api ${funcName} failed. this is an error
284
285
  thrown by c++ addon layer. it often means sth is
285
286
  going wrong with this function call and it refused
286
287
  to do what is asked. kindly check your parameter types
@@ -544,6 +545,7 @@ class TRTCCloud extends events_1.EventEmitter {
544
545
  * @param {String} errMsg - 错误信息。
545
546
  */
546
547
  handleOnSwitchRole(errCode, errMsg) {
548
+ logger_1.default.warn(`onSwitchRole errCode:${errCode} errMsg:${errMsg}`);
547
549
  this.fire('onSwitchRole', errCode, errMsg);
548
550
  }
549
551
  /**
@@ -629,6 +631,7 @@ class TRTCCloud extends events_1.EventEmitter {
629
631
  * @param {Number} available - 画面是否开启
630
632
  */
631
633
  handleOnUserVideoAvailable(userId, available) {
634
+ logger_1.default.log(`onUserVideoAvailable userId:${userId} available:${available}`);
632
635
  if (available == 0) {
633
636
  const remoteUserVideoBuffers = remoteVideoBufferMap.get(userId);
634
637
  if (remoteUserVideoBuffers) {
@@ -655,6 +658,7 @@ class TRTCCloud extends events_1.EventEmitter {
655
658
  * @param {Number} available - 辅路画面是否开启
656
659
  */
657
660
  handleOnUserSubStreamAvailable(userId, available) {
661
+ logger_1.default.log(`onUserSubStreamAvailable userId:${userId} available:${available}`);
658
662
  if (available == 0) {
659
663
  if (screenVideoBufferMap.has(userId)) {
660
664
  const targetVideoBuffer = screenVideoBufferMap.get(userId);
@@ -675,6 +679,7 @@ class TRTCCloud extends events_1.EventEmitter {
675
679
  * @param {Number} available - 声音是否开启
676
680
  */
677
681
  handleOnUserAudioAvailable(userId, available) {
682
+ logger_1.default.log(`onUserAudioAvailable userId:${userId} available:${available}`);
678
683
  this.fire('onUserAudioAvailable', userId, available);
679
684
  }
680
685
  /**
@@ -692,6 +697,7 @@ class TRTCCloud extends events_1.EventEmitter {
692
697
  * @param {Number} height - 画面高度
693
698
  */
694
699
  handleOnFirstVideoFrame(userId, streamType, width, height) {
700
+ logger_1.default.log(`onFirstVideoFrame userId:${userId} streamType:${streamType} width:${width} height:${height}`);
695
701
  if (userId) {
696
702
  this._setRemoteVideoBuffer(userId, streamType);
697
703
  }
@@ -704,6 +710,7 @@ class TRTCCloud extends events_1.EventEmitter {
704
710
  * @param {String} userId - 远程用户 ID。
705
711
  */
706
712
  handleOnFirstAudioFrame(userId) {
713
+ logger_1.default.log(`onFirstAudioFrame userId:${userId}`);
707
714
  this.fire('onFirstAudioFrame', userId);
708
715
  }
709
716
  /**
@@ -716,6 +723,7 @@ class TRTCCloud extends events_1.EventEmitter {
716
723
  * @param {Number} streamType - - 视频流类型,TRTCVideoStreamTypeBig:主路画面,一般用于摄像头;TRTCVideoStreamTypeSub:辅路画面,一般用于屏幕分享。
717
724
  */
718
725
  handleOnSendFirstLocalVideoFrame(streamType) {
726
+ logger_1.default.log(`onSendFirstLocalVideoFrame streamType:${streamType}`);
719
727
  this.fire('onSendFirstLocalVideoFrame', streamType);
720
728
  }
721
729
  /**
@@ -727,6 +735,7 @@ class TRTCCloud extends events_1.EventEmitter {
727
735
  * @event TRTCCallback#onSendFirstLocalAudioFrame
728
736
  */
729
737
  handleOnSendFirstLocalAudioFrame() {
738
+ logger_1.default.log(`onSendFirstLocalAudioFrame`);
730
739
  this.fire('onSendFirstLocalAudioFrame');
731
740
  }
732
741
  /**
@@ -1249,7 +1258,7 @@ class TRTCCloud extends events_1.EventEmitter {
1249
1258
  newDuration = Number(duration);
1250
1259
  }
1251
1260
  catch (err) {
1252
- console.error('trtc:onLocalRecording duration convert error.', err);
1261
+ logger_1.default.error('onLocalRecording duration convert error.', err);
1253
1262
  newDuration = 0;
1254
1263
  }
1255
1264
  this.fire('onLocalRecording', newDuration, storagePath);
@@ -1286,7 +1295,7 @@ class TRTCCloud extends events_1.EventEmitter {
1286
1295
  this.fire('onSystemAudioLoopbackError', errCode);
1287
1296
  }
1288
1297
  handleVideoSizeChange(userId, streamType, width, height) {
1289
- console.debug('trtc:handleVideoSizeChange', userId, streamType, width, height);
1298
+ logger_1.default.debug('handleVideoSizeChange', userId, streamType, width, height);
1290
1299
  if (userId && userId !== CAMERA_DEVICE_TEST_ID) {
1291
1300
  if (streamType !== trtc_define_1.TRTCVideoStreamType.TRTCVideoStreamTypeSub) {
1292
1301
  const remoteUserVideoBuffers = remoteVideoBufferMap.get(userId);
@@ -1313,7 +1322,7 @@ class TRTCCloud extends events_1.EventEmitter {
1313
1322
  }
1314
1323
  }
1315
1324
  else {
1316
- console.warn(`trtc:handleVideoSizeChange error: ${userId} ${streamType} buffer not exist`);
1325
+ logger_1.default.warn(`handleVideoSizeChange error: ${userId} ${streamType} buffer not exist`);
1317
1326
  }
1318
1327
  }
1319
1328
  else {
@@ -1330,7 +1339,7 @@ class TRTCCloud extends events_1.EventEmitter {
1330
1339
  }
1331
1340
  }
1332
1341
  else {
1333
- console.error('trtc: remote user screen-share video buffer not exist');
1342
+ logger_1.default.error('remote user screen-share video buffer not exist');
1334
1343
  }
1335
1344
  }
1336
1345
  }
@@ -1351,7 +1360,7 @@ class TRTCCloud extends events_1.EventEmitter {
1351
1360
  }
1352
1361
  }
1353
1362
  else {
1354
- console.error('trtc: current user screen-share video buffer not exist');
1363
+ logger_1.default.error('current user screen-share video buffer not exist');
1355
1364
  }
1356
1365
  }
1357
1366
  else {
@@ -1432,7 +1441,7 @@ class TRTCCloud extends events_1.EventEmitter {
1432
1441
  this.rtcCloud.enterRoom(params.sdkAppId, params.roomId, params.strRoomId, params.userId, params.userSig, params.privateMapKey, params.businessInfo, params.role, params.userDefineRecordId, params.streamId === '' ? null : params.streamId, scene);
1433
1442
  }
1434
1443
  else {
1435
- console.error('trtc:enterRoom, params is not instanceof TRTCParams!');
1444
+ logger_1.default.error('enterRoom, params is not instanceof TRTCParams!');
1436
1445
  }
1437
1446
  }
1438
1447
  /**
@@ -1628,7 +1637,7 @@ class TRTCCloud extends events_1.EventEmitter {
1628
1637
  this.rtcCloud.startPublishCDNStream(param.appId, param.bizId, param.url, streamId);
1629
1638
  }
1630
1639
  else {
1631
- console.error('trtc:startPublishCDNStream, param is not instanceof TRTCPublishCDNParam!');
1640
+ logger_1.default.error('startPublishCDNStream, param is not instanceof TRTCPublishCDNParam!');
1632
1641
  }
1633
1642
  }
1634
1643
  /**
@@ -1736,7 +1745,7 @@ class TRTCCloud extends events_1.EventEmitter {
1736
1745
  this.rtcCloud.setMixTranscodingConfig(configMode, config.appId, config.bizId, config.videoWidth, config.videoHeight, config.videoBitrate, config.videoFramerate, config.videoGOP, config.audioSampleRate, config.audioBitrate, config.audioChannels, config.backgroundColor, config.backgroundImage, config.streamId, config.mixUsersArray);
1737
1746
  }
1738
1747
  else {
1739
- console.error('trtc:setMixTranscodingConfig, config is not instanceof TRTCTranscodingConfig!');
1748
+ logger_1.default.error('setMixTranscodingConfig, config is not instanceof TRTCTranscodingConfig!');
1740
1749
  }
1741
1750
  }
1742
1751
  /////////////////////////////////////////////////////////////////////////////////
@@ -1772,6 +1781,7 @@ class TRTCCloud extends events_1.EventEmitter {
1772
1781
  * - 如果传入 `null` 则不预览摄像头画面,但不影响摄像头采集
1773
1782
  */
1774
1783
  startLocalPreview(views) {
1784
+ logger_1.default.log(`startLocalPreview`, views);
1775
1785
  if (views !== undefined) {
1776
1786
  if (views !== null) {
1777
1787
  if (Array.isArray(views)) {
@@ -1786,13 +1796,14 @@ class TRTCCloud extends events_1.EventEmitter {
1786
1796
  }
1787
1797
  }
1788
1798
  else {
1789
- console.error('trtc:startLocalPreview parameter is undefined, it should be Array<HTMLElement>, HTMLElement or null');
1799
+ logger_1.default.error('startLocalPreview parameter is undefined, it should be Array<HTMLElement>, HTMLElement or null');
1790
1800
  }
1791
1801
  }
1792
1802
  /**
1793
1803
  * 停止本地摄像头采集和预览
1794
1804
  */
1795
1805
  stopLocalPreview() {
1806
+ logger_1.default.log(`stopLocalPreview`);
1796
1807
  const key = this.getKey(LOCAL_USER_VIDEO_ID, trtc_define_1.TRTCVideoStreamType.TRTCVideoStreamTypeBig);
1797
1808
  this._destroyRenderer(key, null);
1798
1809
  this.rtcCloud.stopLocalPreview();
@@ -1814,6 +1825,7 @@ class TRTCCloud extends events_1.EventEmitter {
1814
1825
  * @param {Array<HTMLElement>|HTMLElement|null} views - 承载预览画面单个的 HTML 块节点或者 HTML 块节点数组,传入 `null` 结束本地摄像头采集视频的预览。
1815
1826
  */
1816
1827
  updateLocalView(views) {
1828
+ logger_1.default.log(`updateLocalView`, views);
1817
1829
  const key = this.getKey(LOCAL_USER_VIDEO_ID, trtc_define_1.TRTCVideoStreamType.TRTCVideoStreamTypeBig);
1818
1830
  if (views !== undefined) {
1819
1831
  if (views !== null) {
@@ -1829,7 +1841,7 @@ class TRTCCloud extends events_1.EventEmitter {
1829
1841
  }
1830
1842
  }
1831
1843
  else {
1832
- console.error('trtc:updateLocalView parameter is undefined, it should be Array<HTMLElement>, HTMLElement or null');
1844
+ logger_1.default.error('updateLocalView parameter is undefined, it should be Array<HTMLElement>, HTMLElement or null');
1833
1845
  }
1834
1846
  }
1835
1847
  /**
@@ -1844,7 +1856,7 @@ class TRTCCloud extends events_1.EventEmitter {
1844
1856
  this.rtcCloud.setCameraCaptureParam(params.mode, params.width, params.height);
1845
1857
  }
1846
1858
  else {
1847
- console.error('setCameraCaptureParams invalid params:', params);
1859
+ logger_1.default.error('setCameraCaptureParams invalid params:', params);
1848
1860
  }
1849
1861
  }
1850
1862
  /**
@@ -1922,6 +1934,7 @@ class TRTCCloud extends events_1.EventEmitter {
1922
1934
  * @param {TRTCVideoStreamType} streamType - 视频流类型
1923
1935
  */
1924
1936
  startRemoteView(userId, views, streamType) {
1937
+ logger_1.default.log(`startRemoteView userId:${userId} streamType:${streamType}`, views);
1925
1938
  if (views !== undefined) {
1926
1939
  if (views !== null) {
1927
1940
  if (Array.isArray(views)) {
@@ -1936,7 +1949,7 @@ class TRTCCloud extends events_1.EventEmitter {
1936
1949
  }
1937
1950
  }
1938
1951
  else {
1939
- console.error('trtc:startRemoteView parameter "views" is undefined, it should be Array<HTMLElement>, HTMLElement or null');
1952
+ logger_1.default.error('startRemoteView parameter "views" is undefined, it should be Array<HTMLElement>, HTMLElement or null');
1940
1953
  }
1941
1954
  }
1942
1955
  /**
@@ -1948,6 +1961,7 @@ class TRTCCloud extends events_1.EventEmitter {
1948
1961
  * @param {TRTCVideoStreamType} streamType - 视频流类型
1949
1962
  */
1950
1963
  stopRemoteView(userId, streamType) {
1964
+ logger_1.default.log(`stopRemoteView userId:${userId} streamType:${streamType}`);
1951
1965
  if (streamType === undefined) {
1952
1966
  streamType = this.priorRemoteVideoStreamType;
1953
1967
  }
@@ -1991,6 +2005,7 @@ class TRTCCloud extends events_1.EventEmitter {
1991
2005
  *
1992
2006
  */
1993
2007
  updateRemoteView(userId, views, streamType) {
2008
+ logger_1.default.log(`updateRemoteView userId:${userId} streamType:${streamType}`, views);
1994
2009
  const rendererStreamType = this._calcRemoteVideoRendererStreamType(streamType);
1995
2010
  const key = this.getKey(userId, rendererStreamType);
1996
2011
  if (views !== undefined) {
@@ -2007,7 +2022,7 @@ class TRTCCloud extends events_1.EventEmitter {
2007
2022
  }
2008
2023
  }
2009
2024
  else {
2010
- console.error('trtc:updateRemoteView parameter "views" is undefined, it should be Array<HTMLElement>, HTMLElement or null');
2025
+ logger_1.default.error('updateRemoteView parameter "views" is undefined, it should be Array<HTMLElement>, HTMLElement or null');
2011
2026
  }
2012
2027
  }
2013
2028
  /**
@@ -2088,7 +2103,7 @@ class TRTCCloud extends events_1.EventEmitter {
2088
2103
  this.rtcCloud.setVideoEncoderParam(params.videoResolution, params.resMode, params.videoFps, params.videoBitrate, params.minVideoBitrate, params.enableAdjustRes);
2089
2104
  }
2090
2105
  else {
2091
- console.error('trtc:setVideoEncoderParam, params is not instanceof TRTCVideoEncParam!');
2106
+ logger_1.default.error('setVideoEncoderParam, params is not instanceof TRTCVideoEncParam!');
2092
2107
  }
2093
2108
  }
2094
2109
  /**
@@ -2109,7 +2124,7 @@ class TRTCCloud extends events_1.EventEmitter {
2109
2124
  this.rtcCloud.setNetworkQosParam(params.preference, params.controlMode);
2110
2125
  }
2111
2126
  else {
2112
- console.error('trtc:setNetworkQosParam, params is not instanceof TRTCNetworkQosParam!');
2127
+ logger_1.default.error('setNetworkQosParam, params is not instanceof TRTCNetworkQosParam!');
2113
2128
  }
2114
2129
  }
2115
2130
  /**
@@ -2288,7 +2303,7 @@ class TRTCCloud extends events_1.EventEmitter {
2288
2303
  this.rtcCloud.enableSmallVideoStream(enable, params.videoResolution, params.resMode, params.videoFps, params.videoBitrate, params.minVideoBitrate, params.enableAdjustRes);
2289
2304
  }
2290
2305
  else {
2291
- console.error('trtc:enableSmallVideoStream, params is not instanceof TRTCVideoEncParam!');
2306
+ logger_1.default.error('enableSmallVideoStream, params is not instanceof TRTCVideoEncParam!');
2292
2307
  }
2293
2308
  }
2294
2309
  /**
@@ -2516,32 +2531,34 @@ class TRTCCloud extends events_1.EventEmitter {
2516
2531
  /**
2517
2532
  * 开始录音
2518
2533
  *
2519
- * 该方法调用后, SDK 会将通话过程中的所有音频(包括本地音频,远端音频,BGM等)录制到一个文件里。
2520
- * 无论是否进房,调用该接口都生效。
2521
- * 如果调用 exitRoom 时还在录音,录音会自动停止。
2522
- *
2523
- * 注意:录音文件路径需精确到文件名及格式后缀,格式后缀决定录制文件的格式。
2524
- * 例如:指定路径为 path/to/audio.aac,则会生成一个 AAC 格式的文件。目前支持的格式有 PCM, WAV, AAC
2534
+ * 当您调用该接口后, SDK 会将本地和远端的所有音频(包括本地音频,远端音频,背景音乐和音效等)混合并录制到一个本地文件中。
2535
+ * 该接口在进入房间前后调用均可生效,如果录制任务在退出房间前尚未通过 stopAudioRecording 停止,则退出房间后录制任务会自动被停止。
2525
2536
  *
2526
2537
  * @param {TRTCAudioRecordingParams} params - 录音参数。
2527
- * @param {String} params.filePath - 文件路径(必填),录音文件的保存路径。该路径需要用户自行指定,请确保路径存在且可写
2528
- * @param {TRTCAudioRecordingContent} params.recordingContent - 音频录制内容类型
2529
- * @return {Number} 0:成功;-1:录音已开始;-2:文件或目录创建失败;-3:后缀指定的音频格式不支持
2538
+ * @param {String} params.filePath - 录音文件的保存路径(必填)。
2539
+ * - 该路径需精确到文件名及格式后缀,格式后缀用于决定录音文件的格式,目前支持的格式有 PCM、WAV 和 AAC。例如:假如您指定路径为 "mypath/record/audio.aac",代表您希望 SDK 生成一个 AAC 格式的音频录制文件。
2540
+ * - 请您指定一个有读写权限的合法路径,否则录音文件无法生成。
2541
+ * @param {TRTCAudioRecordingContent} params.recordingContent - 音频录制内容类型。
2542
+ * @param {Number} params.maxDurationPerFile - 录制文件分片时长,单位毫秒,最小值10000。默认值为0,表示不分片。
2543
+ * @return {Number} 0:成功;-1:录音已开始;-2:文件或目录创建失败;-3:后缀指定的音频格式不支持;-4:参数错误。
2530
2544
  *
2531
2545
  * 注意:
2532
2546
  * - 在 9.3 之前的版本,params 为 string 代表 录音文件路径(必填), 9.3 以及以后同时支持 string 类型和 TRTCAudioRecordingParams。
2533
2547
  */
2534
2548
  startAudioRecording(params) {
2535
- if (params instanceof trtc_define_1.TRTCAudioRecordingParams) {
2536
- return this.rtcCloud.startAudioRecording(params.filePath, params.recordingContent);
2549
+ var _a;
2550
+ if (params instanceof trtc_define_1.TRTCAudioRecordingParams && ((_a = params.filePath) === null || _a === void 0 ? void 0 : _a.length)) {
2551
+ return this.rtcCloud.startAudioRecording(params.filePath, params.recordingContent, params.maxDurationPerFile);
2537
2552
  }
2538
- if (typeof params === 'string') {
2553
+ else if (typeof params === 'string' && params.length) {
2539
2554
  const path = params;
2540
2555
  const recordParams = new trtc_define_1.TRTCAudioRecordingParams(path);
2541
- return this.rtcCloud.startAudioRecording(recordParams.filePath, recordParams.recordingContent);
2556
+ return this.rtcCloud.startAudioRecording(recordParams.filePath, recordParams.recordingContent, recordParams.maxDurationPerFile);
2557
+ }
2558
+ else {
2559
+ logger_1.default.error('startAudioRecording, params is not valid');
2560
+ return -4;
2542
2561
  }
2543
- console.error('trtc:startAudioRecording, params is not instanceof TRTCAudioRecordingParams!');
2544
- return -1;
2545
2562
  }
2546
2563
  /**
2547
2564
  * 停止录音
@@ -2605,7 +2622,7 @@ class TRTCCloud extends events_1.EventEmitter {
2605
2622
  }
2606
2623
  }
2607
2624
  catch (e) {
2608
- console.warn('trtc:camera device properties parse error.', JSON.stringify(item));
2625
+ logger_1.default.warn('camera device properties parse error.', JSON.stringify(item));
2609
2626
  item.deviceProperties = {};
2610
2627
  }
2611
2628
  });
@@ -3004,7 +3021,7 @@ class TRTCCloud extends events_1.EventEmitter {
3004
3021
  return this.rtcCloud.selectScreenCaptureTarget(selSource.type, selSource.sourceId, selSource.sourceName, selSource.isMinimizeWindow, deprecatedCaptureRect.left, deprecatedCaptureRect.top, deprecatedCaptureRect.right, deprecatedCaptureRect.bottom, selProperty.enableCaptureMouse, selProperty.enableHighLight, selProperty.enableHighPerformance, selProperty.highLightColor, selProperty.highLightWidth, selProperty.enableCaptureChildWindow);
3005
3022
  }
3006
3023
  else {
3007
- console.error('trtc:selectScreenCaptureTarget, sourceId or sourcename is undefined!');
3024
+ logger_1.default.error('selectScreenCaptureTarget, sourceId or sourcename is undefined!');
3008
3025
  }
3009
3026
  }
3010
3027
  /**
@@ -3070,7 +3087,7 @@ class TRTCCloud extends events_1.EventEmitter {
3070
3087
  type = trtc_define_1.TRTCVideoStreamType.TRTCVideoStreamTypeSub;
3071
3088
  }
3072
3089
  if (params && !(params instanceof trtc_define_1.TRTCVideoEncParam)) {
3073
- console.error('trtc:startScreenCapture, params is not instanceof TRTCVideoEncParam!');
3090
+ logger_1.default.error('startScreenCapture, params is not instanceof TRTCVideoEncParam!');
3074
3091
  return;
3075
3092
  }
3076
3093
  const currentUserId = '';
@@ -3139,7 +3156,7 @@ class TRTCCloud extends events_1.EventEmitter {
3139
3156
  this.rtcCloud.setSubStreamEncoderParam(params.videoResolution, params.resMode, params.videoFps, params.videoBitrate, params.minVideoBitrate, params.enableAdjustRes);
3140
3157
  }
3141
3158
  else {
3142
- console.error('trtc:setSubStreamEncoderParam, params is not instanceof TRTCVideoEncParam!');
3159
+ logger_1.default.error('setSubStreamEncoderParam, params is not instanceof TRTCVideoEncParam!');
3143
3160
  }
3144
3161
  }
3145
3162
  /**
@@ -3163,7 +3180,7 @@ class TRTCCloud extends events_1.EventEmitter {
3163
3180
  */
3164
3181
  addExcludedShareWindow(win) {
3165
3182
  if (isNaN(+win)) {
3166
- console.error('trtc:addExcludedShareWindow, win: ' + win + 'is not invalid!');
3183
+ logger_1.default.error('addExcludedShareWindow, win: ' + win + 'is not invalid!');
3167
3184
  return;
3168
3185
  }
3169
3186
  this.rtcCloud.addExcludedShareWindow(win);
@@ -3176,7 +3193,7 @@ class TRTCCloud extends events_1.EventEmitter {
3176
3193
  */
3177
3194
  removeExcludedShareWindow(win) {
3178
3195
  if (isNaN(+win)) {
3179
- console.error('trtc:removeExcludedShareWindow, win: ' + win + 'is not invalid!');
3196
+ logger_1.default.error('removeExcludedShareWindow, win: ' + win + 'is not invalid!');
3180
3197
  return;
3181
3198
  }
3182
3199
  this.rtcCloud.removeExcludedShareWindow(win);
@@ -3199,7 +3216,7 @@ class TRTCCloud extends events_1.EventEmitter {
3199
3216
  */
3200
3217
  addIncludedShareWindow(win) {
3201
3218
  if (isNaN(+win)) {
3202
- console.error('trtc:addIncludedShareWindow, win: ' + win + 'is not invalid!');
3219
+ logger_1.default.error(':addIncludedShareWindow, win: ' + win + 'is not invalid!');
3203
3220
  return;
3204
3221
  }
3205
3222
  this.rtcCloud.addIncludedShareWindow(win);
@@ -3212,7 +3229,7 @@ class TRTCCloud extends events_1.EventEmitter {
3212
3229
  */
3213
3230
  removeIncludedShareWindow(win) {
3214
3231
  if (isNaN(+win)) {
3215
- console.error('trtc:removeIncludedShareWindow, win: ' + win + 'is not invalid!');
3232
+ logger_1.default.error('removeIncludedShareWindow, win: ' + win + 'is not invalid!');
3216
3233
  return;
3217
3234
  }
3218
3235
  this.rtcCloud.removeIncludedShareWindow(win);
@@ -3350,7 +3367,7 @@ class TRTCCloud extends events_1.EventEmitter {
3350
3367
  return 0;
3351
3368
  }
3352
3369
  else {
3353
- console.error('trtc:setLocalVideoRenderCallback, param is error!');
3370
+ logger_1.default.error('setLocalVideoRenderCallback, param is error!');
3354
3371
  return -1;
3355
3372
  }
3356
3373
  }
@@ -3383,7 +3400,7 @@ class TRTCCloud extends events_1.EventEmitter {
3383
3400
  return 0;
3384
3401
  }
3385
3402
  else {
3386
- console.error('trtc:setRemoteVideoRenderCallback, userId is error!');
3403
+ logger_1.default.error('setRemoteVideoRenderCallback, userId is error!');
3387
3404
  return -1;
3388
3405
  }
3389
3406
  }
@@ -3830,7 +3847,7 @@ class TRTCCloud extends events_1.EventEmitter {
3830
3847
  const speedTestParams = new trtc_define_1.TRTCSpeedTestParams(sdkAppId, userId, userSig);
3831
3848
  return this.rtcCloud.startSpeedTest(speedTestParams.sdkAppId, speedTestParams.userId, speedTestParams.userSig, speedTestParams.expectedUpBandwidth, speedTestParams.expectedDownBandwidth);
3832
3849
  }
3833
- console.error('startSpeedTest, param is error');
3850
+ logger_1.default.error('startSpeedTest, param is error');
3834
3851
  return -1;
3835
3852
  }
3836
3853
  /**
@@ -3878,7 +3895,7 @@ class TRTCCloud extends events_1.EventEmitter {
3878
3895
  this._onRenderFrame(id, type, width, height, timestamp, rotation, cameraTestVideoBuffer.buffer);
3879
3896
  }
3880
3897
  else {
3881
- console.log('trtc:camera video buffer reallocated');
3898
+ logger_1.default.log('camera video buffer reallocated');
3882
3899
  }
3883
3900
  }
3884
3901
  else {
@@ -3888,7 +3905,7 @@ class TRTCCloud extends events_1.EventEmitter {
3888
3905
  });
3889
3906
  }
3890
3907
  else {
3891
- console.error('trtc:startCameraDeviceTest, view is undefined!');
3908
+ logger_1.default.error('startCameraDeviceTest, view is undefined!');
3892
3909
  }
3893
3910
  }
3894
3911
  /**
@@ -3967,6 +3984,7 @@ class TRTCCloud extends events_1.EventEmitter {
3967
3984
  * - TRTCLogLevelFatal : 只输出 FATAL 级别的 Log
3968
3985
  */
3969
3986
  setLogLevel(level) {
3987
+ logger_1.default.setLogLevel(level);
3970
3988
  this.rtcCloud.setLogLevel(level);
3971
3989
  }
3972
3990
  /**
@@ -4042,7 +4060,7 @@ class TRTCCloud extends events_1.EventEmitter {
4042
4060
  this._onRenderFrame(id, type, width, height, timestamp, rotation, localVideoBuffer.buffer);
4043
4061
  }
4044
4062
  else {
4045
- console.log(`trtc: ${id} ${type} video buffer reallocated`);
4063
+ logger_1.default.log(`${id} ${type} video buffer reallocated`);
4046
4064
  }
4047
4065
  }
4048
4066
  else {
@@ -4071,7 +4089,7 @@ class TRTCCloud extends events_1.EventEmitter {
4071
4089
  this._onRenderFrame(id, type, width, height, timestamp, rotation, (_b = screenVideoBufferMap.get(id)) === null || _b === void 0 ? void 0 : _b.buffer);
4072
4090
  }
4073
4091
  else {
4074
- console.log(`trtc: ${id} ${type} video buffer reallocated`);
4092
+ logger_1.default.log(`${id} ${type} video buffer reallocated`);
4075
4093
  }
4076
4094
  }
4077
4095
  else {
@@ -4093,7 +4111,7 @@ class TRTCCloud extends events_1.EventEmitter {
4093
4111
  * - 2 yuvcanvs
4094
4112
  */
4095
4113
  setRenderMode(mode = 1) {
4096
- console.warn('trtc:setRenderMode() interface is deprecated and do not need any more');
4114
+ logger_1.default.warn('setRenderMode() interface is deprecated and do not need any more');
4097
4115
  }
4098
4116
  //----------------------------------//
4099
4117
  // plugin API -- start
@@ -4197,7 +4215,7 @@ class TRTCCloud extends events_1.EventEmitter {
4197
4215
  return String(uid) + '_' + String(type);
4198
4216
  }
4199
4217
  setEnableRenderFrame(enable) {
4200
- console.debug('trtc:setEnableRenderFrame:' + enable);
4218
+ logger_1.default.debug('setEnableRenderFrame:' + enable);
4201
4219
  this.enableRenderFrame = enable;
4202
4220
  }
4203
4221
  _getRendererMap(uid, streamType) {
@@ -4306,12 +4324,12 @@ class TRTCCloud extends events_1.EventEmitter {
4306
4324
  rendererMap.forEach((renderer, node, map) => {
4307
4325
  if (node === view && existingKey !== key) {
4308
4326
  try {
4309
- console.warn(`trtc: existing video renderer for ${existingKey}, destroy and create for ${key}.`, view);
4327
+ logger_1.default.warn(`existing video renderer for ${existingKey}, destroy and create for ${key}.`, view);
4310
4328
  renderer.destroy();
4311
4329
  map.delete(node);
4312
4330
  }
4313
4331
  catch (err) {
4314
- console.error("trtc: _checkAndDeleteExistingRenderer destroy render error:", err);
4332
+ logger_1.default.error("_checkAndDeleteExistingRenderer destroy render error:", err);
4315
4333
  }
4316
4334
  }
4317
4335
  });
@@ -4320,7 +4338,7 @@ class TRTCCloud extends events_1.EventEmitter {
4320
4338
  _createVideoRenderer(view, key, options) {
4321
4339
  // 事先清空一下,避免画面叠加
4322
4340
  if (view.childElementCount > 0) {
4323
- console.warn("trtc: clear HTML element content:", view);
4341
+ logger_1.default.warn("clear HTML element content:", view);
4324
4342
  }
4325
4343
  this._checkAndDeleteExistingRenderer(view, key);
4326
4344
  view.innerHTML = '';
@@ -4348,7 +4366,7 @@ class TRTCCloud extends events_1.EventEmitter {
4348
4366
  const validViews = views.filter(view => {
4349
4367
  const isValid = view && view instanceof HTMLElement;
4350
4368
  if (!isValid) {
4351
- console.warn("trtc: create renderer failed due to invalid HTMLElement", view);
4369
+ logger_1.default.warn("create renderer failed due to invalid HTMLElement", view);
4352
4370
  }
4353
4371
  return isValid;
4354
4372
  });
@@ -4361,7 +4379,7 @@ class TRTCCloud extends events_1.EventEmitter {
4361
4379
  map.delete(innerKey);
4362
4380
  }
4363
4381
  catch (err) {
4364
- console.error("trtc:_initRenderer destroy render error:", err);
4382
+ logger_1.default.error("_initRenderer destroy render error:", err);
4365
4383
  }
4366
4384
  }
4367
4385
  });
@@ -4423,7 +4441,7 @@ class TRTCCloud extends events_1.EventEmitter {
4423
4441
  throw err;
4424
4442
  }
4425
4443
  else {
4426
- console.warn('trtc:write file ok, path:' + path);
4444
+ logger_1.default.warn('write file ok, path:' + path);
4427
4445
  }
4428
4446
  });
4429
4447
  }
@@ -4460,7 +4478,7 @@ class TRTCCloud extends events_1.EventEmitter {
4460
4478
  callback(userid, streamType, videoframe);
4461
4479
  break;
4462
4480
  default:
4463
- console.error(`trtc:custom render format: '${format}' not supported. Current data format: '${this.pixelFormat}'`);
4481
+ logger_1.default.error(`custom render format: '${format}' not supported. Current data format: '${this.pixelFormat}'`);
4464
4482
  }
4465
4483
  }
4466
4484
  else if (this.pixelFormat === trtc_define_1.TRTCVideoPixelFormat.TRTCVideoPixelFormat_BGRA32 && format === trtc_define_1.TRTCVideoPixelFormat.TRTCVideoPixelFormat_RGBA32) {
@@ -4469,7 +4487,7 @@ class TRTCCloud extends events_1.EventEmitter {
4469
4487
  callback(userid, streamType, videoframe);
4470
4488
  }
4471
4489
  else {
4472
- console.error(`trtc:custom render format: '${format}' not supported. Current data format: '${this.pixelFormat}'`);
4490
+ logger_1.default.error(`custom render format: '${format}' not supported. Current data format: '${this.pixelFormat}'`);
4473
4491
  }
4474
4492
  }
4475
4493
  }
@@ -648,17 +648,19 @@ export declare class TRTCPublishCDNParam {
648
648
  /**
649
649
  * 录音参数
650
650
  *
651
- * 请正确填写参数,确保录音文件顺利生成。
652
- *
653
- * @param {String} filePath - 【字段含义】文件路径(必填),录音文件的保存路径。该路径需要用户自行指定,请确保路径存在且可写。<br>
654
- * 【特别说明】该路径需精确到文件名及格式后缀,格式后缀决定录制文件的格式,例如:指定路径为 path/to/audio.aac,则会生成一个 AAC 格式的文件。目前支持的格式有 PCM, WAV, AAC
651
+ * @param {String} filePath - 【字段含义】录音文件的保存路径(必填)。<br/>
652
+ *【特别说明】该路径需精确到文件名及格式后缀,格式后缀用于决定录音文件的格式,目前支持的格式有 PCM、WAV 和 AAC。<br/>
653
+ * 例如:假如您指定路径为 "mypath/record/audio.aac",代表您希望 SDK 生成一个 AAC 格式的音频录制文件。<br/>
654
+ * 请您指定一个有读写权限的合法路径,否则录音文件无法生成。<br/>
655
655
  * @param {TRTCAudioRecordingContent} recordingContent - 【字段含义】音频录制内容类型。
656
656
  * 【特别说明】默认录制所有本地和远端音频。
657
+ * @param {Number} maxDurationPerFile - 【字段含义】maxDurationPerFile 录制文件分片时长,单位毫秒,最小值10000。默认值为0,表示不分片。
657
658
  */
658
659
  export declare class TRTCAudioRecordingParams {
659
660
  filePath: null | string;
660
661
  recordingContent: TRTCAudioRecordingContent;
661
- constructor(filePath?: null | string, recordingContent?: TRTCAudioRecordingContent);
662
+ maxDurationPerFile: number;
663
+ constructor(filePath?: null | string, recordingContent?: TRTCAudioRecordingContent, maxDurationPerFile?: number);
662
664
  }
663
665
  /**
664
666
  * 音效
@@ -1296,17 +1296,19 @@ exports.TRTCPublishCDNParam = TRTCPublishCDNParam;
1296
1296
  /**
1297
1297
  * 录音参数
1298
1298
  *
1299
- * 请正确填写参数,确保录音文件顺利生成。
1300
- *
1301
- * @param {String} filePath - 【字段含义】文件路径(必填),录音文件的保存路径。该路径需要用户自行指定,请确保路径存在且可写。<br>
1302
- * 【特别说明】该路径需精确到文件名及格式后缀,格式后缀决定录制文件的格式,例如:指定路径为 path/to/audio.aac,则会生成一个 AAC 格式的文件。目前支持的格式有 PCM, WAV, AAC
1299
+ * @param {String} filePath - 【字段含义】录音文件的保存路径(必填)。<br/>
1300
+ *【特别说明】该路径需精确到文件名及格式后缀,格式后缀用于决定录音文件的格式,目前支持的格式有 PCM、WAV 和 AAC。<br/>
1301
+ * 例如:假如您指定路径为 "mypath/record/audio.aac",代表您希望 SDK 生成一个 AAC 格式的音频录制文件。<br/>
1302
+ * 请您指定一个有读写权限的合法路径,否则录音文件无法生成。<br/>
1303
1303
  * @param {TRTCAudioRecordingContent} recordingContent - 【字段含义】音频录制内容类型。
1304
1304
  * 【特别说明】默认录制所有本地和远端音频。
1305
+ * @param {Number} maxDurationPerFile - 【字段含义】maxDurationPerFile 录制文件分片时长,单位毫秒,最小值10000。默认值为0,表示不分片。
1305
1306
  */
1306
1307
  class TRTCAudioRecordingParams {
1307
- constructor(filePath = null, recordingContent = TRTCAudioRecordingContent.TRTCAudioRecordingContentAll) {
1308
+ constructor(filePath = null, recordingContent = TRTCAudioRecordingContent.TRTCAudioRecordingContentAll, maxDurationPerFile = 0) {
1308
1309
  this.filePath = filePath;
1309
1310
  this.recordingContent = recordingContent;
1311
+ this.maxDurationPerFile = maxDurationPerFile;
1310
1312
  }
1311
1313
  }
1312
1314
  exports.TRTCAudioRecordingParams = TRTCAudioRecordingParams;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "trtc-electron-sdk",
3
- "version": "11.4.502-beta.2",
3
+ "version": "11.4.502",
4
4
  "description": "trtc electron sdk",
5
5
  "main": "./liteav/trtc.js",
6
6
  "types": "./liteav/trtc.d.ts",