API | 描述 |
静态函数,检查浏览器支持性。 | |
设置本地视频画面的预览容器。 | |
设置推流视频质量。 | |
设置推流音频质量。 | |
调用高级 API 接口。 | |
打开摄像头设备。 | |
关闭摄像头设备。 | |
打开⻨克⻛设备。 | |
关闭⻨克⻛设备。 | |
开启屏幕采集。 | |
关闭屏幕采集。 | |
开始采集本地媒体文件流。//验证到了这里 | |
停止采集本地媒体文件流。 | |
使用用户自定义的音视频流。 | |
关闭用户自定义的音视频流。 | |
开始推流。 | |
停止推流。 | |
查询当前是否正在推流中。 | |
根据流 ID 获取采集到的音视频流。 | |
获取设备管理对象。 | |
获取视频效果管理对象。 | |
获取音频效果管理对象。 | |
设置是否禁用视频流。 | |
设置是否禁用音频流。 | |
禁用视频流。 | |
禁用音频流。 | |
恢复视频流。 | |
恢复音频流。 | |
设置视频内容提示,用于提升在不同内容场景下的视频编码质量。 | |
设置推流事件回调通知。 | |
离开⻚面或者退出时,清理 SDK 实例。 |
API | 描述 |
获取设备列表。 | |
获取当前流的设备信息。 | |
切换当前正在使用的设备。 | |
切换摄像头设备。 | |
切换⻨克⻛设备。 |
API | 描述 |
设置音频流的音量大小。 |
API | 描述 |
开启本地视频画面混流功能。 | |
设置混流参数。 | |
获取最终采用的混流参数。 | |
设置视频流的画中画布局参数。 | |
获取指定流的画中画布局参数。 | |
设置视频流的镜像效果。 | |
设置视频流的普通滤镜效果。 | |
设置水印。 | |
设置文本。 |
TXVideoEffectManager
方法 enableMixing() 来启用。const livePusher = new TXLivePusher();
static checkSupport(): Promise<TXSupportResult>;
setRenderView(container: string | HTMLDivElement): void;
字段 | 类型 | 说明 |
container | string | HTMLDivElement | 容器的 ID 或者 dom 节点。 |
setVideoQuality(quality: string): void;
字段 | 类型 | 说明 |
quality | string | 预定义的视频质量模板名称。 |
模板名 | 分辨率(宽 x 高) | 帧率(fps) | 码率(kbps) |
120p | 160 x 120 | 15 | 200 |
180p | 320 x 180 | 15 | 350 |
240p | 320 x 240 | 15 | 400 |
360p | 640 x 360 | 15 | 800 |
480p | 640 x 480 | 15 | 900 |
720p | 1280 x 720 | 15 | 1500 |
1080p | 1920 x 1080 | 15 | 2000 |
2K | 2560 x 1440 | 30 | 4860 |
4K | 3840 x 2160 | 30 | 9000 |
setVideoQuality('720p')
。setAudioQuality(quality: string): void;
字段 | 类型 | 说明 |
quality | string | 预定义的音频质量模板名称。 |
模板名 | 采样率 | 码率(kbps) |
standard | 48000 | 40 |
high | 48000 | 128 |
setAudioQuality('standard')
。setProperty(key: string, value: any): void;
字段 | 类型 | 说明 |
key | string | 高级 API 对应的 key。 |
value | * | 调用 key 所对应的高级 API 时需要的参数。 |
Key | Value | 描述 | 示例 |
setVideoResolution | { width: number; height:number; } | 设置视频的分辨率 | setProperty('setVideoResolution', { width: 1920, height: 1080 }) |
setVideoFPS | number | 设置视频的帧率 | setProperty('setVideoFPS', 25) |
setVideoBitrate | number | 设置视频的码率 | setProperty('setVideoBitrate', 2000) |
setAudioSampleRate | number | 设置音频的采样率 | setProperty('setAudioSampleRate', 44100) |
setAudioBitrate | number | 设置音频的码率 | setProperty('setAudioBitrate', 200) |
setConnectRetryCount | number | 设置连接重试次数,默认值:3;取值范围:0 - 10。当 SDK 与服务器异常断开连接时,SDK 会尝试与服务器重连。 | setProperty('setConnectRetryCount', 5) |
setConnectRetryDelay | number | 设置连接重试延迟,默认值:1,单位为秒;取值范围:0 - 10。当 SDK 与服务器异常断开连接时, SDK 会尝试与服务器重连。 | setProperty('setConnectRetryDelay', 2) |
enableAudioAEC | boolean | 启用回声消除 | setProperty('enableAudioAEC', true) |
enableAudioAGC | boolean | 启用自动增益 | setProperty('enableAudioAGC', true) |
enableAudioANS | boolean | 启用噪声抑制 | setProperty('enableAudioANS', true) |
enableLog | boolean | 是否在控制台打印日志 | setProperty('enableLog', true) |
startCamera(deviceId?: string): Promise<string>;
字段 | 类型 | 说明 |
deviceId | string | 摄像头设备 ID,可选参数,指定打开的摄像头设备。设备 ID 可通过 TXDeviceManager 中的方法 getDevicesList() 获取。在移动设备上,可以通过传入 'user' 和 'environment' 来指定打开前置和后置摄像头。 |
stopCamera(streamId?: string): void;
字段 | 类型 | 说明 |
streamId | string | 流 ID,可选参数,指定需要关闭的摄像头流。启用本地混流之后,如果采集了多路摄像头流,可通过流 ID 关闭指定的摄像头流,否则关闭所有的摄像头流。 |
startMicrophone(deviceId?: string): Promise<string>;
字段 | 类型 | 说明 |
deviceId | string |
livePusher.videoView.muted = true;
stopMicrophone(streamId?: string): void;
字段 | 类型 | 说明 |
streamId | string | 流 ID,可选参数,指定需要关闭的麦克风流。启用本地混流之后,如果采集了多路麦克风流,可通过流 ID 关闭指定的麦克风流,否则关闭所有的麦克风流。 |
startScreenCapture(audio?: boolean): Promise<string>;
字段 | 类型 | 说明 |
audio | boolean | 是否采集系统声音或者标签⻚声音,true - 采集声音,false - 不采集声音,默认 false。 |
stopScreenCapture(streamId?: string): void;
字段 | 类型 | 说明 |
streamId | string | 流 ID,可选参数,指定需要关闭的屏幕分享流。启用本地混流之后,如果采集了多路屏幕分享流,可通过流 ID 关闭指定的屏幕分享流,否则关闭所有的屏幕分享流。 |
startVirtualCamera(file: File): Promise<string>;
字段 | 类型 | 说明 |
file | File | 本地媒体文件,必传。文件格式必须是以下几种:mp4、mp3、jpg、png、bmp。 |
<input type="file">
引导用户选择本地文件。stopVirtualCamera(streamId?: string): void;
字段 | 类型 | 说明 |
streamId | string | 流 ID,可选参数,指定需要关闭的媒体文件流。启用本地混流之后,如果采集了多路媒体文件流,可通过流 ID 关闭指定的媒体文件流,否则关闭所有的媒体文件流。 |
startCustomCapture(stream: MediaStream): Promise<string>;
字段 | 类型 | 说明 |
stream | MediaStream | 用户自定义的流。 |
stopCustomCapture(streamId?: string): void;
字段 | 类型 | 说明 |
streamId | string | 流 ID,可选参数,指定需要移除的自定义流。启用本地混流之后,如果添加了多路自定义流,可通过流 ID 移除指定的自定义流,否则移除所有的自定义流。 |
startPush(pushUrl: string): Promise<void>;
字段 | 类型 | 说明 |
pushUrl | string | WebRTC 推流地址。 |
stopPush(): void;
isPushing(): boolean;
getMediaStream(streamId: string): MediaStream;
字段 | 类型 | 说明 |
streamId | string |
getDeviceManager(): TXDeviceManager;
getVideoEffectManager(): TXVideoEffectManager;
getAudioEffectManager(): TXAudioEffectManager;
setVideoMute(mute: boolean): void;
字段 | 类型 | 说明 |
mute | boolean | true - 禁用,false - 启用。 |
setAudioMute(mute: boolean): void;
字段 | 类型 | 说明 |
mute | boolean | true - 禁用,false - 启用。 |
setVideoMute(true)
。pauseVideo(): void;
setAudioMute(true)
。pauseAudio(): void;
setVideoMute(false)
。resumeVideo(): void;
setAudioMute(false)
。resumeAudio(): void;
setVideoContentHint(contentHint: string): void;
字段 | 类型 | 说明 |
contentHint | string |
取值 | 说明 |
'' | 默认值,浏览器会自动评估视频内容,并选择合适的提示配置进行编码。 |
'motion' | 表现为流畅度优先,用于视频内容为摄像头采集、电影、视频、游戏的情况。 |
'detail' | 表现为清晰度优先,用于视频内容包含图片、文本混排的情况。在进行屏幕分享时,建议使用这个提示。 |
'text' | 表现为清晰度优先,用于视频内容只包含大量文本的情况。 |
setObserver(observer: TXLivePusherObserver): void;
字段 | 类型 | 说明 |
observer | 推流的回调目标对象。 |
onError
、onWarning
、onCaptureFirstAudioFrame
、onCaptureFirstVideoFrame
也可以通过调用对应接口返回的 Promise 对象来获取。用户可以根据自己的使用习惯,自由选择获取相应事件通知的方式。例如:
startCamera().then()
等同于 onCaptureFirstVideoFrame()
,同样可以获取采集视频首帧成功的状态。startCamera().catch()
等同于 onWarning()
,同样可以获取打开摄像头失败的错误。destroy(): void;
const deviceManager = livePusher.getDeviceManager();
getDevicesList(type?: string): Promise<TXMediaDeviceInfo[]>;
字段 | 类型 | 说明 |
type | string | 取值 video 或者 audio,可选参数。不传返回所有设备列表,传 video 返回摄像头设备列表,传 audio 返回⻨克⻛设备列表。 |
getCurrentDevice(type: string, streamId?: string): Promise<TXMediaDeviceInfo>;
字段 | 类型 | 说明 |
type | string | 设备类型:video - 摄像头设备,audio - ⻨克⻛设备。 |
streamId | string | 流 ID,指定要获取设备信息的流,启用本地混流后必须传,对应的流必须是摄像头或者麦克风设备采集的流。 |
switchDevice(type: string, deviceId: string, streamId?: string): Promise<void>;
字段 | 类型 | 说明 |
type | string | 设备类型:video - 摄像头设备,audio - ⻨克⻛设备。 |
deviceId | string | |
streamId | string | 流 ID,指定要切换设备的流,启用本地混流后必须传,对应的流必须是摄像头或者麦克风设备采集的流。 |
switchDevice('video', deviceId, streamId)
。switchCamera(deviceId: string, streamId?: string): Promise<void>;
字段 | 类型 | 说明 |
deviceId | string | |
streamId | string | 流 ID,指定要切换摄像头设备的流,启用本地混流后必须传,对应的流必须是摄像头设备采集的流。 |
switchDevice('audio', deviceId, streamId)
。switchMicrophone(deviceId: string, streamId?: string): Promise<void>;
字段 | 类型 | 说明 |
deviceId | string | |
streamId | string | 流 ID,指定要切换麦克风设备的流,启用本地混流后必须传,对应的流必须是麦克风设备采集的流。 |
const audioEffectManager = livePusher.getAudioEffectManager();
setVolume(volume: number, streamId?: string): void;
字段 | 类型 | 说明 |
volume | number | 音量大小,取值范围为 0 - 100,默认值是 100。 |
streamId | string | 流 ID,指定要设置的流,启用本地混流后必须传。 |
const videoEffectManager = livePusher.getVideoEffectManager();
enableMixing(enabled: boolean): void;
字段 | 类型 | 说明 |
enabled | boolean | 是否开启本地混流功能,默认关闭。 |
TXVideoEffectManager
其他方法前必须先调用该接口启用本地混流功能。startCamera
采集两个不同的摄像头画面,或者先执行 startCamera
采集摄像头画面,再执行 startScreenCapture
采集屏幕画面。采集的多路流的画面和声音都会出现在最终的混流输出结果中。setMixingConfig(config: TXMixingConfig): void;
字段 | 类型 | 说明 |
config | 混流参数配置。 |
TXLivePusher
中方法 setVideoQuality() 和 setProperty() 设置之后的结果。getMixingConfig(): TXMixingConfig;
setLayout(config: TXLayoutConfig | TXLayoutConfig[]): void;
字段 | 类型 | 说明 |
config | 画中画布局配置,支持传对象或者对象数组。 |
getLayout(streamId: string): TXLayoutConfig | null;
字段 | 类型 | 说明 |
streamId | string | 流 ID,指定要获取画中画布局参数的流。 |
setMirror(config: TXMirrorConfig | TXMirrorConfig[]): void;
字段 | 类型 | 说明 |
config | 镜像效果配置,支持传对象或者对象数组。 |
setNormalFilter(config: TXNormalFilterConfig | TXNormalFilterConfig[]): void;
字段 | 类型 | 说明 |
config | 普通滤镜效果配置,支持传对象或者对象数组 。 |
setWatermark(config: TXWatermarkConfig | TXWatermarkConfig[] | null): void;
字段 | 类型 | 说明 |
config | 水印配置参数,支持传对象、对象数组或者 null 。 |
setText(config: TXTextConfig | TXTextConfig[] | null): void;
字段 | 类型 | 说明 |
config | 文本配置参数,支持传对象、对象数组或者 null 。 |
字段 | 类型 | 说明 |
isWebRTCSupported | boolean | 是否支持 WebRTC |
isH264EncodeSupported | boolean | 是否支持 H264 编码 |
isH264DecodeSupported | boolean | 是否支持 H264 解码 |
isMediaDevicesSupported | boolean | 是否支持获取媒体设备及媒体流 |
isScreenCaptureSupported | boolean | 是否支持屏幕采集 |
isMediaFileSupported | boolean | 是否支持获取本地媒体文件流 |
字段 | 类型 | 说明 |
onError | 推流错误通知。 | |
onWarning | 推流警告通知。 | |
onCaptureFirstAudioFrame | 首帧音频采集完成的回调通知。 | |
onCaptureFirstVideoFrame | 首帧视频采集完成的回调通知。 | |
onPushStatusUpdate | 推流连接状态回调通知。 | |
onStatisticsUpdate | 推流统计数据回调通知。 |
onError(code: number, message: string, extraInfo: object): void;
字段 | 类型 | 说明 |
code | number | 错误码。 |
message | string | 错误信息。 |
extraInfo | object | 扩展信息。 |
枚举值 | 数值 | 描述 |
TXLIVE_ERROR_WEBRTC_FAILED | -1 | WebRTC 接口调用失败。 |
TXLIVE_ERROR_REQUEST_FAILED | -2 | 请求服务器推流接口返回报错。 |
onWarning(code: number, message: string, extraInfo: object): void;
字段 | 类型 | 说明 |
code | number | 错误码。 |
message | string | 错误信息。 |
extraInfo | object | 扩展信息。 |
枚举值 | 数值 | 描述 |
TXLIVE_WARNING_CAMERA_START_FAILED | -1001 | 打开摄像头失败。 |
TXLIVE_WARNING_MICROPHONE_START_FAILED | -1002 | 打开麦克风失败。 |
TXLIVE_WARNING_SCREEN_CAPTURE_START_FAILED | -1003 | 打开屏幕分享失败。 |
TXLIVE_WARNING_VIRTUAL_CAMERA_START_FAILED | -1004 | 打开本地媒体文件失败。 |
TXLIVE_WARNING_CAMERA_INTERRUPTED | -1005 | 摄像头被中断(设备被拔出或者权限被用户取消)。 |
TXLIVE_WARNING_MICROPHONE_INTERRUPTED | -1006 | 麦克风被中断(设备被拔出或者权限被用户取消)。 |
TXLIVE_WARNING_SCREEN_CAPTURE_INTERRUPTED | -1007 | 屏幕分享被中断( Chrome 浏览器点击自带的停止共享按钮)。 |
onCaptureFirstAudioFrame(): void;
onCaptureFirstVideoFrame(): void;
onPushStatusUpdate(status: number, message: string, extraInfo: object): void;
字段 | 类型 | 说明 |
status | number | 连接状态码。 |
message | string | 连接状态信息。 |
extraInfo | object | 扩展信息。 |
枚举值 | 数值 | 描述 |
TXLIVE_PUSH_STATUS_DISCONNECTED | 0 | 与服务器断开连接 |
TXLIVE_PUSH_STATUS_CONNECTING | 1 | 正在连接服务器 |
TXLIVE_PUSH_STATUS_CONNECTED | 2 | 连接服务器成功 |
TXLIVE_PUSH_STATUS_RECONNECTING | 3 | 重连服务器中 |
onStatisticsUpdate(statistics: object): void;
字段 | 类型 | 说明 |
statistics | object | 推流统计数据。 |
statistics.timestamp | number | 数据采样的时间,自 1970年1月1日(UTC)起经过的毫秒数。 |
statistics.video | object | 视频流相关的数据。 |
statistics.video.bitrate | number | 视频码率,单位:bit/s 。 |
statistics.video.framesPerSecond | number | 视频帧率。 |
statistics.video.frameWidth | number | 视频宽度。 |
statistics.video.frameHeight | number | 视频高度。 |
statistics.video.framesEncoded | number | 编码帧数。 |
statistics.video.framesSent | number | 发送帧数。 |
statistics.video.packetsSent | number | 发送包数。 |
statistics.video.nackCount | number | NACK(Negative ACKnowledgement)数。 |
statistics.video.firCount | number | FIR(Full Intra Request),关键帧重传请求数。 |
statistics.video.pliCount | number | PLI(Picture Loss Indication),视频帧丢失重传数。 |
statistics.video.frameEncodeAvgTime | number | 平均编码时间,单位:ms 。 |
statistics.video.packetSendDelay | number | 数据包发送之前本地缓存的平均时间,单位:ms 。 |
statistics.audio | object | 音频流相关的数据。 |
statistics.audio.bitrate | number | 音频码率,单位:bit/s 。 |
statistics.audio.packetsSent | number | 发送包数。 |
字段 | 类型 | 说明 |
type | string | 设备类型,video - 摄像头,audio - 麦克风。 |
deviceId | string | 设备 ID。 |
deviceName | string | 设备名称。 |
字段 | 类型 | 说明 |
videoWidth | number | 最终混流后的视频宽度。 |
videoHeight | number | 最终混流后的视频高度。 |
videoFramerate | number | 最终混流后的视频帧率。 |
backgroundColor | number | 混合后画面的底色颜色,格式为十六进制数字,默认黑色,即 0x000000 。 |
字段 | 类型 | 说明 |
streamId | string | 流 ID,指定要设置的流。 |
x | number | 布局 x 坐标。 |
y | number | 布局 y 坐标。 |
width | number | 布局宽度。 |
height | number | 布局高度。 |
zOrder | number | 布局层级。 |
字段 | 类型 | 说明 |
streamId | string | 流 ID,指定要设置的流。 |
mirrorType | number | 镜像类型:0 - 无镜像效果,1 - 左右镜像,2 - 上下镜像,3 - 左右+上下镜像。 |
字段 | 类型 | 说明 |
streamId | string | 流 ID,指定要设置的流。 |
contrast | number | 对比度,取值范围 [-100, 100],0 表示不处理。 |
brightness | number | 亮度,取值范围 [-100, 100],0 表示不处理。 |
saturation | number | 饱和度,取值范围 [-100, 100],0 表示不处理。 |
字段 | 类型 | 说明 |
image | HTMLImageElement | 水印图片对象。 |
x | number | 水印 x 坐标。 |
y | number | 水印 y 坐标。 |
width | number | 水印宽度。 |
height | number | 水印高度。 |
zOrder | number | 水印层级。 |
字段 | 类型 | 说明 |
text | string | 文本内容,不能为空字符串。 |
style | object | 文本样式,可以参考对应的 css 样式设置。 |
style.font | string | 字体名。 |
style.font_size | number | 字体大小。 |
style.font_color | string | 字体颜色,十六进制表示,例如 #000000 。 |
style.font_alpha | number | 字体透明度,范围 [0, 100],默认 100(不透明)。 |
style.bold | number | 字体加粗,0 - 不加粗,1 - 加粗,默认 0 。 |
style.italic | number | 字体倾斜,0 - 正常,1 - 斜体,默认 0 。 |
style.shadow_color | string | 文字阴影颜色,十六进制表示,例如 #000000 。 |
style.shadow_alpha | number | 文字阴影透明度,范围 [0, 100],shadow_color 存在时有效,默认 100(不透明)。 |
style.stroke_color | string | 文字描边颜色,十六进制表示,例如 #000000 。 |
style.stroke_thickness | number | 文字描边粗细,默认 0,即没有描边。 |
style.background_color | string | 背景颜色,十六进制表示,例如 #000000 。 |
style.background_alpha | number | 背景透明度,范围 [0, 100],background_color 存在时有效,默认 100(不透明)。 |
x | number | 文本 x 坐标。 |
y | number | 文本 y 坐标。 |
zOrder | number | 文本层级。 |
本页内容是否解决了您的问题?