trtc-electron-sdk 10.3.8-beta.4 → 10.3.8-beta.7
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/trtc.d.ts +74 -55
- package/liteav/trtc.js +175 -102
- package/liteav/trtc_define.d.ts +5 -6
- package/liteav/trtc_define.js +6 -7
- package/package.json +1 -1
package/liteav/trtc.d.ts
CHANGED
|
@@ -54,7 +54,17 @@ declare class TRTCCloud extends EventEmitter {
|
|
|
54
54
|
*/
|
|
55
55
|
static destroyTRTCShareInstance(): void;
|
|
56
56
|
/**
|
|
57
|
-
*
|
|
57
|
+
* 获取 TRTC 配置对象
|
|
58
|
+
*
|
|
59
|
+
* 可以通过 TRTC 配置对象 {@link TRTCConfig} 打开 debug 模式
|
|
60
|
+
*
|
|
61
|
+
* @example
|
|
62
|
+
* // Enable 'debug' mode
|
|
63
|
+
* const TRTCCloud = require('trtc-electron-sdk');
|
|
64
|
+
* const rtcCloud = new TRTCCloud();
|
|
65
|
+
* rtcCloud.getConfigObject().setDebugMode(true);
|
|
66
|
+
*
|
|
67
|
+
* @returns {TRTCConfig}
|
|
58
68
|
*/
|
|
59
69
|
getConfigObject(): import("./Render/util").Config;
|
|
60
70
|
setExternalRenderEnabled(enabled: boolean): void;
|
|
@@ -194,11 +204,11 @@ declare class TRTCCloud extends EventEmitter {
|
|
|
194
204
|
/**
|
|
195
205
|
* 3.3 用户是否开启摄像头视频
|
|
196
206
|
*
|
|
197
|
-
* 当您收到 onUserVideoAvailable(userId,
|
|
207
|
+
* 当您收到 onUserVideoAvailable(userId, 1) 通知时,代表该路画面已经有可用的视频数据帧到达。
|
|
198
208
|
* 之后,您需要调用 [startRemoteView()]{@link TRTCCloud#startRemoteView} 接口加载该用户的远程画面。
|
|
199
209
|
* 再之后,您还会收到名为 onFirstVideoFrame(userId) 的首帧画面渲染回调。
|
|
200
210
|
*
|
|
201
|
-
* 当您收到了 onUserVideoAvailable(userId,
|
|
211
|
+
* 当您收到了 onUserVideoAvailable(userId, 0) 通知时,代表该路远程画面已经被关闭,这可能是
|
|
202
212
|
* 由于该用户调用了 [muteLocalVideo()]{@link TRTCCloud#muteLocalVideo} 或 [stopLocalPreview()]{@link TRTCCloud#stopLocalPreview} 所致。
|
|
203
213
|
*
|
|
204
214
|
* @event TRTCCallback#onUserVideoAvailable
|
|
@@ -209,7 +219,7 @@ declare class TRTCCloud extends EventEmitter {
|
|
|
209
219
|
/**
|
|
210
220
|
* 3.4 用户是否开启了辅路画面(TRTCVideoStreamTypeSub,一般用于屏幕分享)
|
|
211
221
|
*
|
|
212
|
-
* 注意:显示辅路画面使用的函数是
|
|
222
|
+
* 注意:显示辅路画面使用的函数是[startRemoteView()]{@link TRTCCloud#startRemoteView}, 从 8.0 版本开始已不再推荐使用 [startRemoteSubStreamView()]{@link TRTCCloud#startRemoteSubStreamView}。
|
|
213
223
|
*
|
|
214
224
|
* @event TRTCCallback#onUserSubStreamAvailable
|
|
215
225
|
* @param {String} userId - 用户标识
|
|
@@ -598,7 +608,7 @@ declare class TRTCCloud extends EventEmitter {
|
|
|
598
608
|
* - ERR_AUDIO_PLUGIN_INSTALL_FAILED (-1332) :安装音频驱动插件失败
|
|
599
609
|
*/
|
|
600
610
|
handleOnSystemAudioLoopbackError(errCode: number): void;
|
|
601
|
-
|
|
611
|
+
handleVideoSizeChange(userId: string, streamType: number, width: number, height: number): void;
|
|
602
612
|
/**
|
|
603
613
|
* 1.1 进入房间
|
|
604
614
|
*
|
|
@@ -661,7 +671,7 @@ declare class TRTCCloud extends EventEmitter {
|
|
|
661
671
|
*
|
|
662
672
|
* @param {TRTCSwitchRoomParam} params 房间切换参数,请参考 {@link TRTCSwitchRoomParam}
|
|
663
673
|
*
|
|
664
|
-
* 接口调用结果会通过
|
|
674
|
+
* 接口调用结果会通过 onSwitchRoom(errCode, errMsg) 事件回调通知给您。
|
|
665
675
|
*/
|
|
666
676
|
switchRoom(params: TRTCSwitchRoomParam): void;
|
|
667
677
|
/**
|
|
@@ -690,13 +700,13 @@ declare class TRTCCloud extends EventEmitter {
|
|
|
690
700
|
* <pre>
|
|
691
701
|
* 房间 001 房间 002
|
|
692
702
|
* ------------- ------------
|
|
693
|
-
*
|
|
703
|
+
* 跨房连麦前: | 主播 A | | 主播 B |
|
|
694
704
|
* | 观众 U V W | | 观众 X Y Z |
|
|
695
705
|
* ------------- ------------
|
|
696
706
|
*
|
|
697
707
|
* 房间 001 房间 002
|
|
698
708
|
* ------------- ------------
|
|
699
|
-
*
|
|
709
|
+
* 跨房连麦后: | 主播 A B | | 主播 B A |
|
|
700
710
|
* | 观众 U V W | | 观众 X Y Z |
|
|
701
711
|
* ------------- ------------
|
|
702
712
|
* </pre>
|
|
@@ -809,6 +819,8 @@ declare class TRTCCloud extends EventEmitter {
|
|
|
809
819
|
*
|
|
810
820
|
* 参考文档:[云端混流转码](https://cloud.tencent.com/document/product/647/16827)。
|
|
811
821
|
*
|
|
822
|
+
* 注意:混流转码为收费功能,调用接口将产生云端混流转码费用,详见 [云端混流转码计费说明](https://cloud.tencent.com/document/product/647/49446)。
|
|
823
|
+
*
|
|
812
824
|
* @note 关于云端混流的注意事项:
|
|
813
825
|
* - 云端转码会引入一定的 CDN 观看延时,大概会增加1 - 2秒。
|
|
814
826
|
* - 调用该函数的用户,会将连麦中的多路画面混合到自己当前这路画面中。
|
|
@@ -830,7 +842,7 @@ declare class TRTCCloud extends EventEmitter {
|
|
|
830
842
|
* @param {String} config.streamId - 输出到 CDN 上的直播流 ID
|
|
831
843
|
* @param {TRTCMixUser[]} config.mixUsersArray - 每一路子画面的位置信息
|
|
832
844
|
* @param {String} config.mixUsersArray[].userId - 参与混流的 userId
|
|
833
|
-
* @param {String} config.mixUsersArray[].roomId - 参与混流的 roomId,跨房流传入的实际 roomId
|
|
845
|
+
* @param {String} config.mixUsersArray[].roomId - 参与混流的 roomId,跨房流传入的实际 roomId。当前房间流,请传入空字符串(roomId = '')。
|
|
834
846
|
* @param {Rect} config.mixUsersArray[].rect - 图层位置坐标以及大小,左上角为坐标原点(0,0) (绝对像素值)
|
|
835
847
|
* @param {Number} config.mixUsersArray[].rect.left - 图层位置的左坐标
|
|
836
848
|
* @param {Number} config.mixUsersArray[].rect.top - 图层位置的上坐标
|
|
@@ -855,16 +867,23 @@ declare class TRTCCloud extends EventEmitter {
|
|
|
855
867
|
*/
|
|
856
868
|
stopLocalPreview(): void;
|
|
857
869
|
/**
|
|
858
|
-
* 3.3
|
|
870
|
+
* 3.3 暂停/恢复发布本地的视频流
|
|
859
871
|
*
|
|
860
|
-
*
|
|
861
|
-
*
|
|
872
|
+
* 该接口可以暂停(或恢复)发布本地的视频画面,暂停之后,同一房间中的其他用户将无法继续看到自己画面。
|
|
873
|
+
* 该接口在指定 TRTCVideoStreamTypeBig 时等效于 start/stopLocalPreview 这两个接口,但具有更好的响应速度。
|
|
874
|
+
* 因为 start/stopLocalPreview 需要打开和关闭摄像头,而打开和关闭摄像头都是硬件设备相关的操作,非常耗时。
|
|
875
|
+
* 相比之下,muteLocalVideo 只需要在软件层面对数据流进行暂停或者放行即可,因此效率更高,也更适合需要频繁打开关闭的场景。
|
|
876
|
+
* 当暂停/恢复发布指定 TRTCVideoStreamTypeBig 后,同一房间中的其他用户将会收到 onUserVideoAvailable 回调通知。
|
|
877
|
+
* 当暂停/恢复发布指定 TRTCVideoStreamTypeSub 后,同一房间中的其他用户将会收到 onUserSubStreamAvailable 回调通知。
|
|
878
|
+
*
|
|
879
|
+
* @param {Boolean} mute - true:屏蔽;false:开启,默认值:false
|
|
880
|
+
* @param {TRTCVideoStreamType} streamType - 要暂停/恢复的视频流类型, 仅支持 TRTCVideoStreamTypeBig 和 TRTCVideoStreamTypeSub
|
|
862
881
|
*/
|
|
863
882
|
muteLocalVideo(mute: boolean, streamType?: TRTCVideoStreamType): void;
|
|
864
883
|
/**
|
|
865
884
|
* 3.4 开始显示远端视频画面
|
|
866
885
|
*
|
|
867
|
-
* 在收到 SDK 的 onUserVideoAvailable(userId,
|
|
886
|
+
* 在收到 SDK 的 onUserVideoAvailable(userId, 1) 通知时,可以获知该远程用户开启了视频,
|
|
868
887
|
* 此后调用 startRemoteView(userId) 接口加载该用户的远程画面时,可以用 loading 动画优化加载过程中的等待体验。
|
|
869
888
|
* 待该用户的首帧画面开始显示时,您会收到 onFirstVideoFrame(userId) 事件回调。
|
|
870
889
|
*
|
|
@@ -953,7 +972,7 @@ declare class TRTCCloud extends EventEmitter {
|
|
|
953
972
|
*/
|
|
954
973
|
setLocalViewFillMode(mode: TRTCVideoFillMode): void;
|
|
955
974
|
/**
|
|
956
|
-
* 3.13
|
|
975
|
+
* 3.13 设置远端画面的渲染模式
|
|
957
976
|
*
|
|
958
977
|
* @param {String} userId - 用户 ID
|
|
959
978
|
* @param {TRTCVideoStreamType} streamType - 视频流类型
|
|
@@ -1116,7 +1135,11 @@ declare class TRTCCloud extends EventEmitter {
|
|
|
1116
1135
|
*/
|
|
1117
1136
|
muteRemoteAudio(userId: string, mute: boolean): void;
|
|
1118
1137
|
/**
|
|
1119
|
-
* 4.5
|
|
1138
|
+
* 4.5 静音/取消静音所有远端用户的音频流
|
|
1139
|
+
*
|
|
1140
|
+
* 当您静音所有用户的远端音频时,SDK 会停止播放所有来自远端的音频流,同时也会停止拉取所有用户的音频数据。
|
|
1141
|
+
*
|
|
1142
|
+
* 注意:该接口支持您在进入房间(enterRoom)前调用,暂停状态会在退出房间(exitRoom)在之后会被重置。
|
|
1120
1143
|
*
|
|
1121
1144
|
* @param {Boolean} mute - true:静音;false:非静音
|
|
1122
1145
|
*/
|
|
@@ -1164,9 +1187,10 @@ declare class TRTCCloud extends EventEmitter {
|
|
|
1164
1187
|
* 我们在 Demo 中有一个音量大小的提示条,就是基于这个接口实现的。
|
|
1165
1188
|
* 如希望打开此功能,请在 startLocalAudio() 之前调用。
|
|
1166
1189
|
*
|
|
1167
|
-
* @param {Number} interval
|
|
1190
|
+
* @param {Number} interval - 设置 onUserVoiceVolume 回调的触发间隔,单位为ms,最小间隔为100ms,如果小于等于0则会关闭回调,建议设置为300ms
|
|
1191
|
+
* @param {Boolean} enableVad - true: 打开人声检测;false: 关闭人声检测。目前仅 windows 支持。
|
|
1168
1192
|
*/
|
|
1169
|
-
enableAudioVolumeEvaluation(interval: number): void;
|
|
1193
|
+
enableAudioVolumeEvaluation(interval: number, enableVad?: boolean): void;
|
|
1170
1194
|
/**
|
|
1171
1195
|
* 4.12 开始录音
|
|
1172
1196
|
*
|
|
@@ -1205,11 +1229,18 @@ declare class TRTCCloud extends EventEmitter {
|
|
|
1205
1229
|
* - TRTCAudioQualityMusic: 音乐模式:采样率:48k
|
|
1206
1230
|
*/
|
|
1207
1231
|
setAudioQuality(quality: TRTCAudioQuality): void;
|
|
1232
|
+
/**
|
|
1233
|
+
* 4.15 废弃接口:设置麦克风的音量大小
|
|
1234
|
+
*
|
|
1235
|
+
* @deprecated 从 TRTCSDK6.9 后该接口已被废弃,请使用 setAudioCaptureVolume 接口替代。
|
|
1236
|
+
* @param {Number} volume - 音量大小,100为正常音量,取值范围为0 - 200。
|
|
1237
|
+
*/
|
|
1238
|
+
setMicVolumeOnMixing(volume: number): void;
|
|
1208
1239
|
/**
|
|
1209
1240
|
* 5.1 获取摄像头设备列表
|
|
1210
1241
|
*
|
|
1211
1242
|
* @example
|
|
1212
|
-
* var cameralist =
|
|
1243
|
+
* var cameralist = rtcCloud.getCameraDevicesList();
|
|
1213
1244
|
* for (i=0;i<cameralist.length;i++) {
|
|
1214
1245
|
* var camera = cameralist[i];
|
|
1215
1246
|
* console.info("camera deviceName: " + camera.deviceName + " deviceId:" + camera.deviceId);
|
|
@@ -1233,7 +1264,7 @@ declare class TRTCCloud extends EventEmitter {
|
|
|
1233
1264
|
* 6.1 获取麦克风设备列表
|
|
1234
1265
|
*
|
|
1235
1266
|
* @example
|
|
1236
|
-
* var miclist =
|
|
1267
|
+
* var miclist = rtcCloud.getMicDevicesList();
|
|
1237
1268
|
* for (i=0;i<miclist.length;i++) {
|
|
1238
1269
|
* var mic = miclist[i];
|
|
1239
1270
|
* console.info("mic deviceName: " + mic.deviceName + " deviceId:" + mic.deviceId);
|
|
@@ -1285,7 +1316,7 @@ declare class TRTCCloud extends EventEmitter {
|
|
|
1285
1316
|
* 6.8 获取扬声器设备列表
|
|
1286
1317
|
*
|
|
1287
1318
|
* @example
|
|
1288
|
-
* var speakerlist =
|
|
1319
|
+
* var speakerlist = rtcCloud.getSpeakerDevicesList();
|
|
1289
1320
|
* for (i=0;i<speakerlist.length;i++) {
|
|
1290
1321
|
* var speaker = speakerlist[i];
|
|
1291
1322
|
* console.info("mic deviceName: " + speaker.deviceName + " deviceId:" + speaker.deviceId);
|
|
@@ -1308,10 +1339,6 @@ declare class TRTCCloud extends EventEmitter {
|
|
|
1308
1339
|
/**
|
|
1309
1340
|
* 6.11 获取系统当前扬声器设备音量
|
|
1310
1341
|
*
|
|
1311
|
-
* 注意:
|
|
1312
|
-
* - SDK6.7 及以下版本,windows 查询的不是系统扬声器的音量大小,mac 是查询系统扬声器音量大小
|
|
1313
|
-
* - SDK6.8 及以上版本,windows 和 mac 查询的都是系统扬声器的音量大小
|
|
1314
|
-
*
|
|
1315
1342
|
* @return {Number} 扬声器音量,范围0 - 100
|
|
1316
1343
|
*/
|
|
1317
1344
|
getCurrentSpeakerVolume(): any;
|
|
@@ -1319,8 +1346,6 @@ declare class TRTCCloud extends EventEmitter {
|
|
|
1319
1346
|
* 6.12 设置系统当前扬声器设备音量
|
|
1320
1347
|
*
|
|
1321
1348
|
* 注意:该接口的功能是调节系统播放音量,如果用户直接调节系统设置的播放音量时,该接口的设置结果会被用户的操作所覆盖。
|
|
1322
|
-
* - SDK6.7 及以下版本,windows 设置的不是系统扬声器的音量大小,mac 是设置系统扬声器音量大小
|
|
1323
|
-
* - SDK6.8 及以上版本,windows 和 mac 设置的都是系统扬声器的音量大小
|
|
1324
1349
|
*
|
|
1325
1350
|
* @param {Number} volume - 设置的扬声器音量,范围0 - 100
|
|
1326
1351
|
*/
|
|
@@ -1426,7 +1451,7 @@ declare class TRTCCloud extends EventEmitter {
|
|
|
1426
1451
|
* 8.5 枚举可共享的窗口列表
|
|
1427
1452
|
*
|
|
1428
1453
|
* 如果您要给您的 App 增加屏幕分享功能,一般需要先显示一个窗口选择界面,这样用户可以选择希望分享的窗口。
|
|
1429
|
-
*
|
|
1454
|
+
* 通过此函数,您可以获得可分享窗口的 ID、类型、窗口名称以及缩略图。
|
|
1430
1455
|
* 拿到这些信息后,您就可以实现一个窗口选择界面,当然,您也可以使用我们在 Demo 源码中已经实现好的一个界面。
|
|
1431
1456
|
*
|
|
1432
1457
|
* 注意:返回的列表中包括屏幕和应用窗口,屏幕会在列表的前面几个元素中。
|
|
@@ -1471,7 +1496,7 @@ declare class TRTCCloud extends EventEmitter {
|
|
|
1471
1496
|
*/
|
|
1472
1497
|
selectScreenCaptureTarget(source: TRTCScreenCaptureSourceInfo | number, captureRect: Rect | string, property: TRTCScreenCaptureProperty | string, deprecatedCaptureRect?: Rect, captureMouse?: boolean, highlightWindow?: boolean): any;
|
|
1473
1498
|
/**
|
|
1474
|
-
* 8.7
|
|
1499
|
+
* 8.7 启动屏幕分享,支持选择使用主路或辅路进行屏幕分享。
|
|
1475
1500
|
*
|
|
1476
1501
|
* 注意:
|
|
1477
1502
|
* 一个用户同时最多只能上传一条主路(TRTCVideoStreamTypeBig)画面和一条辅路(TRTCVideoStreamTypeSub)画面,
|
|
@@ -1495,12 +1520,14 @@ declare class TRTCCloud extends EventEmitter {
|
|
|
1495
1520
|
*/
|
|
1496
1521
|
stopScreenCapture(): void;
|
|
1497
1522
|
/**
|
|
1498
|
-
* 8.11
|
|
1523
|
+
* 8.11 设置屏幕分享(即辅路)的视频编码参数
|
|
1499
1524
|
*
|
|
1500
|
-
*
|
|
1501
|
-
* -
|
|
1525
|
+
* 该接口可以设定远端用户所看到的屏幕分享(即辅路)的画面质量,同时也能决定云端录制出的视频文件中屏幕分享的画面质量。 请注意如下两个接口的差异:
|
|
1526
|
+
* - setVideoEncoderParam() 用于设置主路画面(TRTCVideoStreamTypeBig,一般用于摄像头)的视频编码参数。
|
|
1527
|
+
* - setSubStreamEncoderParam() 用于设置辅路画面(TRTCVideoStreamTypeSub,一般用于屏幕分享)的视频编码参数。
|
|
1502
1528
|
*
|
|
1503
|
-
*
|
|
1529
|
+
* 注意:
|
|
1530
|
+
* 即使您使用主路传输屏幕分享(在调用 startScreenCapture 时设置 type=TRTCVideoStreamTypeBig),依然要使用 setSubStreamEncoderParam 设定屏幕分享的编码参数,而不要使用 setVideoEncoderParam 。
|
|
1504
1531
|
*
|
|
1505
1532
|
* @param {TRTCVideoEncParam} params - 辅流(屏幕分享)编码参数
|
|
1506
1533
|
* @param {TRTCVideoResolution} params.videoResolution - 视频分辨率
|
|
@@ -1773,7 +1800,13 @@ declare class TRTCCloud extends EventEmitter {
|
|
|
1773
1800
|
*/
|
|
1774
1801
|
seekMusicToPosInTime(id: number, pts: number): any;
|
|
1775
1802
|
/**
|
|
1776
|
-
* 11.19
|
|
1803
|
+
* 11.19 设置所有背景音乐的本地音量和远端音量的大小
|
|
1804
|
+
*
|
|
1805
|
+
* 该接口可以设置所有背景音乐的本地音量和远端音量。
|
|
1806
|
+
* - 本地音量:即主播本地可以听到的背景音乐的音量大小。
|
|
1807
|
+
* - 远端音量:即观众端可以听到的背景音乐的音量大小。
|
|
1808
|
+
*
|
|
1809
|
+
* 注意:如果将 volume 设置成 100 之后感觉音量还是太小,可以将 volume 最大设置成 150,但超过 100 的 volume 会有爆音的风险,请谨慎操作。
|
|
1777
1810
|
*
|
|
1778
1811
|
* @param {Number} volume - 音量大小,100为正常音量,取值范围为0 - 200。
|
|
1779
1812
|
*/
|
|
@@ -1886,15 +1919,7 @@ declare class TRTCCloud extends EventEmitter {
|
|
|
1886
1919
|
*/
|
|
1887
1920
|
stopSpeedTest(): void;
|
|
1888
1921
|
/**
|
|
1889
|
-
* 13.3
|
|
1890
|
-
*
|
|
1891
|
-
* @param {TRTCDeviceType} deviceType - 设备类型
|
|
1892
|
-
* @param {Boolean} enable - 是否跟随系统默认的音频设备。 true:跟随, 当系统默认音频设备发生改变时,SDK 立即切换音频设备; false:不跟随, 只有当 SDK 使用的音频设备被移除后或插入新的音频设备为系统默认设备时,SDK 才切换至系统默认的音频设备。
|
|
1893
|
-
*
|
|
1894
|
-
*/
|
|
1895
|
-
enableFollowingDefaultAudioDevice(deviceType: TRTCDeviceType, enable: boolean): void;
|
|
1896
|
-
/**
|
|
1897
|
-
* 13.4 开始进行摄像头测试
|
|
1922
|
+
* 13.3 开始进行摄像头测试
|
|
1898
1923
|
*
|
|
1899
1924
|
* 会触发 onFirstVideoFrame 回调接口
|
|
1900
1925
|
*
|
|
@@ -1904,25 +1929,26 @@ declare class TRTCCloud extends EventEmitter {
|
|
|
1904
1929
|
*/
|
|
1905
1930
|
startCameraDeviceTest(view: HTMLElement): void;
|
|
1906
1931
|
/**
|
|
1907
|
-
* 13.
|
|
1932
|
+
* 13.4 停止摄像头测试
|
|
1908
1933
|
*/
|
|
1909
1934
|
stopCameraDeviceTest(): void;
|
|
1910
1935
|
/**
|
|
1911
|
-
* 13.
|
|
1936
|
+
* 13.5 开始进行麦克风测试
|
|
1912
1937
|
*
|
|
1913
1938
|
* 回调接口 onTestMicVolume 获取测试数据
|
|
1914
1939
|
*
|
|
1915
1940
|
* 该方法测试麦克风是否能正常工作,volume 的取值范围为0 - 100。
|
|
1916
1941
|
*
|
|
1917
1942
|
* @param {Number} interval - 反馈音量提示的时间间隔(ms),建议设置到大于 200 毫秒
|
|
1943
|
+
* @param {Boolean} playback - 是否开启回播麦克风声音,开启后用户测试麦克风时会听到自己的声音。默认值 true
|
|
1918
1944
|
*/
|
|
1919
|
-
startMicDeviceTest(interval: number): void;
|
|
1945
|
+
startMicDeviceTest(interval: number, playback?: boolean): void;
|
|
1920
1946
|
/**
|
|
1921
|
-
* 13.
|
|
1947
|
+
* 13.6 停止麦克风测试
|
|
1922
1948
|
*/
|
|
1923
1949
|
stopMicDeviceTest(): void;
|
|
1924
1950
|
/**
|
|
1925
|
-
* 13.
|
|
1951
|
+
* 13.7 开始进行扬声器测试
|
|
1926
1952
|
*
|
|
1927
1953
|
* 回调接口 onTestSpeakerVolume 获取测试数据
|
|
1928
1954
|
*
|
|
@@ -1932,7 +1958,7 @@ declare class TRTCCloud extends EventEmitter {
|
|
|
1932
1958
|
*/
|
|
1933
1959
|
startSpeakerDeviceTest(testAudioFilePath: string): void;
|
|
1934
1960
|
/**
|
|
1935
|
-
* 13.
|
|
1961
|
+
* 13.8 停止扬声器测试
|
|
1936
1962
|
*/
|
|
1937
1963
|
stopSpeakerDeviceTest(): void;
|
|
1938
1964
|
/**
|
|
@@ -1992,13 +2018,6 @@ declare class TRTCCloud extends EventEmitter {
|
|
|
1992
2018
|
* @param {String} jsonStr - 接口及参数描述的 JSON 字符串
|
|
1993
2019
|
*/
|
|
1994
2020
|
callExperimentalAPI(jsonStr: string): void;
|
|
1995
|
-
/**
|
|
1996
|
-
* 从 TRTCSDK6.9 后该接口已被废弃
|
|
1997
|
-
*
|
|
1998
|
-
* @deprecated 从 TRTCSDK6.9 后该接口已被废弃,请使用 setAudioCaptureVolume 接口替代。
|
|
1999
|
-
* @param {Number} volume - 音量大小,100为正常音量,取值范围为0 - 200。
|
|
2000
|
-
*/
|
|
2001
|
-
setMicVolumeOnMixing(volume: number): void;
|
|
2002
2021
|
addLocalVideoRenderCallback(): void;
|
|
2003
2022
|
addRemoteVideoRenderCallback(userId: string): void;
|
|
2004
2023
|
/**
|
package/liteav/trtc.js
CHANGED
|
@@ -108,6 +108,38 @@ let formatLogParams = function (params) {
|
|
|
108
108
|
}
|
|
109
109
|
return logParamsStr;
|
|
110
110
|
};
|
|
111
|
+
const getComponentNO = function () {
|
|
112
|
+
var _a;
|
|
113
|
+
let componentName = '';
|
|
114
|
+
// @ts-ignore
|
|
115
|
+
if (global.__TRTCElectron && global.__TRTCElectron.componentName) {
|
|
116
|
+
// @ts-ignore
|
|
117
|
+
componentName = global.__TRTCElectron.componentName;
|
|
118
|
+
}
|
|
119
|
+
else {
|
|
120
|
+
const jsonStr = (_a = global.localStorage) === null || _a === void 0 ? void 0 : _a.getItem('__TRTCElectron');
|
|
121
|
+
if (jsonStr) {
|
|
122
|
+
try {
|
|
123
|
+
const jsonObj = JSON.parse(jsonStr);
|
|
124
|
+
if (jsonObj.componentName && typeof jsonObj.componentName === 'string') {
|
|
125
|
+
componentName = jsonObj.componentName;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
catch (error) {
|
|
129
|
+
console.warn('trtc: localstorage TRTCElectron parse error.', error);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
let componentNO = '';
|
|
134
|
+
switch (componentName) {
|
|
135
|
+
case 'TUIRoom':
|
|
136
|
+
componentNO = '5';
|
|
137
|
+
break;
|
|
138
|
+
default:
|
|
139
|
+
break;
|
|
140
|
+
}
|
|
141
|
+
return componentNO;
|
|
142
|
+
};
|
|
111
143
|
let trtcCloudInstance = null;
|
|
112
144
|
let oriRtcCloud = null;
|
|
113
145
|
const renderModePixelFormatMap = new Map();
|
|
@@ -134,7 +166,8 @@ renderModePixelFormatMap.set(8, trtc_define_1.TRTCVideoPixelFormat.TRTCVideoPixe
|
|
|
134
166
|
class TRTCCloud extends events_1.EventEmitter {
|
|
135
167
|
constructor() {
|
|
136
168
|
super();
|
|
137
|
-
|
|
169
|
+
const componentNO = getComponentNO();
|
|
170
|
+
oriRtcCloud = new trtc.NodeRTCCloud(pkg.version, componentNO);
|
|
138
171
|
this.rtcCloud = Object.assign({}, oriRtcCloud, {
|
|
139
172
|
onlineLog: undefined
|
|
140
173
|
});
|
|
@@ -193,7 +226,17 @@ class TRTCCloud extends events_1.EventEmitter {
|
|
|
193
226
|
}
|
|
194
227
|
}
|
|
195
228
|
/**
|
|
196
|
-
*
|
|
229
|
+
* 获取 TRTC 配置对象
|
|
230
|
+
*
|
|
231
|
+
* 可以通过 TRTC 配置对象 {@link TRTCConfig} 打开 debug 模式
|
|
232
|
+
*
|
|
233
|
+
* @example
|
|
234
|
+
* // Enable 'debug' mode
|
|
235
|
+
* const TRTCCloud = require('trtc-electron-sdk');
|
|
236
|
+
* const rtcCloud = new TRTCCloud();
|
|
237
|
+
* rtcCloud.getConfigObject().setDebugMode(true);
|
|
238
|
+
*
|
|
239
|
+
* @returns {TRTCConfig}
|
|
197
240
|
*/
|
|
198
241
|
getConfigObject() {
|
|
199
242
|
return util_1.config;
|
|
@@ -377,8 +420,6 @@ class TRTCCloud extends events_1.EventEmitter {
|
|
|
377
420
|
case 'onSystemAudioLoopbackError':
|
|
378
421
|
this.handleOnSystemAudioLoopbackError(int32_1);
|
|
379
422
|
break;
|
|
380
|
-
case 'onVideoSizeChange':
|
|
381
|
-
this.handleOnVideoSizeChange(string_1, int32_1, int32_2, int32_3);
|
|
382
423
|
default:
|
|
383
424
|
break;
|
|
384
425
|
}
|
|
@@ -563,11 +604,11 @@ class TRTCCloud extends events_1.EventEmitter {
|
|
|
563
604
|
/**
|
|
564
605
|
* 3.3 用户是否开启摄像头视频
|
|
565
606
|
*
|
|
566
|
-
* 当您收到 onUserVideoAvailable(userId,
|
|
607
|
+
* 当您收到 onUserVideoAvailable(userId, 1) 通知时,代表该路画面已经有可用的视频数据帧到达。
|
|
567
608
|
* 之后,您需要调用 [startRemoteView()]{@link TRTCCloud#startRemoteView} 接口加载该用户的远程画面。
|
|
568
609
|
* 再之后,您还会收到名为 onFirstVideoFrame(userId) 的首帧画面渲染回调。
|
|
569
610
|
*
|
|
570
|
-
* 当您收到了 onUserVideoAvailable(userId,
|
|
611
|
+
* 当您收到了 onUserVideoAvailable(userId, 0) 通知时,代表该路远程画面已经被关闭,这可能是
|
|
571
612
|
* 由于该用户调用了 [muteLocalVideo()]{@link TRTCCloud#muteLocalVideo} 或 [stopLocalPreview()]{@link TRTCCloud#stopLocalPreview} 所致。
|
|
572
613
|
*
|
|
573
614
|
* @event TRTCCallback#onUserVideoAvailable
|
|
@@ -593,7 +634,7 @@ class TRTCCloud extends events_1.EventEmitter {
|
|
|
593
634
|
/**
|
|
594
635
|
* 3.4 用户是否开启了辅路画面(TRTCVideoStreamTypeSub,一般用于屏幕分享)
|
|
595
636
|
*
|
|
596
|
-
* 注意:显示辅路画面使用的函数是
|
|
637
|
+
* 注意:显示辅路画面使用的函数是[startRemoteView()]{@link TRTCCloud#startRemoteView}, 从 8.0 版本开始已不再推荐使用 [startRemoteSubStreamView()]{@link TRTCCloud#startRemoteSubStreamView}。
|
|
597
638
|
*
|
|
598
639
|
* @event TRTCCallback#onUserSubStreamAvailable
|
|
599
640
|
* @param {String} userId - 用户标识
|
|
@@ -1039,8 +1080,9 @@ class TRTCCloud extends events_1.EventEmitter {
|
|
|
1039
1080
|
* @event TRTCCallback#onScreenCaptureStarted
|
|
1040
1081
|
*/
|
|
1041
1082
|
handleOnScreenCaptureStarted() {
|
|
1083
|
+
console.debug('trtc:onScreenCaptureStarted');
|
|
1042
1084
|
this.isScreenCapturing = true;
|
|
1043
|
-
// 只有在 Buffer 为 null 时才新建,否则只能在
|
|
1085
|
+
// 只有在 Buffer 为 null 时才新建,否则只能在 handleVideoSizeChange 事件中重新申请 Buffer
|
|
1044
1086
|
if (!screenVideoBuffer.buffer) {
|
|
1045
1087
|
screenVideoBuffer.userId = '';
|
|
1046
1088
|
screenVideoBuffer.streamType = this.screenCaptureStreamType;
|
|
@@ -1049,6 +1091,7 @@ class TRTCCloud extends events_1.EventEmitter {
|
|
|
1049
1091
|
screenVideoBuffer.width = DEFAULT_VIDEO_WIDTH;
|
|
1050
1092
|
screenVideoBuffer.height = DEFAULT_VIDEO_HEIGHT;
|
|
1051
1093
|
this.rtcCloud.setSubVideoBuffer('', screenVideoBuffer.buffer, screenVideoBuffer.streamType, screenVideoBuffer.width, screenVideoBuffer.height, screenVideoBuffer.pixelFormat);
|
|
1094
|
+
console.debug('trtc:onScreenCaptureStarted alloc add screenVideoBuffer', screenVideoBuffer);
|
|
1052
1095
|
}
|
|
1053
1096
|
this.fire('onScreenCaptureStarted');
|
|
1054
1097
|
}
|
|
@@ -1077,10 +1120,12 @@ class TRTCCloud extends events_1.EventEmitter {
|
|
|
1077
1120
|
* @param {Number} reason - 停止原因,0:表示用户主动停止;1:表示屏幕分享窗口被关闭
|
|
1078
1121
|
*/
|
|
1079
1122
|
handleOnScreenCaptureStopped(reason) {
|
|
1123
|
+
console.debug('trtc:onScreenCaptureStopped', reason);
|
|
1080
1124
|
if (this.isScreenCapturing) {
|
|
1081
1125
|
if (screenVideoBuffer.buffer) {
|
|
1082
1126
|
this.rtcCloud.setSubVideoBuffer('', screenVideoBuffer.buffer, screenVideoBuffer.streamType, 0, 0, screenVideoBuffer.pixelFormat);
|
|
1083
1127
|
screenVideoBuffer.buffer = null;
|
|
1128
|
+
console.debug('trtc:onScreenCaptureStopped delete screenVideoBuffer', screenVideoBuffer);
|
|
1084
1129
|
}
|
|
1085
1130
|
this.isScreenCapturing = false;
|
|
1086
1131
|
}
|
|
@@ -1173,7 +1218,8 @@ class TRTCCloud extends events_1.EventEmitter {
|
|
|
1173
1218
|
handleOnSystemAudioLoopbackError(errCode) {
|
|
1174
1219
|
this.fire('onSystemAudioLoopbackError', errCode);
|
|
1175
1220
|
}
|
|
1176
|
-
|
|
1221
|
+
handleVideoSizeChange(userId, streamType, width, height) {
|
|
1222
|
+
console.debug('trtc:handleVideoSizeChange', userId, streamType, width, height);
|
|
1177
1223
|
if (userId && userId !== CAMERA_DEVICE_TEST_ID) {
|
|
1178
1224
|
if (streamType !== trtc_define_1.TRTCVideoStreamType.TRTCVideoStreamTypeSub) {
|
|
1179
1225
|
const videoBufferInfo = remoteVideoBufferMap.get(userId);
|
|
@@ -1187,7 +1233,7 @@ class TRTCCloud extends events_1.EventEmitter {
|
|
|
1187
1233
|
}
|
|
1188
1234
|
}
|
|
1189
1235
|
else {
|
|
1190
|
-
console.error(`trtc:
|
|
1236
|
+
console.error(`trtc:handleVideoSizeChange error: ${userId} ${streamType} buffer not exist`);
|
|
1191
1237
|
}
|
|
1192
1238
|
}
|
|
1193
1239
|
else {
|
|
@@ -1334,7 +1380,7 @@ class TRTCCloud extends events_1.EventEmitter {
|
|
|
1334
1380
|
*
|
|
1335
1381
|
* @param {TRTCSwitchRoomParam} params 房间切换参数,请参考 {@link TRTCSwitchRoomParam}
|
|
1336
1382
|
*
|
|
1337
|
-
* 接口调用结果会通过
|
|
1383
|
+
* 接口调用结果会通过 onSwitchRoom(errCode, errMsg) 事件回调通知给您。
|
|
1338
1384
|
*/
|
|
1339
1385
|
switchRoom(params) {
|
|
1340
1386
|
this.rtcCloud.switchRoom(params.roomId, params.strRoomId, params.userSig, params.privateMapKey);
|
|
@@ -1367,13 +1413,13 @@ class TRTCCloud extends events_1.EventEmitter {
|
|
|
1367
1413
|
* <pre>
|
|
1368
1414
|
* 房间 001 房间 002
|
|
1369
1415
|
* ------------- ------------
|
|
1370
|
-
*
|
|
1416
|
+
* 跨房连麦前: | 主播 A | | 主播 B |
|
|
1371
1417
|
* | 观众 U V W | | 观众 X Y Z |
|
|
1372
1418
|
* ------------- ------------
|
|
1373
1419
|
*
|
|
1374
1420
|
* 房间 001 房间 002
|
|
1375
1421
|
* ------------- ------------
|
|
1376
|
-
*
|
|
1422
|
+
* 跨房连麦后: | 主播 A B | | 主播 B A |
|
|
1377
1423
|
* | 观众 U V W | | 观众 X Y Z |
|
|
1378
1424
|
* ------------- ------------
|
|
1379
1425
|
* </pre>
|
|
@@ -1510,6 +1556,8 @@ class TRTCCloud extends events_1.EventEmitter {
|
|
|
1510
1556
|
*
|
|
1511
1557
|
* 参考文档:[云端混流转码](https://cloud.tencent.com/document/product/647/16827)。
|
|
1512
1558
|
*
|
|
1559
|
+
* 注意:混流转码为收费功能,调用接口将产生云端混流转码费用,详见 [云端混流转码计费说明](https://cloud.tencent.com/document/product/647/49446)。
|
|
1560
|
+
*
|
|
1513
1561
|
* @note 关于云端混流的注意事项:
|
|
1514
1562
|
* - 云端转码会引入一定的 CDN 观看延时,大概会增加1 - 2秒。
|
|
1515
1563
|
* - 调用该函数的用户,会将连麦中的多路画面混合到自己当前这路画面中。
|
|
@@ -1531,7 +1579,7 @@ class TRTCCloud extends events_1.EventEmitter {
|
|
|
1531
1579
|
* @param {String} config.streamId - 输出到 CDN 上的直播流 ID
|
|
1532
1580
|
* @param {TRTCMixUser[]} config.mixUsersArray - 每一路子画面的位置信息
|
|
1533
1581
|
* @param {String} config.mixUsersArray[].userId - 参与混流的 userId
|
|
1534
|
-
* @param {String} config.mixUsersArray[].roomId - 参与混流的 roomId,跨房流传入的实际 roomId
|
|
1582
|
+
* @param {String} config.mixUsersArray[].roomId - 参与混流的 roomId,跨房流传入的实际 roomId。当前房间流,请传入空字符串(roomId = '')。
|
|
1535
1583
|
* @param {Rect} config.mixUsersArray[].rect - 图层位置坐标以及大小,左上角为坐标原点(0,0) (绝对像素值)
|
|
1536
1584
|
* @param {Number} config.mixUsersArray[].rect.left - 图层位置的左坐标
|
|
1537
1585
|
* @param {Number} config.mixUsersArray[].rect.top - 图层位置的上坐标
|
|
@@ -1600,7 +1648,7 @@ class TRTCCloud extends events_1.EventEmitter {
|
|
|
1600
1648
|
}
|
|
1601
1649
|
// view 为 null 时,可能启动了自定义渲染,所以 Buffer 还是要创建,否则自定义渲染就拿不到数据;
|
|
1602
1650
|
// view 非 null 时,当然必须创建 Buffer
|
|
1603
|
-
// 只有在 Buffer 为 null 时才新建,否则只能在
|
|
1651
|
+
// 只有在 Buffer 为 null 时才新建,否则只能在 handleVideoSizeChange 事件中重新申请 Buffer
|
|
1604
1652
|
if (!localVideoBuffer.buffer) {
|
|
1605
1653
|
localVideoBuffer.streamType = trtc_define_1.TRTCVideoStreamType.TRTCVideoStreamTypeBig;
|
|
1606
1654
|
localVideoBuffer.buffer = (0, util_1.allocBuffer)(DEFAULT_VIDEO_WIDTH * DEFAULT_VIDEO_HEIGHT * this.pixelLength, localVideoBuffer.userId, localVideoBuffer.streamType);
|
|
@@ -1632,10 +1680,17 @@ class TRTCCloud extends events_1.EventEmitter {
|
|
|
1632
1680
|
}
|
|
1633
1681
|
}
|
|
1634
1682
|
/**
|
|
1635
|
-
* 3.3
|
|
1683
|
+
* 3.3 暂停/恢复发布本地的视频流
|
|
1636
1684
|
*
|
|
1637
|
-
*
|
|
1638
|
-
*
|
|
1685
|
+
* 该接口可以暂停(或恢复)发布本地的视频画面,暂停之后,同一房间中的其他用户将无法继续看到自己画面。
|
|
1686
|
+
* 该接口在指定 TRTCVideoStreamTypeBig 时等效于 start/stopLocalPreview 这两个接口,但具有更好的响应速度。
|
|
1687
|
+
* 因为 start/stopLocalPreview 需要打开和关闭摄像头,而打开和关闭摄像头都是硬件设备相关的操作,非常耗时。
|
|
1688
|
+
* 相比之下,muteLocalVideo 只需要在软件层面对数据流进行暂停或者放行即可,因此效率更高,也更适合需要频繁打开关闭的场景。
|
|
1689
|
+
* 当暂停/恢复发布指定 TRTCVideoStreamTypeBig 后,同一房间中的其他用户将会收到 onUserVideoAvailable 回调通知。
|
|
1690
|
+
* 当暂停/恢复发布指定 TRTCVideoStreamTypeSub 后,同一房间中的其他用户将会收到 onUserSubStreamAvailable 回调通知。
|
|
1691
|
+
*
|
|
1692
|
+
* @param {Boolean} mute - true:屏蔽;false:开启,默认值:false
|
|
1693
|
+
* @param {TRTCVideoStreamType} streamType - 要暂停/恢复的视频流类型, 仅支持 TRTCVideoStreamTypeBig 和 TRTCVideoStreamTypeSub
|
|
1639
1694
|
*/
|
|
1640
1695
|
muteLocalVideo(mute, streamType) {
|
|
1641
1696
|
let newStreamType = streamType;
|
|
@@ -1647,7 +1702,7 @@ class TRTCCloud extends events_1.EventEmitter {
|
|
|
1647
1702
|
/**
|
|
1648
1703
|
* 3.4 开始显示远端视频画面
|
|
1649
1704
|
*
|
|
1650
|
-
* 在收到 SDK 的 onUserVideoAvailable(userId,
|
|
1705
|
+
* 在收到 SDK 的 onUserVideoAvailable(userId, 1) 通知时,可以获知该远程用户开启了视频,
|
|
1651
1706
|
* 此后调用 startRemoteView(userId) 接口加载该用户的远程画面时,可以用 loading 动画优化加载过程中的等待体验。
|
|
1652
1707
|
* 待该用户的首帧画面开始显示时,您会收到 onFirstVideoFrame(userId) 事件回调。
|
|
1653
1708
|
*
|
|
@@ -1682,14 +1737,14 @@ class TRTCCloud extends events_1.EventEmitter {
|
|
|
1682
1737
|
};
|
|
1683
1738
|
if (streamType !== trtc_define_1.TRTCVideoStreamType.TRTCVideoStreamTypeSub) {
|
|
1684
1739
|
if (!remoteVideoBufferMap.get(userId)) {
|
|
1685
|
-
// Buffer 不存在时才新建,否则只能在
|
|
1740
|
+
// Buffer 不存在时才新建,否则只能在 handleVideoSizeChange 事件中重新申请 Buffer
|
|
1686
1741
|
remoteVideoBufferMap.set(userId, videoBufferInfo);
|
|
1687
1742
|
this.rtcCloud.setRemoteVideoBuffer(userId, videoBufferInfo.buffer, videoBufferInfo.streamType, videoBufferInfo.width, videoBufferInfo.height, videoBufferInfo.pixelFormat);
|
|
1688
1743
|
}
|
|
1689
1744
|
}
|
|
1690
1745
|
else {
|
|
1691
1746
|
// 远端屏幕分享
|
|
1692
|
-
// Buffer 为 null 时才新建,否则只能在
|
|
1747
|
+
// Buffer 为 null 时才新建,否则只能在 handleVideoSizeChange 事件中重新申请 Buffer
|
|
1693
1748
|
if (!screenVideoBuffer.buffer) {
|
|
1694
1749
|
Object.assign(screenVideoBuffer, videoBufferInfo);
|
|
1695
1750
|
this.rtcCloud.setSubVideoBuffer(screenVideoBuffer.userId, screenVideoBuffer.buffer, screenVideoBuffer.streamType, screenVideoBuffer.width, screenVideoBuffer.height, screenVideoBuffer.pixelFormat);
|
|
@@ -1855,7 +1910,7 @@ class TRTCCloud extends events_1.EventEmitter {
|
|
|
1855
1910
|
}
|
|
1856
1911
|
}
|
|
1857
1912
|
/**
|
|
1858
|
-
* 3.13
|
|
1913
|
+
* 3.13 设置远端画面的渲染模式
|
|
1859
1914
|
*
|
|
1860
1915
|
* @param {String} userId - 用户 ID
|
|
1861
1916
|
* @param {TRTCVideoStreamType} streamType - 视频流类型
|
|
@@ -2097,7 +2152,11 @@ class TRTCCloud extends events_1.EventEmitter {
|
|
|
2097
2152
|
this.rtcCloud.muteRemoteAudio(userId, mute);
|
|
2098
2153
|
}
|
|
2099
2154
|
/**
|
|
2100
|
-
* 4.5
|
|
2155
|
+
* 4.5 静音/取消静音所有远端用户的音频流
|
|
2156
|
+
*
|
|
2157
|
+
* 当您静音所有用户的远端音频时,SDK 会停止播放所有来自远端的音频流,同时也会停止拉取所有用户的音频数据。
|
|
2158
|
+
*
|
|
2159
|
+
* 注意:该接口支持您在进入房间(enterRoom)前调用,暂停状态会在退出房间(exitRoom)在之后会被重置。
|
|
2101
2160
|
*
|
|
2102
2161
|
* @param {Boolean} mute - true:静音;false:非静音
|
|
2103
2162
|
*/
|
|
@@ -2157,10 +2216,11 @@ class TRTCCloud extends events_1.EventEmitter {
|
|
|
2157
2216
|
* 我们在 Demo 中有一个音量大小的提示条,就是基于这个接口实现的。
|
|
2158
2217
|
* 如希望打开此功能,请在 startLocalAudio() 之前调用。
|
|
2159
2218
|
*
|
|
2160
|
-
* @param {Number} interval
|
|
2219
|
+
* @param {Number} interval - 设置 onUserVoiceVolume 回调的触发间隔,单位为ms,最小间隔为100ms,如果小于等于0则会关闭回调,建议设置为300ms
|
|
2220
|
+
* @param {Boolean} enableVad - true: 打开人声检测;false: 关闭人声检测。目前仅 windows 支持。
|
|
2161
2221
|
*/
|
|
2162
|
-
enableAudioVolumeEvaluation(interval) {
|
|
2163
|
-
this.rtcCloud.enableAudioVolumeEvaluation(interval);
|
|
2222
|
+
enableAudioVolumeEvaluation(interval, enableVad = false) {
|
|
2223
|
+
this.rtcCloud.enableAudioVolumeEvaluation(interval, enableVad);
|
|
2164
2224
|
}
|
|
2165
2225
|
/**
|
|
2166
2226
|
* 4.12 开始录音
|
|
@@ -2215,6 +2275,15 @@ class TRTCCloud extends events_1.EventEmitter {
|
|
|
2215
2275
|
setAudioQuality(quality) {
|
|
2216
2276
|
this.audioQuality = quality;
|
|
2217
2277
|
}
|
|
2278
|
+
/**
|
|
2279
|
+
* 4.15 废弃接口:设置麦克风的音量大小
|
|
2280
|
+
*
|
|
2281
|
+
* @deprecated 从 TRTCSDK6.9 后该接口已被废弃,请使用 setAudioCaptureVolume 接口替代。
|
|
2282
|
+
* @param {Number} volume - 音量大小,100为正常音量,取值范围为0 - 200。
|
|
2283
|
+
*/
|
|
2284
|
+
setMicVolumeOnMixing(volume) {
|
|
2285
|
+
this.setAudioCaptureVolume(volume);
|
|
2286
|
+
}
|
|
2218
2287
|
/////////////////////////////////////////////////////////////////////////////////
|
|
2219
2288
|
//
|
|
2220
2289
|
// (五)摄像头相关接口函数
|
|
@@ -2224,7 +2293,7 @@ class TRTCCloud extends events_1.EventEmitter {
|
|
|
2224
2293
|
* 5.1 获取摄像头设备列表
|
|
2225
2294
|
*
|
|
2226
2295
|
* @example
|
|
2227
|
-
* var cameralist =
|
|
2296
|
+
* var cameralist = rtcCloud.getCameraDevicesList();
|
|
2228
2297
|
* for (i=0;i<cameralist.length;i++) {
|
|
2229
2298
|
* var camera = cameralist[i];
|
|
2230
2299
|
* console.info("camera deviceName: " + camera.deviceName + " deviceId:" + camera.deviceId);
|
|
@@ -2259,7 +2328,7 @@ class TRTCCloud extends events_1.EventEmitter {
|
|
|
2259
2328
|
* 6.1 获取麦克风设备列表
|
|
2260
2329
|
*
|
|
2261
2330
|
* @example
|
|
2262
|
-
* var miclist =
|
|
2331
|
+
* var miclist = rtcCloud.getMicDevicesList();
|
|
2263
2332
|
* for (i=0;i<miclist.length;i++) {
|
|
2264
2333
|
* var mic = miclist[i];
|
|
2265
2334
|
* console.info("mic deviceName: " + mic.deviceName + " deviceId:" + mic.deviceId);
|
|
@@ -2325,7 +2394,7 @@ class TRTCCloud extends events_1.EventEmitter {
|
|
|
2325
2394
|
* 6.8 获取扬声器设备列表
|
|
2326
2395
|
*
|
|
2327
2396
|
* @example
|
|
2328
|
-
* var speakerlist =
|
|
2397
|
+
* var speakerlist = rtcCloud.getSpeakerDevicesList();
|
|
2329
2398
|
* for (i=0;i<speakerlist.length;i++) {
|
|
2330
2399
|
* var speaker = speakerlist[i];
|
|
2331
2400
|
* console.info("mic deviceName: " + speaker.deviceName + " deviceId:" + speaker.deviceId);
|
|
@@ -2354,10 +2423,6 @@ class TRTCCloud extends events_1.EventEmitter {
|
|
|
2354
2423
|
/**
|
|
2355
2424
|
* 6.11 获取系统当前扬声器设备音量
|
|
2356
2425
|
*
|
|
2357
|
-
* 注意:
|
|
2358
|
-
* - SDK6.7 及以下版本,windows 查询的不是系统扬声器的音量大小,mac 是查询系统扬声器音量大小
|
|
2359
|
-
* - SDK6.8 及以上版本,windows 和 mac 查询的都是系统扬声器的音量大小
|
|
2360
|
-
*
|
|
2361
2426
|
* @return {Number} 扬声器音量,范围0 - 100
|
|
2362
2427
|
*/
|
|
2363
2428
|
getCurrentSpeakerVolume() {
|
|
@@ -2367,8 +2432,6 @@ class TRTCCloud extends events_1.EventEmitter {
|
|
|
2367
2432
|
* 6.12 设置系统当前扬声器设备音量
|
|
2368
2433
|
*
|
|
2369
2434
|
* 注意:该接口的功能是调节系统播放音量,如果用户直接调节系统设置的播放音量时,该接口的设置结果会被用户的操作所覆盖。
|
|
2370
|
-
* - SDK6.7 及以下版本,windows 设置的不是系统扬声器的音量大小,mac 是设置系统扬声器音量大小
|
|
2371
|
-
* - SDK6.8 及以上版本,windows 和 mac 设置的都是系统扬声器的音量大小
|
|
2372
2435
|
*
|
|
2373
2436
|
* @param {Number} volume - 设置的扬声器音量,范围0 - 100
|
|
2374
2437
|
*/
|
|
@@ -2518,7 +2581,7 @@ class TRTCCloud extends events_1.EventEmitter {
|
|
|
2518
2581
|
* 8.5 枚举可共享的窗口列表
|
|
2519
2582
|
*
|
|
2520
2583
|
* 如果您要给您的 App 增加屏幕分享功能,一般需要先显示一个窗口选择界面,这样用户可以选择希望分享的窗口。
|
|
2521
|
-
*
|
|
2584
|
+
* 通过此函数,您可以获得可分享窗口的 ID、类型、窗口名称以及缩略图。
|
|
2522
2585
|
* 拿到这些信息后,您就可以实现一个窗口选择界面,当然,您也可以使用我们在 Demo 源码中已经实现好的一个界面。
|
|
2523
2586
|
*
|
|
2524
2587
|
* 注意:返回的列表中包括屏幕和应用窗口,屏幕会在列表的前面几个元素中。
|
|
@@ -2564,6 +2627,7 @@ class TRTCCloud extends events_1.EventEmitter {
|
|
|
2564
2627
|
* @param {Boolean} highlightWindow - 指定是否高亮正在共享的窗口,以及当捕获图像被遮挡时高亮遮挡窗口提示用户移走遮挡
|
|
2565
2628
|
*/
|
|
2566
2629
|
selectScreenCaptureTarget(source, captureRect, property, deprecatedCaptureRect, captureMouse, highlightWindow) {
|
|
2630
|
+
console.debug('trtc:selectScreenCaptureTarget:', source, captureRect, property, deprecatedCaptureRect, captureMouse, highlightWindow);
|
|
2567
2631
|
if (source.sourceId && captureRect instanceof trtc_define_1.Rect && property instanceof trtc_define_1.TRTCScreenCaptureProperty) {
|
|
2568
2632
|
const realSource = source;
|
|
2569
2633
|
return this.rtcCloud.selectScreenCaptureTarget(realSource.type, realSource.sourceId, realSource.sourceName, realSource.isMinimizeWindow, captureRect.left, captureRect.top, captureRect.right, captureRect.bottom, property.enableCaptureMouse, property.enableHighLight, property.enableHighPerformance, property.highLightColor, property.highLightWidth, property.enableCaptureChildWindow);
|
|
@@ -2583,7 +2647,7 @@ class TRTCCloud extends events_1.EventEmitter {
|
|
|
2583
2647
|
}
|
|
2584
2648
|
}
|
|
2585
2649
|
/**
|
|
2586
|
-
* 8.7
|
|
2650
|
+
* 8.7 启动屏幕分享,支持选择使用主路或辅路进行屏幕分享。
|
|
2587
2651
|
*
|
|
2588
2652
|
* 注意:
|
|
2589
2653
|
* 一个用户同时最多只能上传一条主路(TRTCVideoStreamTypeBig)画面和一条辅路(TRTCVideoStreamTypeSub)画面,
|
|
@@ -2642,12 +2706,14 @@ class TRTCCloud extends events_1.EventEmitter {
|
|
|
2642
2706
|
this.screenCaptureStreamType = trtc_define_1.TRTCVideoStreamType.TRTCVideoStreamTypeSub;
|
|
2643
2707
|
}
|
|
2644
2708
|
/**
|
|
2645
|
-
* 8.11
|
|
2709
|
+
* 8.11 设置屏幕分享(即辅路)的视频编码参数
|
|
2646
2710
|
*
|
|
2647
|
-
*
|
|
2648
|
-
* -
|
|
2711
|
+
* 该接口可以设定远端用户所看到的屏幕分享(即辅路)的画面质量,同时也能决定云端录制出的视频文件中屏幕分享的画面质量。 请注意如下两个接口的差异:
|
|
2712
|
+
* - setVideoEncoderParam() 用于设置主路画面(TRTCVideoStreamTypeBig,一般用于摄像头)的视频编码参数。
|
|
2713
|
+
* - setSubStreamEncoderParam() 用于设置辅路画面(TRTCVideoStreamTypeSub,一般用于屏幕分享)的视频编码参数。
|
|
2649
2714
|
*
|
|
2650
|
-
*
|
|
2715
|
+
* 注意:
|
|
2716
|
+
* 即使您使用主路传输屏幕分享(在调用 startScreenCapture 时设置 type=TRTCVideoStreamTypeBig),依然要使用 setSubStreamEncoderParam 设定屏幕分享的编码参数,而不要使用 setVideoEncoderParam 。
|
|
2651
2717
|
*
|
|
2652
2718
|
* @param {TRTCVideoEncParam} params - 辅流(屏幕分享)编码参数
|
|
2653
2719
|
* @param {TRTCVideoResolution} params.videoResolution - 视频分辨率
|
|
@@ -3062,7 +3128,13 @@ class TRTCCloud extends events_1.EventEmitter {
|
|
|
3062
3128
|
return this.rtcCloud.seekMusicToPosInTime(id, pts);
|
|
3063
3129
|
}
|
|
3064
3130
|
/**
|
|
3065
|
-
* 11.19
|
|
3131
|
+
* 11.19 设置所有背景音乐的本地音量和远端音量的大小
|
|
3132
|
+
*
|
|
3133
|
+
* 该接口可以设置所有背景音乐的本地音量和远端音量。
|
|
3134
|
+
* - 本地音量:即主播本地可以听到的背景音乐的音量大小。
|
|
3135
|
+
* - 远端音量:即观众端可以听到的背景音乐的音量大小。
|
|
3136
|
+
*
|
|
3137
|
+
* 注意:如果将 volume 设置成 100 之后感觉音量还是太小,可以将 volume 最大设置成 150,但超过 100 的 volume 会有爆音的风险,请谨慎操作。
|
|
3066
3138
|
*
|
|
3067
3139
|
* @param {Number} volume - 音量大小,100为正常音量,取值范围为0 - 200。
|
|
3068
3140
|
*/
|
|
@@ -3231,17 +3303,7 @@ class TRTCCloud extends events_1.EventEmitter {
|
|
|
3231
3303
|
this.rtcCloud.stopSpeedTest();
|
|
3232
3304
|
}
|
|
3233
3305
|
/**
|
|
3234
|
-
* 13.3
|
|
3235
|
-
*
|
|
3236
|
-
* @param {TRTCDeviceType} deviceType - 设备类型
|
|
3237
|
-
* @param {Boolean} enable - 是否跟随系统默认的音频设备。 true:跟随, 当系统默认音频设备发生改变时,SDK 立即切换音频设备; false:不跟随, 只有当 SDK 使用的音频设备被移除后或插入新的音频设备为系统默认设备时,SDK 才切换至系统默认的音频设备。
|
|
3238
|
-
*
|
|
3239
|
-
*/
|
|
3240
|
-
enableFollowingDefaultAudioDevice(deviceType, enable) {
|
|
3241
|
-
this.rtcCloud.enableFollowingDefaultAudioDevice(deviceType, enable);
|
|
3242
|
-
}
|
|
3243
|
-
/**
|
|
3244
|
-
* 13.4 开始进行摄像头测试
|
|
3306
|
+
* 13.3 开始进行摄像头测试
|
|
3245
3307
|
*
|
|
3246
3308
|
* 会触发 onFirstVideoFrame 回调接口
|
|
3247
3309
|
*
|
|
@@ -3252,12 +3314,12 @@ class TRTCCloud extends events_1.EventEmitter {
|
|
|
3252
3314
|
startCameraDeviceTest(view) {
|
|
3253
3315
|
if (view !== undefined) {
|
|
3254
3316
|
if (view !== null) {
|
|
3255
|
-
|
|
3317
|
+
const key = this.getKey(CAMERA_DEVICE_TEST_VIEW, trtc_define_1.TRTCVideoStreamType.TRTCVideoStreamTypeBig);
|
|
3256
3318
|
this._initRender(key, view);
|
|
3257
3319
|
const renderer = this.streams.get(key);
|
|
3258
3320
|
renderer.setContentMode(trtc_define_1.TRTCVideoFillMode.TRTCVideoFillMode_Fill);
|
|
3259
3321
|
}
|
|
3260
|
-
// Buffer 为 null 时才新建,否则只能在
|
|
3322
|
+
// Buffer 为 null 时才新建,否则只能在 handleVideoSizeChange 事件中重新申请 Buffer
|
|
3261
3323
|
if (!cameraTestVideoBuffer.buffer) {
|
|
3262
3324
|
const streamType = trtc_define_1.TRTCVideoStreamType.TRTCVideoStreamTypeBig;
|
|
3263
3325
|
cameraTestVideoBuffer.streamType = streamType;
|
|
@@ -3267,9 +3329,14 @@ class TRTCCloud extends events_1.EventEmitter {
|
|
|
3267
3329
|
cameraTestVideoBuffer.height = DEFAULT_VIDEO_HEIGHT;
|
|
3268
3330
|
this.rtcCloud.setCameraTestVideoBuffer(cameraTestVideoBuffer.buffer, cameraTestVideoBuffer.width, cameraTestVideoBuffer.height, cameraTestVideoBuffer.pixelFormat);
|
|
3269
3331
|
}
|
|
3270
|
-
this.rtcCloud.startCameraDeviceTest((id, type, width, height, timestamp, rotation) => {
|
|
3332
|
+
this.rtcCloud.startCameraDeviceTest((id, type, width, height, timestamp, rotation, valid) => {
|
|
3271
3333
|
if (this.enableRenderFrame) {
|
|
3272
|
-
|
|
3334
|
+
if (valid === 1) {
|
|
3335
|
+
this._onRenderFrame(id, type, width, height, timestamp, rotation, cameraTestVideoBuffer.buffer);
|
|
3336
|
+
}
|
|
3337
|
+
else {
|
|
3338
|
+
this.handleVideoSizeChange(id, type, width, height);
|
|
3339
|
+
}
|
|
3273
3340
|
}
|
|
3274
3341
|
});
|
|
3275
3342
|
}
|
|
@@ -3278,7 +3345,7 @@ class TRTCCloud extends events_1.EventEmitter {
|
|
|
3278
3345
|
}
|
|
3279
3346
|
}
|
|
3280
3347
|
/**
|
|
3281
|
-
* 13.
|
|
3348
|
+
* 13.4 停止摄像头测试
|
|
3282
3349
|
*/
|
|
3283
3350
|
stopCameraDeviceTest() {
|
|
3284
3351
|
let key = this.getKey(CAMERA_DEVICE_TEST_VIEW, trtc_define_1.TRTCVideoStreamType.TRTCVideoStreamTypeBig);
|
|
@@ -3293,25 +3360,26 @@ class TRTCCloud extends events_1.EventEmitter {
|
|
|
3293
3360
|
}
|
|
3294
3361
|
}
|
|
3295
3362
|
/**
|
|
3296
|
-
* 13.
|
|
3363
|
+
* 13.5 开始进行麦克风测试
|
|
3297
3364
|
*
|
|
3298
3365
|
* 回调接口 onTestMicVolume 获取测试数据
|
|
3299
3366
|
*
|
|
3300
3367
|
* 该方法测试麦克风是否能正常工作,volume 的取值范围为0 - 100。
|
|
3301
3368
|
*
|
|
3302
3369
|
* @param {Number} interval - 反馈音量提示的时间间隔(ms),建议设置到大于 200 毫秒
|
|
3370
|
+
* @param {Boolean} playback - 是否开启回播麦克风声音,开启后用户测试麦克风时会听到自己的声音。默认值 true
|
|
3303
3371
|
*/
|
|
3304
|
-
startMicDeviceTest(interval) {
|
|
3305
|
-
this.rtcCloud.startMicDeviceTest(interval);
|
|
3372
|
+
startMicDeviceTest(interval, playback = true) {
|
|
3373
|
+
this.rtcCloud.startMicDeviceTest(interval, playback);
|
|
3306
3374
|
}
|
|
3307
3375
|
/**
|
|
3308
|
-
* 13.
|
|
3376
|
+
* 13.6 停止麦克风测试
|
|
3309
3377
|
*/
|
|
3310
3378
|
stopMicDeviceTest() {
|
|
3311
3379
|
this.rtcCloud.stopMicDeviceTest();
|
|
3312
3380
|
}
|
|
3313
3381
|
/**
|
|
3314
|
-
* 13.
|
|
3382
|
+
* 13.7 开始进行扬声器测试
|
|
3315
3383
|
*
|
|
3316
3384
|
* 回调接口 onTestSpeakerVolume 获取测试数据
|
|
3317
3385
|
*
|
|
@@ -3324,7 +3392,7 @@ class TRTCCloud extends events_1.EventEmitter {
|
|
|
3324
3392
|
this.rtcCloud.startSpeakerDeviceTest(testAudioFilePath);
|
|
3325
3393
|
}
|
|
3326
3394
|
/**
|
|
3327
|
-
* 13.
|
|
3395
|
+
* 13.8 停止扬声器测试
|
|
3328
3396
|
*/
|
|
3329
3397
|
stopSpeakerDeviceTest() {
|
|
3330
3398
|
this.rtcCloud.stopSpeakerDeviceTest();
|
|
@@ -3413,25 +3481,16 @@ class TRTCCloud extends events_1.EventEmitter {
|
|
|
3413
3481
|
// (十五) 废弃接口函数
|
|
3414
3482
|
//
|
|
3415
3483
|
/////////////////////////////////////////////////////////////////////////////////
|
|
3416
|
-
/**
|
|
3417
|
-
* 从 TRTCSDK6.9 后该接口已被废弃
|
|
3418
|
-
*
|
|
3419
|
-
* @deprecated 从 TRTCSDK6.9 后该接口已被废弃,请使用 setAudioCaptureVolume 接口替代。
|
|
3420
|
-
* @param {Number} volume - 音量大小,100为正常音量,取值范围为0 - 200。
|
|
3421
|
-
*/
|
|
3422
|
-
setMicVolumeOnMixing(volume) {
|
|
3423
|
-
this.setAudioCaptureVolume(volume);
|
|
3424
|
-
}
|
|
3425
3484
|
///------------------------内部方法-----------------------------
|
|
3426
3485
|
addLocalVideoRenderCallback() {
|
|
3427
|
-
if ([
|
|
3428
|
-
this.pixelformate = trtc_define_1.TRTCVideoPixelFormat.TRTCVideoPixelFormat_I420;
|
|
3429
|
-
this.pixelLength = 1.5;
|
|
3430
|
-
}
|
|
3431
|
-
else if (this.isExternalRenderEnabled || [3, 4, 6].indexOf(this.renderMode) !== -1) {
|
|
3486
|
+
if (this.isExternalRenderEnabled || [3, 4, 6].indexOf(this.renderMode) !== -1) {
|
|
3432
3487
|
this.pixelformate = trtc_define_1.TRTCVideoPixelFormat.TRTCVideoPixelFormat_RGBA32;
|
|
3433
3488
|
this.pixelLength = 4;
|
|
3434
3489
|
}
|
|
3490
|
+
else if ([1, 2, 5].indexOf(this.renderMode) !== -1) {
|
|
3491
|
+
this.pixelformate = trtc_define_1.TRTCVideoPixelFormat.TRTCVideoPixelFormat_I420;
|
|
3492
|
+
this.pixelLength = 1.5;
|
|
3493
|
+
}
|
|
3435
3494
|
else if ([7, 8].indexOf(this.renderMode) !== -1) {
|
|
3436
3495
|
this.pixelformate = trtc_define_1.TRTCVideoPixelFormat.TRTCVideoPixelFormat_BGRA32;
|
|
3437
3496
|
this.pixelLength = 4;
|
|
@@ -3440,24 +3499,31 @@ class TRTCCloud extends events_1.EventEmitter {
|
|
|
3440
3499
|
console.error('trtc: not supported renderMode:', this.renderMode);
|
|
3441
3500
|
return;
|
|
3442
3501
|
}
|
|
3443
|
-
this.rtcCloud.addLocalVideoRenderCallback((id, type, width, height, timestamp, rotation) => {
|
|
3444
|
-
if (this.
|
|
3445
|
-
|
|
3446
|
-
|
|
3447
|
-
|
|
3448
|
-
|
|
3502
|
+
this.rtcCloud.addLocalVideoRenderCallback((id, type, width, height, timestamp, rotation, valid) => {
|
|
3503
|
+
if (this.enableRenderFrame) {
|
|
3504
|
+
if (valid === 1) {
|
|
3505
|
+
if (this.isScreenCapturing && this.screenCaptureStreamType === type) {
|
|
3506
|
+
this._onRenderFrame(id, type, width, height, timestamp, rotation, screenVideoBuffer.buffer);
|
|
3507
|
+
}
|
|
3508
|
+
else {
|
|
3509
|
+
this._onRenderFrame(id, type, width, height, timestamp, rotation, localVideoBuffer.buffer);
|
|
3510
|
+
}
|
|
3511
|
+
}
|
|
3512
|
+
else {
|
|
3513
|
+
this.handleVideoSizeChange(id, type, width, height);
|
|
3514
|
+
}
|
|
3449
3515
|
}
|
|
3450
3516
|
}, this.pixelformate);
|
|
3451
3517
|
}
|
|
3452
3518
|
addRemoteVideoRenderCallback(userId) {
|
|
3453
|
-
if ([
|
|
3454
|
-
this.pixelformate = trtc_define_1.TRTCVideoPixelFormat.TRTCVideoPixelFormat_I420;
|
|
3455
|
-
this.pixelLength = 1.5;
|
|
3456
|
-
}
|
|
3457
|
-
else if (this.isExternalRenderEnabled || [3, 4, 6].indexOf(this.renderMode) !== -1) {
|
|
3519
|
+
if (this.isExternalRenderEnabled || [3, 4, 6].indexOf(this.renderMode) !== -1) {
|
|
3458
3520
|
this.pixelformate = trtc_define_1.TRTCVideoPixelFormat.TRTCVideoPixelFormat_RGBA32;
|
|
3459
3521
|
this.pixelLength = 4;
|
|
3460
3522
|
}
|
|
3523
|
+
else if ([1, 2, 5].indexOf(this.renderMode) !== -1) {
|
|
3524
|
+
this.pixelformate = trtc_define_1.TRTCVideoPixelFormat.TRTCVideoPixelFormat_I420;
|
|
3525
|
+
this.pixelLength = 1.5;
|
|
3526
|
+
}
|
|
3461
3527
|
else if ([7, 8].indexOf(this.renderMode) !== -1) {
|
|
3462
3528
|
this.pixelformate = trtc_define_1.TRTCVideoPixelFormat.TRTCVideoPixelFormat_BGRA32;
|
|
3463
3529
|
this.pixelLength = 4;
|
|
@@ -3466,13 +3532,20 @@ class TRTCCloud extends events_1.EventEmitter {
|
|
|
3466
3532
|
console.error('trtc: not supported renderMode:', this.renderMode);
|
|
3467
3533
|
return;
|
|
3468
3534
|
}
|
|
3469
|
-
this.rtcCloud.addRemoteVideoRenderCallback(userId, (id, type, width, height, timestamp, rotation) => {
|
|
3470
|
-
|
|
3471
|
-
|
|
3472
|
-
|
|
3473
|
-
|
|
3474
|
-
|
|
3475
|
-
|
|
3535
|
+
this.rtcCloud.addRemoteVideoRenderCallback(userId, (id, type, width, height, timestamp, rotation, valid) => {
|
|
3536
|
+
if (this.enableRenderFrame) {
|
|
3537
|
+
if (valid === 1) {
|
|
3538
|
+
const videoBufferInfo = remoteVideoBufferMap.get(id);
|
|
3539
|
+
if (videoBufferInfo && videoBufferInfo.streamType === type) {
|
|
3540
|
+
this._onRenderFrame(id, type, width, height, timestamp, rotation, videoBufferInfo.buffer);
|
|
3541
|
+
}
|
|
3542
|
+
else {
|
|
3543
|
+
this._onRenderFrame(id, type, width, height, timestamp, rotation, screenVideoBuffer.buffer);
|
|
3544
|
+
}
|
|
3545
|
+
}
|
|
3546
|
+
else {
|
|
3547
|
+
this.handleVideoSizeChange(id, type, width, height);
|
|
3548
|
+
}
|
|
3476
3549
|
}
|
|
3477
3550
|
}, this.pixelformate);
|
|
3478
3551
|
}
|
|
@@ -3500,14 +3573,14 @@ class TRTCCloud extends events_1.EventEmitter {
|
|
|
3500
3573
|
this.streams.forEach((value, key, map) => {
|
|
3501
3574
|
oldStreams.set(key, value);
|
|
3502
3575
|
});
|
|
3503
|
-
if ([
|
|
3504
|
-
this.pixelformate = trtc_define_1.TRTCVideoPixelFormat.TRTCVideoPixelFormat_I420;
|
|
3505
|
-
this.pixelLength = 1.5;
|
|
3506
|
-
}
|
|
3507
|
-
else if (this.isExternalRenderEnabled || [3, 4, 6].indexOf(mode) !== -1) {
|
|
3576
|
+
if (this.isExternalRenderEnabled || [3, 4, 6].indexOf(mode) !== -1) {
|
|
3508
3577
|
this.pixelformate = trtc_define_1.TRTCVideoPixelFormat.TRTCVideoPixelFormat_RGBA32;
|
|
3509
3578
|
this.pixelLength = 4;
|
|
3510
3579
|
}
|
|
3580
|
+
else if ([1, 2, 5].indexOf(mode) !== -1) {
|
|
3581
|
+
this.pixelformate = trtc_define_1.TRTCVideoPixelFormat.TRTCVideoPixelFormat_I420;
|
|
3582
|
+
this.pixelLength = 1.5;
|
|
3583
|
+
}
|
|
3511
3584
|
else {
|
|
3512
3585
|
// 7,8
|
|
3513
3586
|
this.pixelformate = trtc_define_1.TRTCVideoPixelFormat.TRTCVideoPixelFormat_BGRA32;
|
|
@@ -3871,7 +3944,7 @@ class TRTCCloud extends events_1.EventEmitter {
|
|
|
3871
3944
|
}
|
|
3872
3945
|
else if (format == trtc_define_1.TRTCVideoPixelFormat.TRTCVideoPixelFormat_BGRA32) {
|
|
3873
3946
|
if (this.renderMode !== 3) {
|
|
3874
|
-
videoframe.data = this._YUV2RGBA(width, height, data);
|
|
3947
|
+
videoframe.data = this._YUV2RGBA(width, height, data.buffer || data);
|
|
3875
3948
|
videoframe.length = width * height * 4;
|
|
3876
3949
|
callback(userid, streamType, videoframe);
|
|
3877
3950
|
}
|
package/liteav/trtc_define.d.ts
CHANGED
|
@@ -63,10 +63,7 @@ export declare enum TRTCVideoPixelFormat {
|
|
|
63
63
|
TRTCVideoPixelFormat_Unknown = 0,
|
|
64
64
|
TRTCVideoPixelFormat_I420 = 1,
|
|
65
65
|
TRTCVideoPixelFormat_BGRA32 = 3,
|
|
66
|
-
|
|
67
|
-
TRTCVideoPixelFormat_RGBA32 = 5,
|
|
68
|
-
/** H264 */
|
|
69
|
-
TRTCVideoPixelFormat_H264 = 6
|
|
66
|
+
TRTCVideoPixelFormat_RGBA32 = 5
|
|
70
67
|
}
|
|
71
68
|
export declare enum TRTCVideoBufferType {
|
|
72
69
|
TRTCVideoBufferType_Unknown = 0,
|
|
@@ -377,12 +374,14 @@ export declare class TRTCQualityInfo {
|
|
|
377
374
|
*
|
|
378
375
|
* @param {String} userId - 说话者的 userId,字符编码格式是 UTF-8
|
|
379
376
|
* @param {Number} volume - 说话者的音量, 取值范围0 - 100
|
|
377
|
+
* @param {Number} vad - 是否检测到人声。0:非人声 1:人声 -1: 不支持检测 (mac 平台暂不支持)
|
|
380
378
|
*
|
|
381
379
|
*/
|
|
382
380
|
export declare class TRTCVolumeInfo {
|
|
383
381
|
userId: string;
|
|
384
382
|
volume: number;
|
|
385
|
-
|
|
383
|
+
vad: number;
|
|
384
|
+
constructor(userId?: string, volume?: number, vad?: number);
|
|
386
385
|
}
|
|
387
386
|
/**
|
|
388
387
|
* 5.7 测速参数
|
|
@@ -590,7 +589,7 @@ export declare class TRTCAudioRecordingParams {
|
|
|
590
589
|
constructor(filePath?: null | string, recordingContent?: TRTCAudioRecordingContent);
|
|
591
590
|
}
|
|
592
591
|
/**
|
|
593
|
-
* 5.
|
|
592
|
+
* 5.16 音效
|
|
594
593
|
*
|
|
595
594
|
* @param {Number} effectId - 【字段含义】音效 ID<br>
|
|
596
595
|
* 【特殊说明】SDK 允许播放多路音效,因此需要音效 ID 进行标记,用于控制音效的开始、停止、音量等
|
package/liteav/trtc_define.js
CHANGED
|
@@ -257,9 +257,8 @@ const TRTCVideoPixelFormat_HACK_JSDOC = {
|
|
|
257
257
|
// TRTCVideoPixelFormat_Texture_2D: 2,
|
|
258
258
|
/** BGRA32 */
|
|
259
259
|
TRTCVideoPixelFormat_BGRA32: 3,
|
|
260
|
-
/** RGBA */
|
|
261
260
|
TRTCVideoPixelFormat_RGBA32: 5,
|
|
262
|
-
TRTCVideoPixelFormat_H264: 6,
|
|
261
|
+
// TRTCVideoPixelFormat_H264: 6,
|
|
263
262
|
};
|
|
264
263
|
var TRTCVideoPixelFormat;
|
|
265
264
|
(function (TRTCVideoPixelFormat) {
|
|
@@ -267,10 +266,8 @@ var TRTCVideoPixelFormat;
|
|
|
267
266
|
TRTCVideoPixelFormat[TRTCVideoPixelFormat["TRTCVideoPixelFormat_I420"] = 1] = "TRTCVideoPixelFormat_I420";
|
|
268
267
|
// TRTCVideoPixelFormat_Texture_2D= 2,
|
|
269
268
|
TRTCVideoPixelFormat[TRTCVideoPixelFormat["TRTCVideoPixelFormat_BGRA32"] = 3] = "TRTCVideoPixelFormat_BGRA32";
|
|
270
|
-
/** RGBA */
|
|
271
269
|
TRTCVideoPixelFormat[TRTCVideoPixelFormat["TRTCVideoPixelFormat_RGBA32"] = 5] = "TRTCVideoPixelFormat_RGBA32";
|
|
272
|
-
|
|
273
|
-
TRTCVideoPixelFormat[TRTCVideoPixelFormat["TRTCVideoPixelFormat_H264"] = 6] = "TRTCVideoPixelFormat_H264";
|
|
270
|
+
// TRTCVideoPixelFormat_H264 = 6,
|
|
274
271
|
})(TRTCVideoPixelFormat = exports.TRTCVideoPixelFormat || (exports.TRTCVideoPixelFormat = {}));
|
|
275
272
|
;
|
|
276
273
|
/**
|
|
@@ -882,12 +879,14 @@ exports.TRTCQualityInfo = TRTCQualityInfo;
|
|
|
882
879
|
*
|
|
883
880
|
* @param {String} userId - 说话者的 userId,字符编码格式是 UTF-8
|
|
884
881
|
* @param {Number} volume - 说话者的音量, 取值范围0 - 100
|
|
882
|
+
* @param {Number} vad - 是否检测到人声。0:非人声 1:人声 -1: 不支持检测 (mac 平台暂不支持)
|
|
885
883
|
*
|
|
886
884
|
*/
|
|
887
885
|
class TRTCVolumeInfo {
|
|
888
|
-
constructor(userId = '', volume = 0) {
|
|
886
|
+
constructor(userId = '', volume = 0, vad = -1) {
|
|
889
887
|
this.userId = userId;
|
|
890
888
|
this.volume = volume;
|
|
889
|
+
this.vad = vad;
|
|
891
890
|
}
|
|
892
891
|
}
|
|
893
892
|
exports.TRTCVolumeInfo = TRTCVolumeInfo;
|
|
@@ -1199,7 +1198,7 @@ class TRTCAudioRecordingParams {
|
|
|
1199
1198
|
exports.TRTCAudioRecordingParams = TRTCAudioRecordingParams;
|
|
1200
1199
|
;
|
|
1201
1200
|
/**
|
|
1202
|
-
* 5.
|
|
1201
|
+
* 5.16 音效
|
|
1203
1202
|
*
|
|
1204
1203
|
* @param {Number} effectId - 【字段含义】音效 ID<br>
|
|
1205
1204
|
* 【特殊说明】SDK 允许播放多路音效,因此需要音效 ID 进行标记,用于控制音效的开始、停止、音量等
|