trtc-electron-sdk 12.3.705-beta.2 → 12.4.705-alpha.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.
- package/liteav/LocalMediaTranscoder/index.d.ts +23 -131
- package/liteav/LocalMediaTranscoder/index.js +110 -132
- package/liteav/LocalMediaTranscoder/types.d.ts +159 -0
- package/liteav/LocalMediaTranscoder/types.js +134 -0
- package/liteav/MediaMixingDesigner/Resizable.js +6 -6
- package/liteav/VideoRenderControl/VideoRenderFPSMonitor.d.ts +2 -1
- package/liteav/VideoRenderControl/VideoRenderFPSMonitor.js +25 -12
- package/liteav/extensions/MediaMixingManager/index.d.ts +62 -31
- package/liteav/extensions/MediaMixingManager/index.js +126 -23
- package/liteav/extensions/MediaMixingManager/types.d.ts +67 -0
- package/liteav/extensions/MediaMixingManager/types.js +21 -0
- package/liteav/trtc.d.ts +45 -8
- package/liteav/trtc.js +106 -60
- package/liteav/trtc_define.d.ts +2 -2
- package/liteav/trtc_define.js +1 -1
- package/package.json +2 -2
- package/scripts/download.js +153 -169
|
@@ -1,135 +1,8 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import { EventEmitter } from 'events';
|
|
3
|
-
import { TRTCVideoStreamType, TRTCScreenCaptureSourceInfo, Rect,
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
Error = -1,
|
|
7
|
-
InvalidParams = -2,
|
|
8
|
-
NotFoundSource = -3,
|
|
9
|
-
ImageSourceLoadFailed = -4
|
|
10
|
-
}
|
|
11
|
-
/**
|
|
12
|
-
* @namespace TRTCLocalMediaTranscodingEvent
|
|
13
|
-
* @description 目前只支持 Windows
|
|
14
|
-
*/
|
|
15
|
-
export declare enum TRTCLocalMediaTranscodingEvents {
|
|
16
|
-
/**
|
|
17
|
-
* @description 本地混流转码开启的事件
|
|
18
|
-
*
|
|
19
|
-
* 当您调用 [startTranscoding]{@link TRTCLocalMediaTranscoder#startTranscoding} 时启动本地混流转码时,是否启动成功会通过此回调同步给您。
|
|
20
|
-
*
|
|
21
|
-
* @event TRTCLocalMediaTranscodingEvent#onTranscodingStarted
|
|
22
|
-
* @param {TRTCLocalMediaTranscodingError} errCode - 错误码。
|
|
23
|
-
* @param {String} errMsg - 错误信息。
|
|
24
|
-
*/
|
|
25
|
-
onTranscodingStarted = "onTranscodingStarted",
|
|
26
|
-
/**
|
|
27
|
-
* @description 本地混流转码停止的事件
|
|
28
|
-
*
|
|
29
|
-
* 当您通过 [stopTranscoding]{@link TRTCLocalMediaTranscoder#stopTranscoding} 停止本地混流转码时,SDK 便会抛出此事件。
|
|
30
|
-
*
|
|
31
|
-
* @event TRTCLocalMediaTranscodingEvent#onTranscodingStopped
|
|
32
|
-
* @param {Number} reason - 停止原因,0:用户主动停止;1:被动停止,有可能采集源失效了
|
|
33
|
-
* @param {String} errMsg - 停止原因描述信息。
|
|
34
|
-
*/
|
|
35
|
-
onTranscodingStopped = "onTranscodingStopped",
|
|
36
|
-
/**
|
|
37
|
-
* @description 本地摄像头开启的事件
|
|
38
|
-
* 当您调用 [startCameraSource]{@link TRTCLocalMediaTranscoder#startCameraSource} 打开摄像头时,是否启动成功会通过此回调同步给您。
|
|
39
|
-
*
|
|
40
|
-
* @event TRTCLocalMediaTranscodingEvent#onCameraSourceStarted
|
|
41
|
-
* @param {String} deviceId - 摄像头设备 Id 。
|
|
42
|
-
* @param {TRTCLocalMediaTranscodingError} errCode - 错误码。
|
|
43
|
-
* @param {String} errMsg - 错误信息。
|
|
44
|
-
*/
|
|
45
|
-
onCameraSourceStarted = "onCameraSourceStarted",
|
|
46
|
-
/**
|
|
47
|
-
* @description 本地摄像头停止的事件
|
|
48
|
-
*
|
|
49
|
-
* @event TRTCLocalMediaTranscodingEvent#onCameraSourceStopped
|
|
50
|
-
* @param {String} deviceId - 摄像头设备 Id 。
|
|
51
|
-
* @param {String} reasonMsg - 停止原因描述信息。
|
|
52
|
-
*/
|
|
53
|
-
onCameraSourceStopped = "onCameraSourceStopped",
|
|
54
|
-
/**
|
|
55
|
-
* @description 图片混流开启的事件
|
|
56
|
-
* 当您调用 [addImageSource]{@link TRTCLocalMediaTranscoder#addImageSource} 打开摄像头时,是否启动成功会通过此回调同步给您。
|
|
57
|
-
*
|
|
58
|
-
* @event TRTCLocalMediaTranscodingEvent#onImageSourceStarted
|
|
59
|
-
* @param {String} imagePath - 图片路径 。
|
|
60
|
-
* @param {TRTCLocalMediaTranscodingError} errCode - 错误码。
|
|
61
|
-
* @param {String} errMsg - 错误信息。
|
|
62
|
-
*/
|
|
63
|
-
onImageSourceStarted = "onImageSourceStarted",
|
|
64
|
-
/**
|
|
65
|
-
* @description 图片混流停止的事件
|
|
66
|
-
* @event TRTCLocalMediaTranscodingEvent#onImageSourceStopped
|
|
67
|
-
* @param {String} imagePath - 图片路径 。
|
|
68
|
-
*/
|
|
69
|
-
onImageSourceStopped = "onImageSourceStopped",
|
|
70
|
-
/**
|
|
71
|
-
* @description 屏幕分享开启的事件
|
|
72
|
-
* * 当您通过 [startScreenSource]{@link TRTCLocalMediaTranscoder#startScreenSource} 等相关接口启动屏幕分享时,SDK 便会抛出此事件回调。
|
|
73
|
-
*
|
|
74
|
-
* @event TRTCLocalMediaTranscodingEvent#onScreenSourceStarted
|
|
75
|
-
* @param {String} sourceId - 屏幕或者窗口 Id 。
|
|
76
|
-
* @param {TRTCLocalMediaTranscodingError} errCode - 错误码。
|
|
77
|
-
* @param {String} errMsg - 错误信息。
|
|
78
|
-
*/
|
|
79
|
-
onScreenSourceStarted = "onScreenSourceStarted",
|
|
80
|
-
/**
|
|
81
|
-
* @description 屏幕分享暂停的事件
|
|
82
|
-
* @event TRTCLocalMediaTranscodingEvent#onScreenSourcePaused
|
|
83
|
-
* @param {String} sourceId - 屏幕或者窗口 Id 。
|
|
84
|
-
* @param {int} reason - 原因:
|
|
85
|
-
* - 1:注意此字段的含义在 MAC 和 Windows
|
|
86
|
-
* 平台有稍微差异。屏幕窗口不可见暂停(Mac)。表示设置屏幕分享参数导致的暂停(Windows)。
|
|
87
|
-
* - 2:表示屏幕分享窗口被最小化导致的暂停(仅 Windows)。
|
|
88
|
-
* - 3:表示屏幕分享窗口被隐藏导致的暂停(仅 Windows)。
|
|
89
|
-
*/
|
|
90
|
-
onScreenSourcePaused = "onScreenSourcePaused",
|
|
91
|
-
/**
|
|
92
|
-
* @description 屏幕分享恢复的事件
|
|
93
|
-
* @event TRTCLocalMediaTranscodingEvent#onScreenSourceResumed
|
|
94
|
-
* @param {String} sourceId - 屏幕或者窗口 Id 。
|
|
95
|
-
* @param {int} reason - 原因:
|
|
96
|
-
* - 1:注意此字段的含义在 MAC 和 Windows
|
|
97
|
-
* 平台有稍微差异。屏幕窗口恢复可见从而恢复分享(Mac)。屏幕分享参数设置完毕后自动恢复(Windows)。
|
|
98
|
-
* - 2:表示屏幕分享窗口从最小化被恢复(仅 Windows)。
|
|
99
|
-
* - 3:表示屏幕分享窗口从隐藏被恢复(仅 Windows)。
|
|
100
|
-
*/
|
|
101
|
-
onScreenSourceResumed = "onScreenSourceResumed",
|
|
102
|
-
/**
|
|
103
|
-
* @description 屏幕分享停止的事件
|
|
104
|
-
* 当您通过 [stopScreenSource]{@link TRTCLocalMediaTranscoder#stopScreenSource} 停止屏幕分享时,SDK 便会抛出此事件回调。
|
|
105
|
-
*
|
|
106
|
-
* @event TRTCLocalMediaTranscodingEvent#onScreenSourceStopped
|
|
107
|
-
* @param {String} sourceId - 屏幕或者窗口 Id 。
|
|
108
|
-
* @param {int} reason - 原因:0:用户主动停止;1:屏幕窗口关闭导致停止;2:表示屏幕分享的显示屏状态变更(如接口被拔出、投影模式变更等)。
|
|
109
|
-
*/
|
|
110
|
-
onScreenSourceStopped = "onScreenSourceStopped"
|
|
111
|
-
}
|
|
112
|
-
export declare enum TRTCLocalMediaTranscodingSourceType {
|
|
113
|
-
MediaSourceCamera = 0,
|
|
114
|
-
MediaSourceScreen = 1,
|
|
115
|
-
MediaSourceImage = 2,
|
|
116
|
-
MediaSourceRemoteVideo = 3
|
|
117
|
-
}
|
|
118
|
-
export declare type TRTCLocalMediaTranscodingSource = {
|
|
119
|
-
sourceType: TRTCLocalMediaTranscodingSourceType;
|
|
120
|
-
cameraDeviceId?: string;
|
|
121
|
-
screenSourceId?: string;
|
|
122
|
-
imagePath?: string;
|
|
123
|
-
userId?: string;
|
|
124
|
-
rect: Rect;
|
|
125
|
-
zOrder: number;
|
|
126
|
-
renderParams: TRTCRenderParams;
|
|
127
|
-
};
|
|
128
|
-
export declare type TRTCLocalMediaTranscodingParams = {
|
|
129
|
-
inputSourceList: TRTCLocalMediaTranscodingSource[];
|
|
130
|
-
videoEncoderParams: TRTCVideoEncParam;
|
|
131
|
-
canvasColor: number;
|
|
132
|
-
};
|
|
3
|
+
import { TRTCVideoStreamType, TRTCScreenCaptureSourceInfo, Rect, TRTCVideoPixelFormat, TRTCCameraCaptureParams, TRTCScreenCaptureProperty } from '../trtc_define';
|
|
4
|
+
import { TRTCLocalMediaTranscodingParams, ITRTCLocalMediaTranscoder } from './types';
|
|
5
|
+
export { TRTCLocalMediaTranscodingError, TRTCLocalMediaTranscodingSourceType, TRTCLocalMediaTranscodingSource, TRTCLocalMediaTranscodingParams } from './types';
|
|
133
6
|
/**
|
|
134
7
|
* @description 本地媒体流混流转码(目前只支持 Windows)
|
|
135
8
|
*
|
|
@@ -312,11 +185,15 @@ export declare type TRTCLocalMediaTranscodingParams = {
|
|
|
312
185
|
* const view = document.getElementById("preview-view");
|
|
313
186
|
* localMediaTranscoder.setMixedVideoRenderView(view as HTMLElement);
|
|
314
187
|
*/
|
|
315
|
-
declare class TRTCLocalMediaTranscoder extends EventEmitter {
|
|
188
|
+
declare class TRTCLocalMediaTranscoder extends EventEmitter implements ITRTCLocalMediaTranscoder {
|
|
189
|
+
private logPrefix;
|
|
316
190
|
private nativeLocalMediaTranscoder;
|
|
317
191
|
private renderer;
|
|
318
192
|
private container;
|
|
319
193
|
private pixelFormat;
|
|
194
|
+
private pixelLength;
|
|
195
|
+
private streamType;
|
|
196
|
+
private videoRenderBuffer;
|
|
320
197
|
constructor(nativeLocalMediaTranscoder: any, pixelFormat?: TRTCVideoPixelFormat);
|
|
321
198
|
destroy(): void;
|
|
322
199
|
private validateTranscodingConfig;
|
|
@@ -369,6 +246,14 @@ declare class TRTCLocalMediaTranscoder extends EventEmitter {
|
|
|
369
246
|
* @fires [onCameraSourceStopped]{@link TRTCLocalMediaTranscodingEvent#onCameraSourceStopped}
|
|
370
247
|
*/
|
|
371
248
|
stopCameraSource(deviceId: string): void;
|
|
249
|
+
/**
|
|
250
|
+
* 启用摄像头采集画面绿幕抠图
|
|
251
|
+
*
|
|
252
|
+
* @param cameraDeviceId {String} - 摄像头设备 ID。
|
|
253
|
+
* @param enable {Boolean} - 是否启用摄像头采集画面绿幕抠图。
|
|
254
|
+
* @param color {Number} - 指定画面中需要抠除的颜色值。默认值:0x00FF00 代表绿色。格式为十六进制数字,比如:“0x61B9F1” 代表 RGB 分别为(97、185、241)。
|
|
255
|
+
*/
|
|
256
|
+
enableCameraGreenScreen(deviceId: string, enable: boolean): void;
|
|
372
257
|
/**
|
|
373
258
|
* 启动屏幕/窗口采集
|
|
374
259
|
*
|
|
@@ -378,6 +263,13 @@ declare class TRTCLocalMediaTranscoder extends EventEmitter {
|
|
|
378
263
|
* @fires [onScreenSourceStarted]{@link TRTCLocalMediaTranscodingEvent#onScreenSourceStarted}
|
|
379
264
|
*/
|
|
380
265
|
startScreenSource(source: TRTCScreenCaptureSourceInfo, rect: Rect): void;
|
|
266
|
+
/**
|
|
267
|
+
* 更新窗口/屏幕采集属性
|
|
268
|
+
*
|
|
269
|
+
* @param {String} sourceId 屏幕/窗口的 Id
|
|
270
|
+
* @param {TRTCScreenCaptureProperty} property 屏幕/窗口采集参数
|
|
271
|
+
*/
|
|
272
|
+
updateScreenCaptureProperty(sourceId: string, property: TRTCScreenCaptureProperty): void;
|
|
381
273
|
/**
|
|
382
274
|
* 停止屏幕/窗口采集
|
|
383
275
|
* @param sourceId {String} - 屏幕/窗口的 Id
|
|
@@ -3,11 +3,16 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.TRTCLocalMediaTranscodingSourceType = exports.
|
|
6
|
+
exports.TRTCLocalMediaTranscodingSourceType = exports.TRTCLocalMediaTranscodingError = void 0;
|
|
7
7
|
const events_1 = require("events");
|
|
8
8
|
const trtc_define_1 = require("../trtc_define");
|
|
9
9
|
const Renderer_1 = require("../Renderer");
|
|
10
|
+
const util_1 = require("../Renderer/util");
|
|
11
|
+
const types_1 = require("./types");
|
|
10
12
|
const logger_1 = __importDefault(require("../logger"));
|
|
13
|
+
var types_2 = require("./types");
|
|
14
|
+
Object.defineProperty(exports, "TRTCLocalMediaTranscodingError", { enumerable: true, get: function () { return types_2.TRTCLocalMediaTranscodingError; } });
|
|
15
|
+
Object.defineProperty(exports, "TRTCLocalMediaTranscodingSourceType", { enumerable: true, get: function () { return types_2.TRTCLocalMediaTranscodingSourceType; } });
|
|
11
16
|
/**
|
|
12
17
|
* @description 本地媒体流混流转码错误码
|
|
13
18
|
* @enum {Number}
|
|
@@ -24,116 +29,6 @@ const TRTCLocalMediaTranscodingError_HACK_JSDOC = {
|
|
|
24
29
|
/** 图片源加载失败。*/
|
|
25
30
|
ImageSourceLoadFailed: -4,
|
|
26
31
|
};
|
|
27
|
-
var TRTCLocalMediaTranscodingError;
|
|
28
|
-
(function (TRTCLocalMediaTranscodingError) {
|
|
29
|
-
TRTCLocalMediaTranscodingError[TRTCLocalMediaTranscodingError["Success"] = 0] = "Success";
|
|
30
|
-
TRTCLocalMediaTranscodingError[TRTCLocalMediaTranscodingError["Error"] = -1] = "Error";
|
|
31
|
-
TRTCLocalMediaTranscodingError[TRTCLocalMediaTranscodingError["InvalidParams"] = -2] = "InvalidParams";
|
|
32
|
-
TRTCLocalMediaTranscodingError[TRTCLocalMediaTranscodingError["NotFoundSource"] = -3] = "NotFoundSource";
|
|
33
|
-
TRTCLocalMediaTranscodingError[TRTCLocalMediaTranscodingError["ImageSourceLoadFailed"] = -4] = "ImageSourceLoadFailed";
|
|
34
|
-
})(TRTCLocalMediaTranscodingError = exports.TRTCLocalMediaTranscodingError || (exports.TRTCLocalMediaTranscodingError = {}));
|
|
35
|
-
/**
|
|
36
|
-
* @namespace TRTCLocalMediaTranscodingEvent
|
|
37
|
-
* @description 目前只支持 Windows
|
|
38
|
-
*/
|
|
39
|
-
var TRTCLocalMediaTranscodingEvents;
|
|
40
|
-
(function (TRTCLocalMediaTranscodingEvents) {
|
|
41
|
-
/**
|
|
42
|
-
* @description 本地混流转码开启的事件
|
|
43
|
-
*
|
|
44
|
-
* 当您调用 [startTranscoding]{@link TRTCLocalMediaTranscoder#startTranscoding} 时启动本地混流转码时,是否启动成功会通过此回调同步给您。
|
|
45
|
-
*
|
|
46
|
-
* @event TRTCLocalMediaTranscodingEvent#onTranscodingStarted
|
|
47
|
-
* @param {TRTCLocalMediaTranscodingError} errCode - 错误码。
|
|
48
|
-
* @param {String} errMsg - 错误信息。
|
|
49
|
-
*/
|
|
50
|
-
TRTCLocalMediaTranscodingEvents["onTranscodingStarted"] = "onTranscodingStarted";
|
|
51
|
-
/**
|
|
52
|
-
* @description 本地混流转码停止的事件
|
|
53
|
-
*
|
|
54
|
-
* 当您通过 [stopTranscoding]{@link TRTCLocalMediaTranscoder#stopTranscoding} 停止本地混流转码时,SDK 便会抛出此事件。
|
|
55
|
-
*
|
|
56
|
-
* @event TRTCLocalMediaTranscodingEvent#onTranscodingStopped
|
|
57
|
-
* @param {Number} reason - 停止原因,0:用户主动停止;1:被动停止,有可能采集源失效了
|
|
58
|
-
* @param {String} errMsg - 停止原因描述信息。
|
|
59
|
-
*/
|
|
60
|
-
TRTCLocalMediaTranscodingEvents["onTranscodingStopped"] = "onTranscodingStopped";
|
|
61
|
-
/**
|
|
62
|
-
* @description 本地摄像头开启的事件
|
|
63
|
-
* 当您调用 [startCameraSource]{@link TRTCLocalMediaTranscoder#startCameraSource} 打开摄像头时,是否启动成功会通过此回调同步给您。
|
|
64
|
-
*
|
|
65
|
-
* @event TRTCLocalMediaTranscodingEvent#onCameraSourceStarted
|
|
66
|
-
* @param {String} deviceId - 摄像头设备 Id 。
|
|
67
|
-
* @param {TRTCLocalMediaTranscodingError} errCode - 错误码。
|
|
68
|
-
* @param {String} errMsg - 错误信息。
|
|
69
|
-
*/
|
|
70
|
-
TRTCLocalMediaTranscodingEvents["onCameraSourceStarted"] = "onCameraSourceStarted";
|
|
71
|
-
/**
|
|
72
|
-
* @description 本地摄像头停止的事件
|
|
73
|
-
*
|
|
74
|
-
* @event TRTCLocalMediaTranscodingEvent#onCameraSourceStopped
|
|
75
|
-
* @param {String} deviceId - 摄像头设备 Id 。
|
|
76
|
-
* @param {String} reasonMsg - 停止原因描述信息。
|
|
77
|
-
*/
|
|
78
|
-
TRTCLocalMediaTranscodingEvents["onCameraSourceStopped"] = "onCameraSourceStopped";
|
|
79
|
-
/**
|
|
80
|
-
* @description 图片混流开启的事件
|
|
81
|
-
* 当您调用 [addImageSource]{@link TRTCLocalMediaTranscoder#addImageSource} 打开摄像头时,是否启动成功会通过此回调同步给您。
|
|
82
|
-
*
|
|
83
|
-
* @event TRTCLocalMediaTranscodingEvent#onImageSourceStarted
|
|
84
|
-
* @param {String} imagePath - 图片路径 。
|
|
85
|
-
* @param {TRTCLocalMediaTranscodingError} errCode - 错误码。
|
|
86
|
-
* @param {String} errMsg - 错误信息。
|
|
87
|
-
*/
|
|
88
|
-
TRTCLocalMediaTranscodingEvents["onImageSourceStarted"] = "onImageSourceStarted";
|
|
89
|
-
/**
|
|
90
|
-
* @description 图片混流停止的事件
|
|
91
|
-
* @event TRTCLocalMediaTranscodingEvent#onImageSourceStopped
|
|
92
|
-
* @param {String} imagePath - 图片路径 。
|
|
93
|
-
*/
|
|
94
|
-
TRTCLocalMediaTranscodingEvents["onImageSourceStopped"] = "onImageSourceStopped";
|
|
95
|
-
/**
|
|
96
|
-
* @description 屏幕分享开启的事件
|
|
97
|
-
* * 当您通过 [startScreenSource]{@link TRTCLocalMediaTranscoder#startScreenSource} 等相关接口启动屏幕分享时,SDK 便会抛出此事件回调。
|
|
98
|
-
*
|
|
99
|
-
* @event TRTCLocalMediaTranscodingEvent#onScreenSourceStarted
|
|
100
|
-
* @param {String} sourceId - 屏幕或者窗口 Id 。
|
|
101
|
-
* @param {TRTCLocalMediaTranscodingError} errCode - 错误码。
|
|
102
|
-
* @param {String} errMsg - 错误信息。
|
|
103
|
-
*/
|
|
104
|
-
TRTCLocalMediaTranscodingEvents["onScreenSourceStarted"] = "onScreenSourceStarted";
|
|
105
|
-
/**
|
|
106
|
-
* @description 屏幕分享暂停的事件
|
|
107
|
-
* @event TRTCLocalMediaTranscodingEvent#onScreenSourcePaused
|
|
108
|
-
* @param {String} sourceId - 屏幕或者窗口 Id 。
|
|
109
|
-
* @param {int} reason - 原因:
|
|
110
|
-
* - 1:注意此字段的含义在 MAC 和 Windows
|
|
111
|
-
* 平台有稍微差异。屏幕窗口不可见暂停(Mac)。表示设置屏幕分享参数导致的暂停(Windows)。
|
|
112
|
-
* - 2:表示屏幕分享窗口被最小化导致的暂停(仅 Windows)。
|
|
113
|
-
* - 3:表示屏幕分享窗口被隐藏导致的暂停(仅 Windows)。
|
|
114
|
-
*/
|
|
115
|
-
TRTCLocalMediaTranscodingEvents["onScreenSourcePaused"] = "onScreenSourcePaused";
|
|
116
|
-
/**
|
|
117
|
-
* @description 屏幕分享恢复的事件
|
|
118
|
-
* @event TRTCLocalMediaTranscodingEvent#onScreenSourceResumed
|
|
119
|
-
* @param {String} sourceId - 屏幕或者窗口 Id 。
|
|
120
|
-
* @param {int} reason - 原因:
|
|
121
|
-
* - 1:注意此字段的含义在 MAC 和 Windows
|
|
122
|
-
* 平台有稍微差异。屏幕窗口恢复可见从而恢复分享(Mac)。屏幕分享参数设置完毕后自动恢复(Windows)。
|
|
123
|
-
* - 2:表示屏幕分享窗口从最小化被恢复(仅 Windows)。
|
|
124
|
-
* - 3:表示屏幕分享窗口从隐藏被恢复(仅 Windows)。
|
|
125
|
-
*/
|
|
126
|
-
TRTCLocalMediaTranscodingEvents["onScreenSourceResumed"] = "onScreenSourceResumed";
|
|
127
|
-
/**
|
|
128
|
-
* @description 屏幕分享停止的事件
|
|
129
|
-
* 当您通过 [stopScreenSource]{@link TRTCLocalMediaTranscoder#stopScreenSource} 停止屏幕分享时,SDK 便会抛出此事件回调。
|
|
130
|
-
*
|
|
131
|
-
* @event TRTCLocalMediaTranscodingEvent#onScreenSourceStopped
|
|
132
|
-
* @param {String} sourceId - 屏幕或者窗口 Id 。
|
|
133
|
-
* @param {int} reason - 原因:0:用户主动停止;1:屏幕窗口关闭导致停止;2:表示屏幕分享的显示屏状态变更(如接口被拔出、投影模式变更等)。
|
|
134
|
-
*/
|
|
135
|
-
TRTCLocalMediaTranscodingEvents["onScreenSourceStopped"] = "onScreenSourceStopped";
|
|
136
|
-
})(TRTCLocalMediaTranscodingEvents = exports.TRTCLocalMediaTranscodingEvents || (exports.TRTCLocalMediaTranscodingEvents = {}));
|
|
137
32
|
/**
|
|
138
33
|
* 媒体源类型
|
|
139
34
|
* @enum {Number}
|
|
@@ -148,13 +43,6 @@ const TRTCLocalMediaTranscodingSourceType_HACK_JSDOC = {
|
|
|
148
43
|
/** 预留字段,当前版本不支持远端用户视频源混流转码 */
|
|
149
44
|
MediaSourceRemoteVideo: 3
|
|
150
45
|
};
|
|
151
|
-
var TRTCLocalMediaTranscodingSourceType;
|
|
152
|
-
(function (TRTCLocalMediaTranscodingSourceType) {
|
|
153
|
-
TRTCLocalMediaTranscodingSourceType[TRTCLocalMediaTranscodingSourceType["MediaSourceCamera"] = 0] = "MediaSourceCamera";
|
|
154
|
-
TRTCLocalMediaTranscodingSourceType[TRTCLocalMediaTranscodingSourceType["MediaSourceScreen"] = 1] = "MediaSourceScreen";
|
|
155
|
-
TRTCLocalMediaTranscodingSourceType[TRTCLocalMediaTranscodingSourceType["MediaSourceImage"] = 2] = "MediaSourceImage";
|
|
156
|
-
TRTCLocalMediaTranscodingSourceType[TRTCLocalMediaTranscodingSourceType["MediaSourceRemoteVideo"] = 3] = "MediaSourceRemoteVideo";
|
|
157
|
-
})(TRTCLocalMediaTranscodingSourceType = exports.TRTCLocalMediaTranscodingSourceType || (exports.TRTCLocalMediaTranscodingSourceType = {}));
|
|
158
46
|
/**
|
|
159
47
|
* 媒体源
|
|
160
48
|
* @namespace TRTCLocalMediaTranscoding
|
|
@@ -380,10 +268,21 @@ const TRTCLocalMediaTranscodingParams_HACK_JSDOC = null;
|
|
|
380
268
|
class TRTCLocalMediaTranscoder extends events_1.EventEmitter {
|
|
381
269
|
constructor(nativeLocalMediaTranscoder, pixelFormat) {
|
|
382
270
|
super();
|
|
271
|
+
this.logPrefix = '[TRTCLocalMediaTranscoder]';
|
|
383
272
|
this.nativeLocalMediaTranscoder = nativeLocalMediaTranscoder;
|
|
384
273
|
this.renderer = null;
|
|
385
274
|
this.container = null;
|
|
386
275
|
this.pixelFormat = pixelFormat || trtc_define_1.TRTCVideoPixelFormat.TRTCVideoPixelFormat_I420;
|
|
276
|
+
this.pixelLength = this.pixelFormat === trtc_define_1.TRTCVideoPixelFormat.TRTCVideoPixelFormat_I420 ? 1.5 : 4;
|
|
277
|
+
this.streamType = trtc_define_1.TRTCVideoStreamType.TRTCVideoStreamTypeBig;
|
|
278
|
+
this.videoRenderBuffer = new trtc_define_1.VideoBufferInfo({
|
|
279
|
+
userId: '',
|
|
280
|
+
id: (0, util_1.generateUniqueId)(),
|
|
281
|
+
streamType: this.streamType,
|
|
282
|
+
width: 1920,
|
|
283
|
+
height: 1080,
|
|
284
|
+
pixelFormat: this.pixelFormat,
|
|
285
|
+
});
|
|
387
286
|
this.setEventCallback();
|
|
388
287
|
this.nativeLocalMediaTranscoder.setVideoFrameProcessCallback(this.pixelFormat);
|
|
389
288
|
}
|
|
@@ -392,16 +291,18 @@ class TRTCLocalMediaTranscoder extends events_1.EventEmitter {
|
|
|
392
291
|
try {
|
|
393
292
|
if (this.nativeLocalMediaTranscoder) {
|
|
394
293
|
// 避免重复销毁报错
|
|
395
|
-
this.nativeLocalMediaTranscoder.setVideoFrameRenderCallback(
|
|
294
|
+
this.nativeLocalMediaTranscoder.setVideoFrameRenderCallback(this.pixelFormat, null);
|
|
396
295
|
this.nativeLocalMediaTranscoder.setVideoFrameProcessCallback(trtc_define_1.TRTCVideoPixelFormat.TRTCVideoPixelFormat_Unknown);
|
|
397
296
|
this.nativeLocalMediaTranscoder = null;
|
|
398
297
|
}
|
|
298
|
+
this.videoRenderBuffer.buffer = null;
|
|
299
|
+
this.videoRenderBuffer.id = 0;
|
|
399
300
|
(_a = this.renderer) === null || _a === void 0 ? void 0 : _a.destroy();
|
|
400
301
|
this.renderer = null;
|
|
401
302
|
this.container = null;
|
|
402
303
|
}
|
|
403
304
|
catch (error) {
|
|
404
|
-
logger_1.default.warn(
|
|
305
|
+
logger_1.default.warn(`${this.logPrefix}destroy error`, error);
|
|
405
306
|
}
|
|
406
307
|
}
|
|
407
308
|
// 帧率、码率在 JS 层为数值,可能被设置为负数,底层要求为无符号整数,此处做检验并将负值设置为零
|
|
@@ -432,6 +333,10 @@ class TRTCLocalMediaTranscoder extends events_1.EventEmitter {
|
|
|
432
333
|
*/
|
|
433
334
|
startTranscoding(streamType, params) {
|
|
434
335
|
this.validateTranscodingConfig(params);
|
|
336
|
+
if (streamType !== this.streamType) {
|
|
337
|
+
this.streamType = streamType;
|
|
338
|
+
this.videoRenderBuffer.streamType = this.streamType;
|
|
339
|
+
}
|
|
435
340
|
this.nativeLocalMediaTranscoder.startTranscoding(streamType, params);
|
|
436
341
|
}
|
|
437
342
|
/**
|
|
@@ -468,7 +373,7 @@ class TRTCLocalMediaTranscoder extends events_1.EventEmitter {
|
|
|
468
373
|
* @param cameraCaptureParams {TRTCCameraCaptureParams} - 指定摄像头采集分辨率和帧率
|
|
469
374
|
*/
|
|
470
375
|
setCameraCaptureParams(deviceId, cameraCaptureParams) {
|
|
471
|
-
this.nativeLocalMediaTranscoder.
|
|
376
|
+
this.nativeLocalMediaTranscoder.setCameraCaptureParam(deviceId, cameraCaptureParams);
|
|
472
377
|
}
|
|
473
378
|
/**
|
|
474
379
|
* 停止摄像头采集
|
|
@@ -479,6 +384,16 @@ class TRTCLocalMediaTranscoder extends events_1.EventEmitter {
|
|
|
479
384
|
stopCameraSource(deviceId) {
|
|
480
385
|
this.nativeLocalMediaTranscoder.stopCameraSource(deviceId);
|
|
481
386
|
}
|
|
387
|
+
/**
|
|
388
|
+
* 启用摄像头采集画面绿幕抠图
|
|
389
|
+
*
|
|
390
|
+
* @param cameraDeviceId {String} - 摄像头设备 ID。
|
|
391
|
+
* @param enable {Boolean} - 是否启用摄像头采集画面绿幕抠图。
|
|
392
|
+
* @param color {Number} - 指定画面中需要抠除的颜色值。默认值:0x00FF00 代表绿色。格式为十六进制数字,比如:“0x61B9F1” 代表 RGB 分别为(97、185、241)。
|
|
393
|
+
*/
|
|
394
|
+
enableCameraGreenScreen(deviceId, enable) {
|
|
395
|
+
this.nativeLocalMediaTranscoder.enableCameraGreenScreen(deviceId, enable);
|
|
396
|
+
}
|
|
482
397
|
/**
|
|
483
398
|
* 启动屏幕/窗口采集
|
|
484
399
|
*
|
|
@@ -490,6 +405,15 @@ class TRTCLocalMediaTranscoder extends events_1.EventEmitter {
|
|
|
490
405
|
startScreenSource(source, rect) {
|
|
491
406
|
this.nativeLocalMediaTranscoder.startScreenSource(source, rect);
|
|
492
407
|
}
|
|
408
|
+
/**
|
|
409
|
+
* 更新窗口/屏幕采集属性
|
|
410
|
+
*
|
|
411
|
+
* @param {String} sourceId 屏幕/窗口的 Id
|
|
412
|
+
* @param {TRTCScreenCaptureProperty} property 屏幕/窗口采集参数
|
|
413
|
+
*/
|
|
414
|
+
updateScreenCaptureProperty(sourceId, property) {
|
|
415
|
+
this.nativeLocalMediaTranscoder.updateScreenCaptureProperty(sourceId, property);
|
|
416
|
+
}
|
|
493
417
|
/**
|
|
494
418
|
* 停止屏幕/窗口采集
|
|
495
419
|
* @param sourceId {String} - 屏幕/窗口的 Id
|
|
@@ -564,19 +488,72 @@ class TRTCLocalMediaTranscoder extends events_1.EventEmitter {
|
|
|
564
488
|
}
|
|
565
489
|
}
|
|
566
490
|
setMixedVideoFrameRenderCallback() {
|
|
567
|
-
const renderCallback = (
|
|
568
|
-
|
|
569
|
-
|
|
491
|
+
const renderCallback = (args) => {
|
|
492
|
+
const [id, type, width, height, timestamp, rotation, valid, bufferId] = args;
|
|
493
|
+
if (valid === true) {
|
|
494
|
+
this.renderMixedVideoFrame({
|
|
495
|
+
data: this.videoRenderBuffer.buffer,
|
|
496
|
+
width: width,
|
|
497
|
+
height: height,
|
|
498
|
+
timestamp: timestamp,
|
|
499
|
+
rotation: rotation,
|
|
500
|
+
});
|
|
501
|
+
}
|
|
502
|
+
else {
|
|
503
|
+
logger_1.default.info(`${this.logPrefix} video size changed:`, width, height);
|
|
504
|
+
this.videoRenderBuffer.width = width;
|
|
505
|
+
this.videoRenderBuffer.height = height;
|
|
506
|
+
this.videoRenderBuffer.buffer = (0, util_1.allocBuffer)(width * height * this.pixelLength);
|
|
507
|
+
this.nativeLocalMediaTranscoder.setVideoFrameRenderBuffer(this.videoRenderBuffer.userId, this.videoRenderBuffer.buffer, this.videoRenderBuffer.streamType, this.videoRenderBuffer.width, this.videoRenderBuffer.height, this.videoRenderBuffer.pixelFormat, this.videoRenderBuffer.id);
|
|
508
|
+
}
|
|
570
509
|
};
|
|
571
|
-
this.nativeLocalMediaTranscoder.
|
|
510
|
+
this.nativeLocalMediaTranscoder.setVideoFrameRenderBuffer(this.videoRenderBuffer.userId, this.videoRenderBuffer.buffer, this.videoRenderBuffer.streamType, this.videoRenderBuffer.width, this.videoRenderBuffer.height, this.videoRenderBuffer.pixelFormat, this.videoRenderBuffer.id);
|
|
511
|
+
this.nativeLocalMediaTranscoder.setVideoFrameRenderCallback(this.pixelFormat, renderCallback);
|
|
572
512
|
}
|
|
573
513
|
unsetMixedVideoFrameRenderCallback() {
|
|
574
|
-
this.nativeLocalMediaTranscoder.setVideoFrameRenderCallback(
|
|
514
|
+
this.nativeLocalMediaTranscoder.setVideoFrameRenderCallback(this.pixelFormat, null);
|
|
515
|
+
this.videoRenderBuffer.width = 0;
|
|
516
|
+
this.videoRenderBuffer.height = 0;
|
|
517
|
+
this.nativeLocalMediaTranscoder.setVideoFrameRenderBuffer(this.videoRenderBuffer.userId, this.videoRenderBuffer.buffer, this.videoRenderBuffer.streamType, this.videoRenderBuffer.width, this.videoRenderBuffer.height, this.videoRenderBuffer.pixelFormat, this.videoRenderBuffer.id);
|
|
575
518
|
}
|
|
576
519
|
setEventCallback() {
|
|
577
|
-
const eventCallback = (
|
|
578
|
-
|
|
579
|
-
|
|
520
|
+
const eventCallback = (args) => {
|
|
521
|
+
const key = args[0];
|
|
522
|
+
const data = args[1];
|
|
523
|
+
logger_1.default.debug(`${this.logPrefix}event:`, key, data);
|
|
524
|
+
switch (key) {
|
|
525
|
+
case types_1.TRTCLocalMediaTranscodingEvents.onTranscodingStarted:
|
|
526
|
+
this.emit(key, data.errCode, data.errMsg);
|
|
527
|
+
break;
|
|
528
|
+
case types_1.TRTCLocalMediaTranscodingEvents.onTranscodingStopped:
|
|
529
|
+
this.emit(key, data.reason, data.reasonMsg);
|
|
530
|
+
break;
|
|
531
|
+
case types_1.TRTCLocalMediaTranscodingEvents.onCameraSourceStarted:
|
|
532
|
+
this.emit(key, data.deviceId, data.errCode, data.errMsg);
|
|
533
|
+
break;
|
|
534
|
+
case types_1.TRTCLocalMediaTranscodingEvents.onCameraSourceStopped:
|
|
535
|
+
this.emit(key, data.deviceId, data.errCode, data.reasonMsg);
|
|
536
|
+
break;
|
|
537
|
+
case types_1.TRTCLocalMediaTranscodingEvents.onImageSourceStarted:
|
|
538
|
+
this.emit(key, data.imagePath, data.errCode, data.errMsg);
|
|
539
|
+
break;
|
|
540
|
+
case types_1.TRTCLocalMediaTranscodingEvents.onImageSourceStopped:
|
|
541
|
+
this.emit(key, data.imagePath);
|
|
542
|
+
break;
|
|
543
|
+
case types_1.TRTCLocalMediaTranscodingEvents.onScreenSourceStarted:
|
|
544
|
+
this.emit(key, data.sourceId, data.errCode, data.errMsg);
|
|
545
|
+
break;
|
|
546
|
+
case types_1.TRTCLocalMediaTranscodingEvents.onScreenSourcePaused:
|
|
547
|
+
case types_1.TRTCLocalMediaTranscodingEvents.onScreenSourceResumed:
|
|
548
|
+
case types_1.TRTCLocalMediaTranscodingEvents.onScreenSourceStopped:
|
|
549
|
+
this.emit(key, data.sourceId, data.reason);
|
|
550
|
+
break;
|
|
551
|
+
case types_1.TRTCLocalMediaTranscodingEvents.onMediaSourceSizeChanged:
|
|
552
|
+
this.emit(key, data.mediaSource, data.newSize);
|
|
553
|
+
break;
|
|
554
|
+
default:
|
|
555
|
+
logger_1.default.warn(`${this.logPrefix}unkown event type:${key}`);
|
|
556
|
+
}
|
|
580
557
|
};
|
|
581
558
|
this.nativeLocalMediaTranscoder.setTranscodingCallback(eventCallback);
|
|
582
559
|
}
|
|
@@ -586,13 +563,14 @@ class TRTCLocalMediaTranscoder extends events_1.EventEmitter {
|
|
|
586
563
|
}
|
|
587
564
|
const { width, height, data, timestamp, rotation } = frame;
|
|
588
565
|
if (data) {
|
|
589
|
-
const
|
|
566
|
+
const realRotation = rotation * 90;
|
|
567
|
+
// const newData = data.slice(0); // Electron 12及以下版本需要复制一次,否则会引起奔溃。
|
|
590
568
|
this.renderer.drawFrame({
|
|
591
|
-
data
|
|
569
|
+
data,
|
|
592
570
|
width,
|
|
593
571
|
height,
|
|
594
572
|
timestamp,
|
|
595
|
-
rotation,
|
|
573
|
+
rotation: realRotation,
|
|
596
574
|
isNeedRotate: false,
|
|
597
575
|
});
|
|
598
576
|
}
|