trtc-electron-sdk
Version:
trtc electron sdk
1,090 lines • 128 kB
JavaScript
"use strict";
/**
* TRTC 关键类型定义
*
* @description 分辨率、质量等级等枚举和常量值的定义
*
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.TRTCTranscodingConfig = exports.TRTCPluginType = exports.TRTCVoiceChangerType = exports.TRTCVoiceReverbType = exports.TRTCPublishMode = exports.TRTCAudioRecordingContent = exports.TRTCMixInputType = exports.TRTCTranscodingConfigMode = exports.TRTCMixUser = exports.Rect = exports.TRTCSpeedTestResult = exports.TRTCSpeedTestParams = exports.TRTCVolumeInfo = exports.TRTCQualityInfo = exports.TRTCNetworkQosParam = exports.TRTCRenderParams = exports.TRTCVideoEncParam = exports.TRTCParams = exports.TRTCWaterMarkSrcType = exports.TRTCVideoEncodeComplexity = exports.TRTCVideoColorSpace = exports.TRTCVideoColorRange = exports.TRTCCameraCaptureMode = exports.TRTCDeviceType = exports.TRTCDeviceState = exports.TRTCLogLevel = exports.TRTCAudioFrame = exports.TRTCVideoFrame = exports.TRTCDeviceInfo = exports.TRTCScreenCaptureProperty = exports.TRTCScreenCaptureSourceInfo = exports.TRTCImageBuffer = exports.TRTCAudioQuality = exports.TRTCScreenCaptureSourceType = exports.TRTCAudioFrameFormat = exports.TRTCVideoQosPreference = exports.TRTCQosControlMode = exports.TRTCRoleType = exports.TRTCAppScene = exports.TRTCRecordType = exports.TRTCVideoMirrorType = exports.TRTCVideoBufferType = exports.TRTCVideoPixelFormat = exports.TRTCBeautyStyle = exports.TRTCVideoRotation = exports.TRTCVideoFillMode = exports.TRTCQuality = exports.TRTCVideoStreamType = exports.TRTCVideoResolutionMode = exports.TRTCVideoResolution = void 0;
exports.VideoBufferInfo = exports.TRTCSwitchRoomParam = exports.AudioMusicParam = exports.TRTCStatistics = exports.TRTCRemoteStatistics = exports.TRTCLocalStatistics = exports.TRTCAudioEffectParam = exports.TRTCAudioRecordingParams = exports.TRTCPublishCDNParam = void 0;
const util_1 = require("./Renderer/util");
/////////////////////////////////////////////////////////////////////////////////
//
// 【(一)视频相关枚举值定义】
//
/////////////////////////////////////////////////////////////////////////////////
/**
* 视频分辨率
*
* 此处仅定义了横屏分辨率,如果要使用360 × 640这样的竖屏分辨率,需要同时指定 TRTCVideoResolutionMode 为 Portrait。
*
* @enum {Number}
*/
const TRTCVideoResolution_HACK_JSDOC = {
/** 宽高比 1:1;分辨率 120x120;建议码率(VideoCall)80kbps; 建议码率(LIVE)120kbps。 */
TRTCVideoResolution_120_120: 1,
/** 宽高比 1:1 分辨率 160x160;建议码率(VideoCall)100kbps; 建议码率(LIVE)150kbps。 */
TRTCVideoResolution_160_160: 3,
/** 宽高比 1:1;分辨率 270x270;建议码率(VideoCall)200kbps; 建议码率(LIVE)300kbps。 */
TRTCVideoResolution_270_270: 5,
/** 宽高比 1:1;分辨率 480x480;建议码率(VideoCall)350kbps; 建议码率(LIVE)500kbps。 */
TRTCVideoResolution_480_480: 7,
/** 宽高比4:3;分辨率 160x120;建议码率(VideoCall)100kbps; 建议码率(LIVE)150kbps。 */
TRTCVideoResolution_160_120: 50,
/** 宽高比 4:3;分辨率 240x180;建议码率(VideoCall)150kbps; 建议码率(LIVE)250kbps。 */
TRTCVideoResolution_240_180: 52,
/** 宽高比 4:3;分辨率 280x210;建议码率(VideoCall)200kbps; 建议码率(LIVE)300kbps。 */
TRTCVideoResolution_280_210: 54,
/** 宽高比 4:3;分辨率 320x240;建议码率(VideoCall)250kbps; 建议码率(LIVE)375kbps。 */
TRTCVideoResolution_320_240: 56,
/** 宽高比 4:3;分辨率 400x300;建议码率(VideoCall)300kbps; 建议码率(LIVE)450kbps。 */
TRTCVideoResolution_400_300: 58,
/** 宽高比 4:3;分辨率 480x360;建议码率(VideoCall)400kbps; 建议码率(LIVE)600kbps。 */
TRTCVideoResolution_480_360: 60,
/** 宽高比 4:3;分辨率 640x480;建议码率(VideoCall)600kbps; 建议码率(LIVE)900kbps。 */
TRTCVideoResolution_640_480: 62,
/** 宽高比 4:3;分辨率 960x720;建议码率(VideoCall)1000kbps; 建议码率(LIVE)1500kbps。 */
TRTCVideoResolution_960_720: 64,
/** 宽高比 16:9;分辨率 160x90;建议码率(VideoCall)150kbps; 建议码率(LIVE)250kbps。*/
TRTCVideoResolution_160_90: 100,
/** 宽高比 16:9;分辨率 256x144;建议码率(VideoCall)200kbps; 建议码率(LIVE)300kbps。 */
TRTCVideoResolution_256_144: 102,
/** 宽高比 16:9;分辨率 320x180;建议码率(VideoCall)250kbps; 建议码率(LIVE)400kbps。 */
TRTCVideoResolution_320_180: 104,
/**宽高比 16:9;分辨率 480x270;建议码率(VideoCall)350kbps; 建议码率(LIVE)550kbps。 */
TRTCVideoResolution_480_270: 106,
/** 宽高比 16:9;分辨率 640x360;建议码率(VideoCall)500kbps; 建议码率(LIVE)900kbps。 */
TRTCVideoResolution_640_360: 108,
/** 宽高比 16:9;分辨率 960x540;建议码率(VideoCall)850kbps; 建议码率(LIVE)1300kbps。 */
TRTCVideoResolution_960_540: 110,
/** 宽高比 16:9;分辨率 1280x720;建议码率(VideoCall)1200kbps; 建议码率(LIVE)1800kbps。 */
TRTCVideoResolution_1280_720: 112,
/** 宽高比 16:9;分辨率 1920x1080;建议码率(VideoCall)2000kbps; 建议码率(LIVE)3000kbps。 */
TRTCVideoResolution_1920_1080: 114,
/** 宽高比 16:9;分辨率 2560x1440;建议码率(VideoCall)4000kbps; 建议码率(LIVE)6000kbps。注意:仅支持高清直播。 */
TRTCVideoResolution_2560_1440: 116,
};
var TRTCVideoResolution;
(function (TRTCVideoResolution) {
TRTCVideoResolution[TRTCVideoResolution["TRTCVideoResolution_120_120"] = 1] = "TRTCVideoResolution_120_120";
TRTCVideoResolution[TRTCVideoResolution["TRTCVideoResolution_160_160"] = 3] = "TRTCVideoResolution_160_160";
TRTCVideoResolution[TRTCVideoResolution["TRTCVideoResolution_270_270"] = 5] = "TRTCVideoResolution_270_270";
TRTCVideoResolution[TRTCVideoResolution["TRTCVideoResolution_480_480"] = 7] = "TRTCVideoResolution_480_480";
TRTCVideoResolution[TRTCVideoResolution["TRTCVideoResolution_160_120"] = 50] = "TRTCVideoResolution_160_120";
TRTCVideoResolution[TRTCVideoResolution["TRTCVideoResolution_240_180"] = 52] = "TRTCVideoResolution_240_180";
TRTCVideoResolution[TRTCVideoResolution["TRTCVideoResolution_280_210"] = 54] = "TRTCVideoResolution_280_210";
TRTCVideoResolution[TRTCVideoResolution["TRTCVideoResolution_320_240"] = 56] = "TRTCVideoResolution_320_240";
TRTCVideoResolution[TRTCVideoResolution["TRTCVideoResolution_400_300"] = 58] = "TRTCVideoResolution_400_300";
TRTCVideoResolution[TRTCVideoResolution["TRTCVideoResolution_480_360"] = 60] = "TRTCVideoResolution_480_360";
TRTCVideoResolution[TRTCVideoResolution["TRTCVideoResolution_640_480"] = 62] = "TRTCVideoResolution_640_480";
TRTCVideoResolution[TRTCVideoResolution["TRTCVideoResolution_960_720"] = 64] = "TRTCVideoResolution_960_720";
TRTCVideoResolution[TRTCVideoResolution["TRTCVideoResolution_160_90"] = 100] = "TRTCVideoResolution_160_90";
TRTCVideoResolution[TRTCVideoResolution["TRTCVideoResolution_256_144"] = 102] = "TRTCVideoResolution_256_144";
TRTCVideoResolution[TRTCVideoResolution["TRTCVideoResolution_320_180"] = 104] = "TRTCVideoResolution_320_180";
TRTCVideoResolution[TRTCVideoResolution["TRTCVideoResolution_480_270"] = 106] = "TRTCVideoResolution_480_270";
TRTCVideoResolution[TRTCVideoResolution["TRTCVideoResolution_640_360"] = 108] = "TRTCVideoResolution_640_360";
TRTCVideoResolution[TRTCVideoResolution["TRTCVideoResolution_960_540"] = 110] = "TRTCVideoResolution_960_540";
TRTCVideoResolution[TRTCVideoResolution["TRTCVideoResolution_1280_720"] = 112] = "TRTCVideoResolution_1280_720";
TRTCVideoResolution[TRTCVideoResolution["TRTCVideoResolution_1920_1080"] = 114] = "TRTCVideoResolution_1920_1080";
TRTCVideoResolution[TRTCVideoResolution["TRTCVideoResolution_2560_1440"] = 116] = "TRTCVideoResolution_2560_1440";
})(TRTCVideoResolution = exports.TRTCVideoResolution || (exports.TRTCVideoResolution = {}));
/**
* 视频分辨率模式
*
* - 横屏分辨率:TRTCVideoResolution_640_360 + TRTCVideoResolutionModeLandscape = 640 × 360
* - 竖屏分辨率:TRTCVideoResolution_640_360 + TRTCVideoResolutionModePortrait = 360 × 640
*
* @enum {Number}
*/
const TRTCVideoResolutionMode_HACK_JSDOC = {
/** 横屏分辨率 */
TRTCVideoResolutionModeLandscape: 0,
/** 竖屏分辨率 */
TRTCVideoResolutionModePortrait: 1,
};
var TRTCVideoResolutionMode;
(function (TRTCVideoResolutionMode) {
TRTCVideoResolutionMode[TRTCVideoResolutionMode["TRTCVideoResolutionModeLandscape"] = 0] = "TRTCVideoResolutionModeLandscape";
TRTCVideoResolutionMode[TRTCVideoResolutionMode["TRTCVideoResolutionModePortrait"] = 1] = "TRTCVideoResolutionModePortrait";
})(TRTCVideoResolutionMode = exports.TRTCVideoResolutionMode || (exports.TRTCVideoResolutionMode = {}));
/**
* 视频流类型
*
* TRTC 内部有三种不同的音视频流,分别是:
* - 主画面:最常用的一条线路,一般用来传输摄像头的视频数据。
* - 小画面:跟主画面的内容相同,但是分辨率和码率更低。
* - 辅流画面:一般用于屏幕分享,以及远程播片(比如老师放一段视频给学生)。
*
* 注意:
* - 如果主播的上行网络和性能比较好,则可以同时送出大小两路画面。
* - SDK 不支持单独开启小画面,小画面必须依附于主画面而存在。
*
* @enum {Number}
*/
const TRTCVideoStreamType_HACK_JSDOC = {
/** 大画面视频流 */
TRTCVideoStreamTypeBig: 0,
/** 小画面视频流 */
TRTCVideoStreamTypeSmall: 1,
/** 辅流(屏幕分享) */
TRTCVideoStreamTypeSub: 2,
};
var TRTCVideoStreamType;
(function (TRTCVideoStreamType) {
TRTCVideoStreamType[TRTCVideoStreamType["TRTCVideoStreamTypeBig"] = 0] = "TRTCVideoStreamTypeBig";
TRTCVideoStreamType[TRTCVideoStreamType["TRTCVideoStreamTypeSmall"] = 1] = "TRTCVideoStreamTypeSmall";
TRTCVideoStreamType[TRTCVideoStreamType["TRTCVideoStreamTypeSub"] = 2] = "TRTCVideoStreamTypeSub";
})(TRTCVideoStreamType = exports.TRTCVideoStreamType || (exports.TRTCVideoStreamType = {}));
/**
* 画质级别
*
* TRTC SDK 对画质定义了六种不同的级别,Excellent 代表最好,Down 代表不可用。
*
* @enum {Number}
*/
const TRTCQuality_HACK_JSDOC = {
/** 未定义 */
TRTCQuality_Unknown: 0,
/** 最好 */
TRTCQuality_Excellent: 1,
/** 好 */
TRTCQuality_Good: 2,
/** 一般 */
TRTCQuality_Poor: 3,
/** 差 */
TRTCQuality_Bad: 4,
/** 很差 */
TRTCQuality_Vbad: 5,
/** 不可用 */
TRTCQuality_Down: 6,
};
var TRTCQuality;
(function (TRTCQuality) {
TRTCQuality[TRTCQuality["TRTCQuality_Unknown"] = 0] = "TRTCQuality_Unknown";
TRTCQuality[TRTCQuality["TRTCQuality_Excellent"] = 1] = "TRTCQuality_Excellent";
TRTCQuality[TRTCQuality["TRTCQuality_Good"] = 2] = "TRTCQuality_Good";
TRTCQuality[TRTCQuality["TRTCQuality_Poor"] = 3] = "TRTCQuality_Poor";
TRTCQuality[TRTCQuality["TRTCQuality_Bad"] = 4] = "TRTCQuality_Bad";
TRTCQuality[TRTCQuality["TRTCQuality_Vbad"] = 5] = "TRTCQuality_Vbad";
TRTCQuality[TRTCQuality["TRTCQuality_Down"] = 6] = "TRTCQuality_Down";
})(TRTCQuality = exports.TRTCQuality || (exports.TRTCQuality = {}));
/**
* 视频画面填充模式
*
* 如果画面的显示分辨率不等于画面的原始分辨率,就需要您设置画面的填充模式:
* - TRTCVideoFillMode_Fill,图像铺满屏幕,超出显示视窗的视频部分将被截掉,所以画面显示可能不完整。
* - TRTCVideoFillMode_Fit,图像长边填满屏幕,短边区域会被填充黑色,但画面的内容肯定是完整的。
*
* @enum {Number}
*/
const TRTCVideoFillMode_HACK_JSDOC = {
/** 图像铺满屏幕,超出显示视窗的视频部分将被截掉 */
TRTCVideoFillMode_Fill: 0,
/** 图像长边填满屏幕,短边区域会被填充黑色 */
TRTCVideoFillMode_Fit: 1,
};
var TRTCVideoFillMode;
(function (TRTCVideoFillMode) {
TRTCVideoFillMode[TRTCVideoFillMode["TRTCVideoFillMode_Fill"] = 0] = "TRTCVideoFillMode_Fill";
TRTCVideoFillMode[TRTCVideoFillMode["TRTCVideoFillMode_Fit"] = 1] = "TRTCVideoFillMode_Fit";
})(TRTCVideoFillMode = exports.TRTCVideoFillMode || (exports.TRTCVideoFillMode = {}));
/**
* 视频画面旋转方向
*
* TRTC SDK 提供了对本地和远程画面的旋转角度设置 API,如下的旋转角度都是指顺时针方向的。
*
* @enum {Number}
*/
const TRTCVideoRotation_HACK_JSDOC = {
/** 顺时针旋转0度 */
TRTCVideoRotation0: 0,
/** 顺时针旋转90度 */
TRTCVideoRotation90: 1,
/** 顺时针旋转180度 */
TRTCVideoRotation180: 2,
/** 顺时针旋转270度 */
TRTCVideoRotation270: 3,
};
var TRTCVideoRotation;
(function (TRTCVideoRotation) {
TRTCVideoRotation[TRTCVideoRotation["TRTCVideoRotation0"] = 0] = "TRTCVideoRotation0";
TRTCVideoRotation[TRTCVideoRotation["TRTCVideoRotation90"] = 1] = "TRTCVideoRotation90";
TRTCVideoRotation[TRTCVideoRotation["TRTCVideoRotation180"] = 2] = "TRTCVideoRotation180";
TRTCVideoRotation[TRTCVideoRotation["TRTCVideoRotation270"] = 3] = "TRTCVideoRotation270";
})(TRTCVideoRotation = exports.TRTCVideoRotation || (exports.TRTCVideoRotation = {}));
/**
* 美颜(磨皮)算法
*
* TRTC SDK 内置了多种不同的磨皮算法,您可以选择最适合您产品定位的方案。
*
* @enum {Number}
*
*/
const TRTCBeautyStyle_HACK_JSDOC = {
/** 光滑,适用于美女秀场,效果比较明显。 */
TRTCBeautyStyleSmooth: 0,
/** 自然,磨皮算法更多地保留了面部细节,主观感受上会更加自然。 */
TRTCBeautyStyleNature: 1,
};
var TRTCBeautyStyle;
(function (TRTCBeautyStyle) {
TRTCBeautyStyle[TRTCBeautyStyle["TRTCBeautyStyleSmooth"] = 0] = "TRTCBeautyStyleSmooth";
TRTCBeautyStyle[TRTCBeautyStyle["TRTCBeautyStyleNature"] = 1] = "TRTCBeautyStyleNature";
})(TRTCBeautyStyle = exports.TRTCBeautyStyle || (exports.TRTCBeautyStyle = {}));
/**
* 视频像素格式
*
* TRTC SDK 提供针对视频的自定义采集和自定义渲染功能,在自定义采集功能中,您可以用如下枚举值描述您采集的视频像素格式。
* 在自定义渲染功能中,您可以指定您期望 SDK 回调的视频像素格式。
*
* @enum {Number}
*
*/
const TRTCVideoPixelFormat_HACK_JSDOC = {
/** 未定义 */
TRTCVideoPixelFormat_Unknown: 0,
/** I420 */
TRTCVideoPixelFormat_I420: 1,
/** OpenGL 2D 纹理 */
TRTCVideoPixelFormat_Texture_2D: 2,
/** BGRA32 */
TRTCVideoPixelFormat_BGRA32: 3,
/** RGBA32 */
TRTCVideoPixelFormat_RGBA32: 5,
};
var TRTCVideoPixelFormat;
(function (TRTCVideoPixelFormat) {
TRTCVideoPixelFormat[TRTCVideoPixelFormat["TRTCVideoPixelFormat_Unknown"] = 0] = "TRTCVideoPixelFormat_Unknown";
TRTCVideoPixelFormat[TRTCVideoPixelFormat["TRTCVideoPixelFormat_I420"] = 1] = "TRTCVideoPixelFormat_I420";
TRTCVideoPixelFormat[TRTCVideoPixelFormat["TRTCVideoPixelFormat_Texture_2D"] = 2] = "TRTCVideoPixelFormat_Texture_2D";
TRTCVideoPixelFormat[TRTCVideoPixelFormat["TRTCVideoPixelFormat_BGRA32"] = 3] = "TRTCVideoPixelFormat_BGRA32";
TRTCVideoPixelFormat[TRTCVideoPixelFormat["TRTCVideoPixelFormat_RGBA32"] = 5] = "TRTCVideoPixelFormat_RGBA32";
TRTCVideoPixelFormat[TRTCVideoPixelFormat["TRTCVideoPixelFormat_H264"] = 6] = "TRTCVideoPixelFormat_H264";
})(TRTCVideoPixelFormat = exports.TRTCVideoPixelFormat || (exports.TRTCVideoPixelFormat = {}));
/**
* 视频数据包装格式
*
* @enum {Number}
*
*/
const TRTCVideoBufferType_HACK_JSDOC = {
/** 未知类型 */
TRTCVideoBufferType_Unknown: 0,
/** 二进制Buffer类型 */
TRTCVideoBufferType_Buffer: 1,
/** 纹理类型 */
TRTCVideoBufferType_Texture: 3,
};
var TRTCVideoBufferType;
(function (TRTCVideoBufferType) {
TRTCVideoBufferType[TRTCVideoBufferType["TRTCVideoBufferType_Unknown"] = 0] = "TRTCVideoBufferType_Unknown";
TRTCVideoBufferType[TRTCVideoBufferType["TRTCVideoBufferType_Buffer"] = 1] = "TRTCVideoBufferType_Buffer";
TRTCVideoBufferType[TRTCVideoBufferType["TRTCVideoBufferType_Texture"] = 3] = "TRTCVideoBufferType_Texture";
})(TRTCVideoBufferType = exports.TRTCVideoBufferType || (exports.TRTCVideoBufferType = {}));
/**
* 画面渲染镜像类型
*
* TRTC 的画面镜像提供下列设置模式
*
* @enum {Number}
*
*/
const TRTCVideoMirrorType_HACK_JSDOC = {
/** 只适用于移动端, 本地预览时,前置摄像头镜像,后置摄像头不镜像 */
TRTCVideoMirrorType_Auto: 0,
/** 所有画面均镜像 */
TRTCVideoMirrorType_Enable: 1,
/** 所有画面均不镜像 */
TRTCVideoMirrorType_Disable: 2
};
var TRTCVideoMirrorType;
(function (TRTCVideoMirrorType) {
TRTCVideoMirrorType[TRTCVideoMirrorType["TRTCVideoMirrorType_Auto"] = 0] = "TRTCVideoMirrorType_Auto";
TRTCVideoMirrorType[TRTCVideoMirrorType["TRTCVideoMirrorType_Enable"] = 1] = "TRTCVideoMirrorType_Enable";
TRTCVideoMirrorType[TRTCVideoMirrorType["TRTCVideoMirrorType_Disable"] = 2] = "TRTCVideoMirrorType_Disable";
})(TRTCVideoMirrorType = exports.TRTCVideoMirrorType || (exports.TRTCVideoMirrorType = {}));
/**
* 媒体录制类型
*
* 该枚举类型用于本地媒体录制接口 startLocalRecording(),用于指定是录制音视频文件还是纯音频文件。
*
* @enum {Number}
*/
const TRTCRecordType_HACK_JSDOC = {
/** 仅录制音频 */
TRTCRecordTypeAudio: 0,
/** 仅录制视频 */
TRTCRecordTypeVideo: 1,
/** 同时录制音频、视频 */
TRTCRecordTypeBoth: 2,
};
var TRTCRecordType;
(function (TRTCRecordType) {
TRTCRecordType[TRTCRecordType["TRTCRecordTypeAudio"] = 0] = "TRTCRecordTypeAudio";
TRTCRecordType[TRTCRecordType["TRTCRecordTypeVideo"] = 1] = "TRTCRecordTypeVideo";
TRTCRecordType[TRTCRecordType["TRTCRecordTypeBoth"] = 2] = "TRTCRecordTypeBoth";
})(TRTCRecordType = exports.TRTCRecordType || (exports.TRTCRecordType = {}));
/**
* 远端音频流智能并发播放策略的参数
*
* 该参数用于设置远端音频流智能并发播放策略。
*
* @typedef {Object} TRTCAudioParallelParams
* @property {Number} maxCount
* 【字段含义】最大并发播放数。默认值:0。
* - 如果 maxCount > 0,且实际人数 > maxCount,会实时智能选出 maxCount 路数据进行播放,这会极大的降低性能消耗。
* - 如果 maxCount = 0,SDK 不限制并发播放数,在上麦人数比较多的房间可能会引发性能问题。
* @property {Array<String>} includeUsers
* 【字段含义】指定用户必定能并发播放。<br/>
* 【特殊说明】指定必定并发播放的用户 ID 列表。这些用户不参与智能选择。
* - includeUsers 的数量必须小于 maxCount,否则本次并发播放设置失效。
* - includeUsers 仅在 maxCount > 0 时有效。当 includeUsers 生效时,参与智能并发选择的最大播放数 = maxCount - 有效 includeUsers 的数量。
*/
const TRTCAudioParallelParams_HACK_JSDOC = null;
/////////////////////////////////////////////////////////////////////////////////
//
// 【(二)网络相关枚举值定义】
//
/////////////////////////////////////////////////////////////////////////////////
/**
* 应用场景
*
* TRTC 可用于视频会议和在线直播等多种应用场景,针对不同的应用场景,TRTC SDK 的内部会进行不同的优化配置:
* - TRTCAppSceneVideoCall :视频通话场景,适合[1对1视频通话]、[300人视频会议]、[在线问诊]、[视频聊天]、[远程面试]等。
* - TRTCAppSceneLIVE :视频互动直播,适合[视频低延时直播]、[十万人互动课堂]、[视频直播 PK]、[视频相亲房]、[互动课堂]、[远程培训]、[超大型会议]等。
* - TRTCAppSceneAudioCall :语音通话场景,适合[1对1语音通话]、[300人语音会议]、[语音聊天]、[语音会议]、[在线狼人杀]等。
* - TRTCAppSceneVoiceChatRoom:语音互动直播,适合:[语音低延时直播]、[语音直播连麦]、[语聊房]、[K 歌房]、[FM 电台]等。
*
* @enum {Number}
*
*/
const TRTCAppScene_HACK_JSDOC = {
/**
* 视频通话场景,支持720P、1080P高清画质,单个房间最多支持300人同时在线,最高支持50人同时发言。<br>
* 适合:[视频低延时直播]、[十万人互动课堂]、[视频直播 PK]、[视频相亲房]、[互动课堂]、[远程培训]、[超大型会议]等。<br>
* 注意:此场景下,您必须通过 TRTCParams 中的 role 字段指定当前用户的角色。
*/
TRTCAppSceneVideoCall: 0,
/**
* 视频互动直播,支持平滑上下麦,切换过程无需等待,主播延时小于300ms;支持十万级别观众同时播放,播放延时低至1000ms。<br>
* 在线直播场景,内部编码器和网络协议优化侧重性能和兼容性,性能和清晰度表现更佳。
*/
TRTCAppSceneLIVE: 1,
/**
* 语音通话场景,支持 48kHz,支持双声道。单个房间最多支持300人同时在线,最高支持50人同时发言。<br>
* 适合:[1对1语音通话]、[300人语音会议]、[语音聊天]、[语音会议]、[在线狼人杀]等。
*/
TRTCAppSceneAudioCall: 2,
/**
* 语音互动直播,支持平滑上下麦,切换过程无需等待,主播延时小于300ms;支持十万级别观众同时播放,播放延时低至1000ms。<br>
* 适合:[语音低延时直播]、[语音直播连麦]、[语聊房]、[K 歌房]、[FM 电台]等。<br>
* 注意:此场景下,您必须通过 TRTCParams 中的 role 字段指定当前用户的角色。
*/
TRTCAppSceneVoiceChatRoom: 3,
};
var TRTCAppScene;
(function (TRTCAppScene) {
TRTCAppScene[TRTCAppScene["TRTCAppSceneVideoCall"] = 0] = "TRTCAppSceneVideoCall";
TRTCAppScene[TRTCAppScene["TRTCAppSceneLIVE"] = 1] = "TRTCAppSceneLIVE";
TRTCAppScene[TRTCAppScene["TRTCAppSceneAudioCall"] = 2] = "TRTCAppSceneAudioCall";
TRTCAppScene[TRTCAppScene["TRTCAppSceneVoiceChatRoom"] = 3] = "TRTCAppSceneVoiceChatRoom";
})(TRTCAppScene = exports.TRTCAppScene || (exports.TRTCAppScene = {}));
/**
* 角色,仅适用于直播场景(TRTCAppSceneLIVE 和 TRTCAppSceneVoiceChatRoom)
*
* 在直播场景中,多数用户只是观众,只有个别用户是主播,这种角色区分可以有利于 TRTC 进行更好的定向优化。
*
* - Anchor:主播,可以上行视频和音频,一个房间里最多支持50个主播同时上行音视频。
* - Audience:观众,只能观看,不能上行视频和音频,一个房间里的观众人数没有上限。
*
* @enum {Number}
*
*/
const TRTCRoleType_HACK_JSDOC = {
/** 主播 */
TRTCRoleAnchor: 20,
/** 观众 */
TRTCRoleAudience: 21,
};
var TRTCRoleType;
(function (TRTCRoleType) {
TRTCRoleType[TRTCRoleType["TRTCRoleAnchor"] = 20] = "TRTCRoleAnchor";
TRTCRoleType[TRTCRoleType["TRTCRoleAudience"] = 21] = "TRTCRoleAudience";
})(TRTCRoleType = exports.TRTCRoleType || (exports.TRTCRoleType = {}));
/**
* 流控模式
*
* TRTC SDK 内部需要时刻根据网络情况调整内部的编解码器和网络模块,以便能够对网络的变化做出反应。
* 为了支持快速算法升级,SDK 内部设置了两种不同的流控模式:
* - ModeClient: 本地控制,用于 SDK 开发内部调试,客户请勿使用。
* - ModeServer: 云端控制,推荐模式,也是默认默认。
*
* > 推荐您使用云端控制,这样每当我们升级 Qos 算法时,您无需升级 SDK 即可体验更好的效果。
*
* @enum {Number}
*
*/
const TRTCQosControlMode_HACK_JSDOC = {
/** 客户端控制(用于 SDK 开发内部调试,客户请勿使用) */
TRTCQosControlModeClient: 0,
/** 云端控制(默认) */
TRTCQosControlModeServer: 1,
};
var TRTCQosControlMode;
(function (TRTCQosControlMode) {
TRTCQosControlMode[TRTCQosControlMode["TRTCQosControlModeClient"] = 0] = "TRTCQosControlModeClient";
TRTCQosControlMode[TRTCQosControlMode["TRTCQosControlModeServer"] = 1] = "TRTCQosControlModeServer";
})(TRTCQosControlMode = exports.TRTCQosControlMode || (exports.TRTCQosControlMode = {}));
/**
* 画质偏好
*
* 指当 TRTC SDK 在遇到弱网络环境时,您是希望“保清晰”还是“保流畅”:
*
* - Smooth:弱网下保流畅,在遭遇弱网环境时首先确保声音的流畅和优先发送,画面会变得模糊且会有较多马赛克,但可以保持流畅不卡顿。
* - Clear:弱网下保清晰,在遭遇弱网环境时,画面会尽可能保持清晰,但可能会更容易出现卡顿。
*
* @enum {Number}
*
*/
const TRTCVideoQosPreference_HACK_JSDOC = {
/** 弱网下保流畅 */
TRTCVideoQosPreferenceSmooth: 1,
/** 弱网下保清晰 */
TRTCVideoQosPreferenceClear: 2,
};
var TRTCVideoQosPreference;
(function (TRTCVideoQosPreference) {
TRTCVideoQosPreference[TRTCVideoQosPreference["TRTCVideoQosPreferenceSmooth"] = 1] = "TRTCVideoQosPreferenceSmooth";
TRTCVideoQosPreference[TRTCVideoQosPreference["TRTCVideoQosPreferenceClear"] = 2] = "TRTCVideoQosPreferenceClear";
})(TRTCVideoQosPreference = exports.TRTCVideoQosPreference || (exports.TRTCVideoQosPreference = {}));
/////////////////////////////////////////////////////////////////////////////////
//
// 【(三)继承 TXLiteAVBase 的定义】
//
/////////////////////////////////////////////////////////////////////////////////
/**
* 音频帧的格式
*
* @enum {Number}
*
*/
const TRTCAudioFrameFormat_HACK_JSDOC = {
/** 未指定 */
TRTCAudioFrameFormatNone: 0,
/** PCM,每个采样点占16bit数据量。 */
TRTCAudioFrameFormatPCM: 1,
};
var TRTCAudioFrameFormat;
(function (TRTCAudioFrameFormat) {
TRTCAudioFrameFormat[TRTCAudioFrameFormat["TRTCAudioFrameFormatNone"] = 0] = "TRTCAudioFrameFormatNone";
TRTCAudioFrameFormat[TRTCAudioFrameFormat["TRTCAudioFrameFormatPCM"] = 1] = "TRTCAudioFrameFormatPCM";
})(TRTCAudioFrameFormat = exports.TRTCAudioFrameFormat || (exports.TRTCAudioFrameFormat = {}));
/**
* 屏幕分享目标信息
*
* @enum {Number}
*
*/
const TRTCScreenCaptureSourceType_HACK_JSDOC = {
/** 未知类型 */
TRTCScreenCaptureSourceTypeUnknown: -1,
/** 该分享目标是某一个 Windows 或 Mac 窗口 */
TRTCScreenCaptureSourceTypeWindow: 0,
/** 该分享目标是整个 Windows 桌面或 Mac 桌面 */
TRTCScreenCaptureSourceTypeScreen: 1,
/** 该分享目标是自定义窗口(保留字段,暂无用法) */
TRTCScreenCaptureSourceTypeCustom: 2,
};
var TRTCScreenCaptureSourceType;
(function (TRTCScreenCaptureSourceType) {
TRTCScreenCaptureSourceType[TRTCScreenCaptureSourceType["TRTCScreenCaptureSourceTypeUnknown"] = -1] = "TRTCScreenCaptureSourceTypeUnknown";
TRTCScreenCaptureSourceType[TRTCScreenCaptureSourceType["TRTCScreenCaptureSourceTypeWindow"] = 0] = "TRTCScreenCaptureSourceTypeWindow";
TRTCScreenCaptureSourceType[TRTCScreenCaptureSourceType["TRTCScreenCaptureSourceTypeScreen"] = 1] = "TRTCScreenCaptureSourceTypeScreen";
TRTCScreenCaptureSourceType[TRTCScreenCaptureSourceType["TRTCScreenCaptureSourceTypeCustom"] = 2] = "TRTCScreenCaptureSourceTypeCustom";
})(TRTCScreenCaptureSourceType = exports.TRTCScreenCaptureSourceType || (exports.TRTCScreenCaptureSourceType = {}));
/**
* 音频质量
*
* @enum {Number}
*
*/
const TRTCAudioQuality_HACK_JSDOC = {
/** 语音模式:采样率:16k;单声道;音频裸码率:16kbps;适合语音通话为主的场景,比如在线会议,语音通话。 */
TRTCAudioQualitySpeech: 1,
/** 标准模式(或者默认模式):采样率:48k;单声道;音频裸码率:50kbps;SDK 默认的音频质量,如无特殊需求推荐选择之。 */
TRTCAudioQualityDefault: 2,
/** 音乐模式:采样率:48k;双声道 + 全频带;音频裸码率:128kbps;适合需要高保真传输音乐的场景,比如K歌、音乐直播等。 */
TRTCAudioQualityMusic: 3
};
var TRTCAudioQuality;
(function (TRTCAudioQuality) {
TRTCAudioQuality[TRTCAudioQuality["TRTCAudioQualitySpeech"] = 1] = "TRTCAudioQualitySpeech";
TRTCAudioQuality[TRTCAudioQuality["TRTCAudioQualityDefault"] = 2] = "TRTCAudioQualityDefault";
TRTCAudioQuality[TRTCAudioQuality["TRTCAudioQualityMusic"] = 3] = "TRTCAudioQualityMusic";
})(TRTCAudioQuality = exports.TRTCAudioQuality || (exports.TRTCAudioQuality = {}));
/**
* 图缓存
*
* @param {ArrayBuffer} buffer - 图像存储的内容,BGRA 格式。
* @param {Number} length - 图像数据大小大小
* @param {Number} width - 图像宽度
* @param {Number} heigth - 图像高度
*
*/
class TRTCImageBuffer {
constructor(buffer = new ArrayBuffer(0), length = 0, width = 0, height = 0) {
this.buffer = buffer;
this.length = length;
this.width = width;
this.height = height;
}
}
exports.TRTCImageBuffer = TRTCImageBuffer;
/**
* 屏幕采集源信息
*
* @param {TRTCScreenCaptureSourceType} type - 采集源类型
* @param {String} sourceId - 采集源ID;对于窗口,该字段指示窗口句柄;对于屏幕,该字段指示屏幕ID
* @param {String} sourceName - 采集源名称,UTF8编码
* @param {TRTCImageBuffer} thumbBGRA - 缩略图内容
* @param {TRTCImageBuffer} iconBGRA - 图标内容
* @param {Boolean} isMinimizeWindow - 是否最小化窗口
* @param {Number} width - 屏幕/窗口宽,单位:像素。
* @param {Number} height - 屏幕/窗口高,单位:像素。
* @param {Boolean} isMainScreen - 是否为主显示屏。
* @param {Number} x - 屏幕/窗口 x 坐标,单位:像素点。
* @param {Number} y - 屏幕/窗口 y 坐标,单位:像素点。
*
*/
class TRTCScreenCaptureSourceInfo {
constructor(type = TRTCScreenCaptureSourceType.TRTCScreenCaptureSourceTypeUnknown, sourceId = '', sourceName = '', thumbBGRA = new TRTCImageBuffer(), iconBGRA = new TRTCImageBuffer(), isMinimizeWindow = false, width = 0, height = 0, isMainScreen = false) {
this.type = type;
this.sourceId = sourceId;
this.sourceName = sourceName;
this.thumbBGRA = thumbBGRA;
this.iconBGRA = iconBGRA;
this.isMinimizeWindow = isMinimizeWindow;
this.width = width;
this.height = height;
this.isMainScreen = isMainScreen;
}
}
exports.TRTCScreenCaptureSourceInfo = TRTCScreenCaptureSourceInfo;
/**
* 屏幕分享的进阶控制参数
*
* 该参数用于屏幕分享相关的接口 [selectScreenCaptureTarget]{@link TRTCCloud#selectScreenCaptureTarget},用于在指定分享目标时设定一系列进阶控制参数。
* 比如:是否采集鼠标、是否要采集子窗口、是否要在被分享目标周围绘制一个边框等。
*
* 注意:设置高亮边框颜色参数在 Mac 平台不支持。
*
* @param {Boolean} enableCaptureMouse - 是否采集目标内容的同时采集鼠标,默认为 true
* @param {Boolean} enableHighLight - 是否高亮正在共享的窗口(在被分享目标周围绘制一个边框),默认为 true。
* @param {Boolean} enableHighPerformance - 是否开启高性能模式(只会在分享屏幕时会生效),默认为 true。【特殊说明】开启后屏幕采集性能最佳,但会丧失抗遮挡能力,如果您同时开启 enableHighLight + enableHighPerformance,远端用户可以看到高亮的边框。
* @param {Number} highLightColor - 指定高亮边框的颜色,RGB 格式,传入 0 时代表采用默认颜色,默认颜色为 0xFFE640。
* @param {Number} highLightWidth - 指定高亮边框的宽度,传入0时采用默认描边宽度,默认宽度为 5 像素,您可以设置的最大值为 50。
* @param {Boolean} enableCaptureChildWindow - 窗口采集时是否采集子窗口(需要子窗口与被采集窗口具有 Owner 或 Popup 属性),默认为 false。
*/
class TRTCScreenCaptureProperty {
constructor(enableCaptureMouse = true, enableHighLight = true, enableHighPerformance = true, highLightColor = 0, highLightWidth = 0, enableCaptureChildWindow = false) {
this.enableCaptureMouse = enableCaptureMouse;
this.enableHighLight = enableHighLight;
this.enableHighPerformance = enableHighPerformance;
this.highLightColor = highLightColor;
this.highLightWidth = highLightWidth;
this.enableCaptureChildWindow = enableCaptureChildWindow;
}
}
exports.TRTCScreenCaptureProperty = TRTCScreenCaptureProperty;
/**
* 设备信息
*
* @param {String} deviceId - 设备PID,字符编码格式是UTF-8
* @param {String} deviceName - 设备名称,字符编码格式是UTF-8
* @param {Object} deviceProperties - 设备属性
* - 只支持摄像头,包含摄像头支持的采集分辨率。
* @param {Array} deviceProperties.SupportedResolution - 支持的采集分辨率数组,每个数据是一个对象,包含 `width` 和 `height` 两个属性,属性值都是整形数值。
* - 注意:虚拟摄像头该字段不存在。
*
*/
class TRTCDeviceInfo {
constructor(deviceId = '', deviceName = '', deviceProperties) {
this.deviceId = deviceId;
this.deviceName = deviceName;
this.deviceProperties = deviceProperties;
}
}
exports.TRTCDeviceInfo = TRTCDeviceInfo;
/**
* 视频帧数据
*
* @param {TRTCVideoPixelFormat} videoFormat - 视频帧的格式
* @param {TRTCVideoBufferType} bufferType - 视频数据结构类型
* @param {ArrayBuffer} data - 视频数据,字段 bufferType 是 LiteAVVideoBufferType_Buffer 时生效
* @param {Number} textureId - 视频纹理ID,字段bufferType是LiteAVVideoBufferType_Texture时生效
* @param {Number} length - 视频数据的长度,单位是字节,对于i420而言, length = width * height * 3 / 2,对于BGRA32而言, length = width * height * 4
* @param {Number} width - 画面的宽度
* @param {Number} height - 画面的高度
* @param {Number} timestamp - 时间戳,单位ms
* @param {Number} rotation - 画面旋转角度
*
*/
class TRTCVideoFrame {
constructor(videoFormat = TRTCVideoPixelFormat.TRTCVideoPixelFormat_Unknown, bufferType = TRTCVideoBufferType.TRTCVideoBufferType_Unknown, data = null, textureId = 0, length = 0, width = 0, height = 0, timestamp = 0, rotation = 0) {
this.videoFormat = videoFormat;
this.bufferType = bufferType;
this.data = data;
this.textureId = textureId;
this.length = length;
this.width = width;
this.height = height;
this.timestamp = timestamp;
this.rotation = rotation;
}
}
exports.TRTCVideoFrame = TRTCVideoFrame;
/**
* 音频帧数据
*
* @param {TRTCAudioFrameFormat} audioFormat - 音频帧的格式
* @param {Buffer|ArrayBuffer} data - 音频数据
* @param {Number} length - 音频数据的长度
* @param {Number} sampleRate - 采样率
* @param {Number} channel - 声道数
* @param {Number} timestamp - 时间戳,单位ms
* @param {ArrayBuffer|null} extraData - 音频额外数据,远端用户通过 `onLocalProcessedAudioFrame` 写入的数据会通过该字段回调
* @param {Number} extraDataLength - 音频消息数据的长度
*/
class TRTCAudioFrame {
constructor(audioFormat = TRTCAudioFrameFormat.TRTCAudioFrameFormatNone, data = null, length = 0, sampleRate = 48000, channel = 1, timestamp = 0, extraData = null, extraDataLength = 0) {
this.audioFormat = audioFormat;
this.data = data;
this.length = length;
this.sampleRate = sampleRate;
this.channel = channel;
this.timestamp = timestamp;
this.extraData = extraData;
this.extraDataLength = extraDataLength;
}
}
exports.TRTCAudioFrame = TRTCAudioFrame;
/////////////////////////////////////////////////////////////////////////////////
//
// 【(四)更多枚举值定义】
//
/////////////////////////////////////////////////////////////////////////////////
/**
* Log 级别
*
* @enum {Number}
*
*/
const TRTCLogLevel_HACK_JSDOC = {
/** 输出所有级别的 Log */
TRTCLogLevelVerbose: 0,
/** 输出 DEBUG,INFO,WARNING,ERROR 和 FATAL 级别的 Log */
TRTCLogLevelDebug: 1,
/** 输出 INFO,WARNNING,ERROR 和 FATAL 级别的 Log */
TRTCLogLevelInfo: 2,
/** 只输出WARNNING,ERROR 和 FATAL 级别的 Log */
TRTCLogLevelWarn: 3,
/** 只输出ERROR 和 FATAL 级别的 Log */
TRTCLogLevelError: 4,
/** 只输出 FATAL 级别的 Log */
TRTCLogLevelFatal: 5,
/** 不输出任何 SDK Log */
TRTCLogLevelNone: 6,
};
var TRTCLogLevel;
(function (TRTCLogLevel) {
TRTCLogLevel[TRTCLogLevel["TRTCLogLevelVerbose"] = 0] = "TRTCLogLevelVerbose";
TRTCLogLevel[TRTCLogLevel["TRTCLogLevelDebug"] = 1] = "TRTCLogLevelDebug";
TRTCLogLevel[TRTCLogLevel["TRTCLogLevelInfo"] = 2] = "TRTCLogLevelInfo";
TRTCLogLevel[TRTCLogLevel["TRTCLogLevelWarn"] = 3] = "TRTCLogLevelWarn";
TRTCLogLevel[TRTCLogLevel["TRTCLogLevelError"] = 4] = "TRTCLogLevelError";
TRTCLogLevel[TRTCLogLevel["TRTCLogLevelFatal"] = 5] = "TRTCLogLevelFatal";
TRTCLogLevel[TRTCLogLevel["TRTCLogLevelNone"] = 6] = "TRTCLogLevelNone";
})(TRTCLogLevel = exports.TRTCLogLevel || (exports.TRTCLogLevel = {}));
/**
* 设备操作
*
* @enum {Number}
*
*/
const TRTCDeviceState_HACK_JSDOC = {
/** 添加设备 */
TRTCDeviceStateAdd: 0,
/** 移除设备 */
TRTCDeviceStateRemove: 1,
/** 设备已启用 */
TRTCDeviceStateActive: 2,
/** 系统默认设备变更 */
TRTCDefaultDeviceChanged: 3,
};
var TRTCDeviceState;
(function (TRTCDeviceState) {
TRTCDeviceState[TRTCDeviceState["TRTCDeviceStateAdd"] = 0] = "TRTCDeviceStateAdd";
TRTCDeviceState[TRTCDeviceState["TRTCDeviceStateRemove"] = 1] = "TRTCDeviceStateRemove";
TRTCDeviceState[TRTCDeviceState["TRTCDeviceStateActive"] = 2] = "TRTCDeviceStateActive";
TRTCDeviceState[TRTCDeviceState["TRTCDefaultDeviceChanged"] = 3] = "TRTCDefaultDeviceChanged";
})(TRTCDeviceState = exports.TRTCDeviceState || (exports.TRTCDeviceState = {}));
/**
* 设备类型
*
* @enum {Number}
*
*/
const TRTCDeviceType_HACK_JSDOC = {
/** 未知类型 */
TRTCDeviceTypeUnknown: -1,
/** 麦克风 */
TRTCDeviceTypeMic: 0,
/** 扬声器 */
TRTCDeviceTypeSpeaker: 1,
/** 摄像头 */
TRTCDeviceTypeCamera: 2,
};
var TRTCDeviceType;
(function (TRTCDeviceType) {
TRTCDeviceType[TRTCDeviceType["TRTCDeviceTypeUnknown"] = -1] = "TRTCDeviceTypeUnknown";
TRTCDeviceType[TRTCDeviceType["TRTCDeviceTypeMic"] = 0] = "TRTCDeviceTypeMic";
TRTCDeviceType[TRTCDeviceType["TRTCDeviceTypeSpeaker"] = 1] = "TRTCDeviceTypeSpeaker";
TRTCDeviceType[TRTCDeviceType["TRTCDeviceTypeCamera"] = 2] = "TRTCDeviceTypeCamera";
})(TRTCDeviceType = exports.TRTCDeviceType || (exports.TRTCDeviceType = {}));
/**
* 摄像头采集偏好
*
* 该枚举类型用于摄像头采集参数设置。
*
* @enum {Number}
*/
const TRTCCameraCaptureMode_HACK_JSDOC = {
/** 自动调整采集参数。SDK 根据实际的采集设备性能及网络情况,选择合适的摄像头输出参数,在设备性能及视频预览质量之间,维持平衡。 */
TRTCCameraResolutionStrategyAuto: 0,
/** 优先保证设备性能。SDK 根据用户设置编码器的分辨率和帧率,选择最接近的摄像头输出参数,从而保证设备性能。 */
TRTCCameraResolutionStrategyPerformance: 1,
/** 优先保证视频预览质量。SDK选择较高的摄像头输出参数,从而提高预览视频的质量。在这种情况下,会消耗更多的 CPU 及内存做视频前处理。 */
TRTCCameraResolutionStrategyHighQuality: 2,
/** 允许用户设置本地摄像头采集的视频宽高。 */
TRTCCameraCaptureManual: 3,
};
var TRTCCameraCaptureMode;
(function (TRTCCameraCaptureMode) {
TRTCCameraCaptureMode[TRTCCameraCaptureMode["TRTCCameraResolutionStrategyAuto"] = 0] = "TRTCCameraResolutionStrategyAuto";
TRTCCameraCaptureMode[TRTCCameraCaptureMode["TRTCCameraResolutionStrategyPerformance"] = 1] = "TRTCCameraResolutionStrategyPerformance";
TRTCCameraCaptureMode[TRTCCameraCaptureMode["TRTCCameraResolutionStrategyHighQuality"] = 2] = "TRTCCameraResolutionStrategyHighQuality";
TRTCCameraCaptureMode[TRTCCameraCaptureMode["TRTCCameraCaptureManual"] = 3] = "TRTCCameraCaptureManual";
})(TRTCCameraCaptureMode = exports.TRTCCameraCaptureMode || (exports.TRTCCameraCaptureMode = {}));
/**
* 视频颜色范围
*
* @enum {Number}
*/
const TRTCVideoColorRange_HACK_JSDOC = {
/** SDK 内部自动渲染合适范围 */
TRTCVideoColorRange_Auto: 0,
/** 限制范围 16-235 */
TRTCVideoColorRange_Limited: 1,
/** 完整范围 0-255 */
TRTCVideoColorRange_Full: 2
};
var TRTCVideoColorRange;
(function (TRTCVideoColorRange) {
TRTCVideoColorRange[TRTCVideoColorRange["TRTCVideoColorRange_Auto"] = 0] = "TRTCVideoColorRange_Auto";
TRTCVideoColorRange[TRTCVideoColorRange["TRTCVideoColorRange_Limited"] = 1] = "TRTCVideoColorRange_Limited";
TRTCVideoColorRange[TRTCVideoColorRange["TRTCVideoColorRange_Full"] = 2] = "TRTCVideoColorRange_Full";
})(TRTCVideoColorRange = exports.TRTCVideoColorRange || (exports.TRTCVideoColorRange = {}));
/**
* 视频颜色空间
*
* @enum {Number}
*/
const TRTCVideoColorSpace_HACK_JSDOC = {
/** SDK 内部自动渲染合适颜色空间 */
TRTCVideoColorSpace_Auto: 0,
/** BT.601 */
TRTCVideoColorSpace_BT601: 1,
/** BT.709 */
TRTCVideoColorSpace_BT709: 2,
};
var TRTCVideoColorSpace;
(function (TRTCVideoColorSpace) {
TRTCVideoColorSpace[TRTCVideoColorSpace["TRTCVideoColorSpace_Auto"] = 0] = "TRTCVideoColorSpace_Auto";
TRTCVideoColorSpace[TRTCVideoColorSpace["TRTCVideoColorSpace_BT601"] = 1] = "TRTCVideoColorSpace_BT601";
TRTCVideoColorSpace[TRTCVideoColorSpace["TRTCVideoColorSpace_BT709"] = 2] = "TRTCVideoColorSpace_BT709";
})(TRTCVideoColorSpace = exports.TRTCVideoColorSpace || (exports.TRTCVideoColorSpace = {}));
/**
* 视频编码复杂度
*
* @enum {Number}
*/
const TRTCVideoEncodeComplexity_Hack_JSDOC = {
/** 最快 */
TRTCVideoEncodeComplexity_Fastest: 0,
/** 快 */
TRTCVideoEncodeComplexity_Fast: 1,
/** 中 */
TRTCVideoEncodeComplexity_Medium: 2,
/** 慢 */
TRTCVideoEncodeComplexity_Slow: 3,
/** 最慢 */
TRTCVideoEncodeComplexity_Slowest: 4,
};
var TRTCVideoEncodeComplexity;
(function (TRTCVideoEncodeComplexity) {
TRTCVideoEncodeComplexity[TRTCVideoEncodeComplexity["TRTCVideoEncodeComplexity_Fastest"] = 0] = "TRTCVideoEncodeComplexity_Fastest";
TRTCVideoEncodeComplexity[TRTCVideoEncodeComplexity["TRTCVideoEncodeComplexity_Fast"] = 1] = "TRTCVideoEncodeComplexity_Fast";
TRTCVideoEncodeComplexity[TRTCVideoEncodeComplexity["TRTCVideoEncodeComplexity_Medium"] = 2] = "TRTCVideoEncodeComplexity_Medium";
TRTCVideoEncodeComplexity[TRTCVideoEncodeComplexity["TRTCVideoEncodeComplexity_Slow"] = 3] = "TRTCVideoEncodeComplexity_Slow";
TRTCVideoEncodeComplexity[TRTCVideoEncodeComplexity["TRTCVideoEncodeComplexity_Slowest"] = 4] = "TRTCVideoEncodeComplexity_Slowest";
})(TRTCVideoEncodeComplexity = exports.TRTCVideoEncodeComplexity || (exports.TRTCVideoEncodeComplexity = {}));
/**
* 摄像头采集参数
*
* 该设置能决定本地预览图像画质。
*
* @typedef {Object} TRTCCameraCaptureParams
* @property {TRTCCameraCaptureMode} mode - 摄像头采集偏好
* @property {Number} width - 采集图像宽度
* @property {Number} height - 采集图像高度
* @property {TRTCVideoColorSpace} [colorSpace] - 可选,颜色空间
* @property {TRTCVideoColorRange} [colorRange] - 可选,颜色范围
*/
const TRTCCameraCaptureParams_HACK_JSDOC = null;
/**
* 水印图片的源类型
*
* @enum {Number}
*
*/
const TRTCWaterMarkSrcType_HACK_JSDOC = {
/** 图片文件路径,支持 BMP、GIF、JPEG、PNG、TIFF、Exif、WMF 和 EMF 文件格式 */
TRTCWaterMarkSrcTypeFile: 0,
/** BGRA32格式内存块 */
TRTCWaterMarkSrcTypeBGRA32: 1,
/** RGBA32格式内存块 */
TRTCWaterMarkSrcTypeRGBA32: 2,
};
var TRTCWaterMarkSrcType;
(function (TRTCWaterMarkSrcType) {
TRTCWaterMarkSrcType[TRTCWaterMarkSrcType["TRTCWaterMarkSrcTypeFile"] = 0] = "TRTCWaterMarkSrcTypeFile";
TRTCWaterMarkSrcType[TRTCWaterMarkSrcType["TRTCWaterMarkSrcTypeBGRA32"] = 1] = "TRTCWaterMarkSrcTypeBGRA32";
TRTCWaterMarkSrcType[TRTCWaterMarkSrcType["TRTCWaterMarkSrcTypeRGBA32"] = 2] = "TRTCWaterMarkSrcTypeRGBA32";
})(TRTCWaterMarkSrcType = exports.TRTCWaterMarkSrcType || (exports.TRTCWaterMarkSrcType = {}));
/////////////////////////////////////////////////////////////////////////////////
//
// 【(五)TRTC 核心类型定义】
//
/////////////////////////////////////////////////////////////////////////////////
/**
* 进房相关参数
*
* 只有该参数填写正确,才能顺利调用 enterRoom 进入 roomId 所指定的音视频房间。
*
* @param {Number} sdkAppId - 【字段含义】应用标识(必填),腾讯视频云基于 sdkAppId 完成计费统计。<br>
* 【推荐取值】在腾讯云 [TRTC 控制台](https://console.cloud.tencent.com/rav/) 中创建应用,之后可以在账号信息页面中得到该 ID。<br>
* @param {String} userId - 【字段含义】用户标识(必填)。当前用户的 userId,相当于用户名,UTF-8编码。<br>
* 【推荐取值】如果一个用户在您的账号系统中的 ID 为“abc”,则 userId 即可设置为“abc”。<br>
* @param {String} userSig - 【字段含义】用户签名(必填),当前 userId 对应的验证签名,相当于登录密码。<br>
* 【推荐取值】请参考 [如何计算UserSig](https://cloud.tencent.com/document/product/647/17275)。<br>
* @param {Number} roomId - 【字段含义】房间号码(必填),指定房间号,在同一个房间里的用户(userId)可以彼此看到对方并进行视频通话, roomId 和 strRoomId 必须填一个, 若您选用 strRoomId,则 roomId 需要填写为0。<br>
* 【推荐取值】您可以随意指定,但请不要重复,如果您的用户账号 ID 是数字类型的,可以直接用创建者的用户 ID 作为 roomId。<br>
* @param {String} strRoomId - 【字段含义】字符串房间号码(选填),roomId 和 strRoomId 必须填一个。若两者都填,则优先选择 roomId。<br>
* 【推荐取值】您可以随意指定,但请不要重复。<br>
* @param {TRTCRoleType} role - 【字段含义】直播场景下的角色,仅适用于直播场景(TRTCAppSceneLIVE 和 TRTCAppSceneVoiceChatRoom),视频通话场景下指定无效。<br>
* 【推荐取值】默认值:主播(TRTCRoleAnchor)<br>
* @param {String} privateMapKey - 【字段含义】房间签名(非必填),如果您希望某个房间只能让特定的某些 userId 进入,就需要使用 privateMapKey 进行权限保护。<br>
* 【推荐取值】仅建议有高级别安全需求的客户使用,参考文档:[进房权限保护](https://cloud.tencent.com/document/product/647/32240)<br>
* @param {String} businessInfo - 【字段含义】业务数据(非必填),某些非常用的高级特性才需要用到此字段。<br>
* 【推荐取值】不建议使用<br>
* @param {String} streamId - 【字段含义】绑定腾讯云直播 CDN 流 ID[非必填],设置之后,您就可以在腾讯云直播 CDN 上通过标准直播方案(FLV或HLS)播放该用户的音视频流。<br>
* 【推荐取值】限制长度为64字节,可以不填写,一种推荐的方案是使用 “sdkappid_roomid_userid_main” 作为 streamid,这样比较好辨认且不会在您的多个应用中发生冲突。<br>
* 【特殊说明】要使用腾讯云直播 CDN,您需要先在[控制台](https://console.cloud.tencent.com/trtc/) 中的功能配置页开启“启动自动旁路直播”开关。<br>
* 【参考文档】[CDN 旁路直播](https://cloud.tencent.com/document/product/647/16826)。
* @param {String} userDefineRecordId - 【字段含义】设置云端录制完成后的回调消息中的 "userdefinerecordid" 字段内容,便于您更方便的识别录制回调。<br>
* 【推荐取值】限制长度为64字节,只允许包含大小写英文字母(a-zA-Z)、数字(0-9)及下划线和连词符。<br>
* 【参考文档】[云端录制](https://cloud.tencent.com/document/product/647/16823)。
*/
class TRTCParams {
constructor(sdkAppId = 0, userId = '', userSig = '', roomId = 0, strRoomId = '', role = TRTCRoleType.TRTCRoleAnchor, privateMapKey = null, businessInfo = null, streamId = null, userDefineRecordId = null) {
this.sdkAppId = sdkAppId;
this.userId = userId;
this.userSig = userSig;
this.roomId = roomId;
this.strRoomId = strRoomId;
this.role = role;
this.privateMapKey = privateMapKey;
this.businessInfo = businessInfo;
this.streamId = streamId;
this.userDefineRecordId = userDefineRecordId;
}
}
exports.TRTCParams = TRTCParams;
/**
* 视频编码参数
*
* 该设置决定了远端用户看到的画面质量(同时也是云端录制出的视频文件的画面质量)。
*
* @param {TRTCVideoResolution} videoResolution - 【字段含义】 视频分辨率<br>
* 【推荐取值】 <br>
* - 视频通话建议选择360 × 640及以下分辨率,resMode 选择 Portrait。<br>
* - 手机直播建议选择 540 × 960,resMode 选择 Portrait。<br>
* - Window 和 iMac 建议选择 640 × 360 及以上分辨率,resMode 选择 Landscape。
* 【特别说明】 TRTCVideoResolution 默认只能横屏模式的分辨率,例如640 × 360。<br>
* 如需使用竖屏分辨率,请指定 resMode 为 Portrait,例如640 × 360结合 Portrait 则为360 × 640。<br>
* @param {TRTCVideoResolutionMode} resMode - 【字段含义】分辨率模式(横屏分辨率 - 竖屏分辨率)<br>
* 【推荐取值】手机直播建议选择 Portrait,Window 和 Mac 建议选择 Landscape。<br>
* 【特别说明】如果 videoResolution 指定分辨率 640 × 360,resMode 指定模式为 Portrait,则最终编码出的分辨率为360 × 640。<br>
* @param {Number} videoFps - 【字段含义】视频采集帧率<br>
* 【推荐取值】15fps 或 20fps,10fps 以下会有轻微卡顿感,5fps 以下卡顿感明显,20fps 以上的帧率则过于浪费(电影的帧率也只有 24fps)。<br>
* 【特别说明】很多 Android 手机的前置摄像头并不支持15fps以上的采集帧率,部分过于突出美颜功能的 Android 手机前置摄像头的采集帧率可能低于10fps。<br>
* @param {Number} videoBitrate - 【字段含义】视频上行码率<br>
* 【推荐取值】推荐设置请参考本文件前半部分 TRTCVideoResolution 定义处的注释说明<br>
* 【特别说明】码率太低会导致视频中有很多的马赛克<br>
* @param {Number} minVideoBitrate -【字段含义】最低视频码率,SDK 会在网络不佳的情况下主动降低视频码率,最低会降至 minVideoBitrate 所设定的数值。
* 【推荐取值】<br>
* - 如果您追求“允许卡顿但要保持清晰”的效果,可以设置 minVideoBitrate 为 videoBitrate 的 60%;
* - 如果您追求“允许模糊但要保持流畅”的效果,可以设置 minVideoBitrate 为 200kbps;
* - 如果您将 videoBitrate 和 minVideoBitrate 设置为同一个值,等价于关闭 SDK 的自适应调节能力;
* - 默认值:0,此时最低码率由 SDK 根据分辨率情况,自动设置合适的数值。<br>
* 【特别说明】<br>
* - 当您把分辨率设置的比较高时,minVideoBitrate 不适合设置的太低,否则会出现画面模糊和大范围的马赛克宏块。
* 比如把分辨率设置为 720p,把码率设置为 200kbps,那么编码出的画面将会出现大范围区域性马赛克。
* @param {Boolean} enableAdjustRes - 【字段含义】是否允许动态调整分辨率(开启后会对云端录制产生影响)<br>
* 【推荐取值】该功能适用于不需要云端录制的场景,开启后 SDK 会根据当前网络情况,智能选择出一个合适的分辨率,避免出现“大分辨率+小码率”的低效编码模式。<br>
* 【特别说明】默认值:关闭。如有云端录制的需求,请不要开启此功能,因为如果视频分辨率发生变化后,云端录制出的 MP4 在普通的播放器上无法正常播放。<br>
* @param {TRTCVideoColorSpace} [colorSpace] - 编码色彩空间
* @param {TRTCVideoColorRange} [colorRange] - 编码色彩范围
* @param {TRTCVideoEncodeComplexity} [complexity] - 编码复杂度
*/
class TRTCVideoEncParam {
constructor(videoResolution = TRTCVideoResolution.TRTCVideoResolution_640_360, resMode = TRTCVideoResolutionMode.TRTCVideoResolutionModeLandscape, videoFps = 15, videoBitrate = 550, minVideoBitrate = 0, enableAdjustRes = false) {
this.videoResolution = videoResolution;
this.resMode = resMode;
this.videoFps = videoFps;
this.videoBitrate = videoBitrate;
this.minVideoBitrate = minVideoBitrate;
this.enableAdjustRes = enableAdjustRes;
this.colorRange = TRTCVideoColorRange.TRTCVideoColorRange_Auto;
this.colorSpace = TRTCVideoColorSpace.TRTCVideoColorSpace_Auto;
this.complexity = TRTCVideoEncodeComplexity.TRTCVideoEncodeComplexity_Fastest;
}
}
exports.TRTCVideoEncParam = TRTCVideoEncParam;
/**
* 画面渲染参数
*
* 您可以通过设置此参数来控制画面的旋转、填充、镜像模式
*
* @param {TRTCVideoRotation} rotation - 【字段含义】视频画面旋转方向
* @param {TRTCVideoFillMode} fillMode - 【字段含义】视频画面填充模式
* @param {TRTCVideoMirrorType} mirrorType - 【字段含义】画面渲染镜像类型
*
*/
class TRTCRenderParams {
constructor(rotation = TRTCVideoRotation.TRTCVideoRotation0, fillMode = TRTCVideoFillMode.TRTCVideoFillMode_Fit, mirrorType = TRTCVideoMirrorType.TRTCVideoMirrorType_Disable) {
this.rotation = rotation;
this.fillMode = fillMode;
this.mirrorType = mirrorType;
}
}
exports.TRTCRenderParams = TRTCRenderParams;
/**
* 网络流控相关参数
*
* 网络流控相关参数,该设置决定了SDK在各种网络环境下的调控方向(比如弱网下是“保清晰”还是“保流畅”)
*
* @param {TRTCVideoQosPreference} preference - 【字段含义】弱网下是“保清晰”还是“保流畅”<br>
* 【特别说明】<br>
* - 弱网下保流畅:在遭遇弱网环境时,画面会变得模糊,且会有较多马赛克,但可以保持流畅不卡顿
* - 弱网下保清晰:在遭遇弱网环境时,画面会尽可能保持清晰,但可能会更容易出现卡顿
* @param {TRTCQosControlMode} controlMode - 【字段含义】流控模式(云端控制 - 客户端控制)<br>
* 【推荐取值】云端控制<br>
* 【特别说明】<br>
* - Client 模式:客户端控制模式,用于 SDK 开发内部调试,客户请勿使用
* - Server 模式(默认):云端控制模式,若没有特殊原因,请直接使用该模式
*
*/
class TRTCNetworkQosParam {
constructor(preference = TRTCVideoQosPreference.TRTCVideoQosPreferenceClear, controlMode = TRTCQosControlMode.TRTCQosControlModeServer) {
this.preference = preference;
this.controlMode = controlMode;
}
}
exports.TRTCNetworkQosParam = TRTCNetworkQosParam;
/**
* 视频质量
*
* 表示视频质量的好坏,通过这个数值,您可以在 UI 界面上用图标表征 userId 的通话线路质量
*
* @param {String} userId - 用户标识
* @param {TRTCQuality} quality - 视频质量
*
*/
class TRTCQualityInfo {
constructor(userId = '', quality = TRTCQuality.TRTCQuality_Unknown) {
this.userId = userId;
this.quality = quality;
}
}
exports.TRTCQualityInfo = TRTCQualityInfo;
/**
* 音量大小
*
* 表示语音音量的评估大小,通过这个数值,您可以在 UI 界面上用图标表征 userId 是否有在说话。
*
* @param {String} userId - 说话者的 userId,字符编码格式是 UTF-8
* @param {Number} volume - 说话者的音量, 取值范围0 - 100
* @param {Number} vad - 是否检测到人声,0:非人声 1:人声
* @param {Number} pitch - 本地用户的人声频率(单位:Hz),取值范围[0 - 4000],对于远端用户,该值始终为0。
* @param {Float32Array} spectrumData - 音频频谱数据是将音频数据在频率域中的分布,划分为 256 个频率段,使用 spectrumData 记录各个频率段的能量值,每个能量值的取值范围为 [-300, 0],单位为 dBFS。
本地频谱使用编码前的音频数据计算,会受到本地采集音量、BGM等影响;远端频谱使用接收到的音频数据计算,本地调整远端播放音量等操作不会对其产生影响。
* @param {Number} spectrumDataLength - spectrumDataLength 记录音频频谱数据的长度,为 256。
*
*/
class TRTCVolumeInfo {
constructor(userId = '', volume = 0, vad = 0, pitch = 0, spectrumData = new Float32Array(0), spectrumDataLength = 0) {
this.userId = userId;
this.volume = volume;
this.vad = vad;
this.pitch = pitch;
this.spectrumData = spectrumData;
this.spectrumDataLength = spectrumDataLength;
}
}
exports.TRTCVolumeInfo = TRTCVolumeInfo;
/**
* 测速参数
*
* 您可以在用户进入房间前通过 [startSpeedTest]{@link TRTCCloud#startSpeedTest} 接口测试网速(注意:请不要在通话中调用)。
*
* @param {Number} sdkAppId - 应用标识
* @param {String} userId - 用户标识
* @param {String} userSig - 用户签名
* @param {Number} expectedUpBandwidth - 预期的上行带宽(kbps,取值范围: 10 ~ 5000,为 0 时不测试)。
* @param {Number} expectedDownBandwidth - 预期的下行带宽(kbps,取值范围: 10 ~ 5000,为 0 时不测试)。
*/
class TRTCSpeedTestParams {
constructor(sdkAppId = 0, userId = '', userSig = '', expectedUpBandwidth = 0, expectedDownBandwidth = 0) {
this.sdkAppId = sdkAppId;
this.userId = userId;
this.userSig = userSig;
this.expectedUpBandwidth = expectedUpBandwidth;
this.expectedDownBandwidth = expectedDownBandwidth;
}
}
exports.TRTCSpeedTestParams = TRTCSpeedTestParams;
/**
* 网络测速结果
*
* 您可以在用户进入房间前通过 TRTCCloud 的 startSpeedTest 接口进行测速 (注意:请不要在通话中调用),
* 测速结果会每2 - 3秒钟返回一次,每次返回一个 IP 地址的测试结果。
*
* 注意:
* - quality 是内部通过评估算法测算出的网络质量,loss 越低,rtt 越小,得分也就越高。
* - upLostRate 是指上行丢包率,例如0.3代表每向服务器发送10个数据包,可能有3个会在中途丢失。
* - downLostRate 是指下行丢包率,例如0.2代表从服务器每收取10个数据包,可能有2个会在中途丢失。
* - rtt 是指当前设备到腾讯云服务器的一次网络往返时间,正常数值在10ms - 100ms之间。
*
* @param {Boolean} succes