tencent cloud

文档反馈

Web 推流 SDK API

最后更新时间:2023-12-25 15:18:29

    API 概览

    TXLivePusher

    腾讯云直播推流器,主要用于浏览器 Web 推流。通过浏览器采集用户的画面和声音,通过 WebRTC 将视频流和音频流传输推送到腾讯云直播服务端。
    API
    描述
    静态函数,检查浏览器支持性。
    设置本地视频画面的预览容器。
    设置推流视频质量。
    设置推流音频质量。
    调用高级 API 接口。
    打开摄像头设备。
    关闭摄像头设备。
    打开⻨克⻛设备。
    关闭⻨克⻛设备。
    开启屏幕采集。
    关闭屏幕采集。
    开始采集本地媒体文件流。//验证到了这里
    停止采集本地媒体文件流。
    使用用户自定义的音视频流。
    关闭用户自定义的音视频流。
    startPush
    开始推流。
    stopPush
    停止推流。
    isPushing
    查询当前是否正在推流中。
    根据流 ID 获取采集到的音视频流。
    获取设备管理对象。
    获取视频效果管理对象。
    获取音频效果管理对象。
    设置是否禁用视频流。
    设置是否禁用音频流。
    禁用视频流。
    禁用音频流。
    恢复视频流。
    恢复音频流。
    设置视频内容提示,用于提升在不同内容场景下的视频编码质量。
    设置推流事件回调通知。
    destroy
    离开⻚面或者退出时,清理 SDK 实例。

    TXDeviceManager

    设备管理接口,主要用于管理摄像头、⻨克⻛设备,进行设备的获取和切换操作。
    API
    描述
    获取设备列表。
    获取当前流的设备信息。
    切换当前正在使用的设备。
    切换摄像头设备。
    切换⻨克⻛设备。

    TXAudioEffectManager

    音频效果管理接口,主要用于调整音量的操作。
    API
    描述
    setVolume
    设置音频流的音量大小。

    TXVideoEffectManager

    视频效果管理接口,主要用于设置画中画、镜像、滤镜、水印、文本等操作。
    API
    描述
    开启本地视频画面混流功能。
    设置混流参数。
    获取最终采用的混流参数。
    setLayout
    设置视频流的画中画布局参数。
    getLayout
    获取指定流的画中画布局参数。
    setMirror
    设置视频流的镜像效果。
    设置视频流的普通滤镜效果。
    设置水印。
    setText
    设置文本。

    TXLivePusher

    腾讯云直播推流器,主要用于浏览器 Web 推流。通过浏览器采集用户的画面和声音,通过 WebRTC 将视频流和音频流传输推送到腾讯云服务端。如果需要开启本地混流功能,调用 TXVideoEffectManager 方法 enableMixing() 来启用。
    请先创建实例对象,用于后续所有操作。
    const livePusher = new TXLivePusher();

    checkSupport

    静态函数,检查浏览器支持性。
    static checkSupport(): Promise<TXSupportResult>;
    返回:
    返回 Promise 对象,其中检查结果数据结构请参考 TXSupportResult

    setRenderView

    设置本地视频画面的预览容器,需提供一个 div 节点,本地采集的视频会在容器里渲染。如果开启了本地混流功能,容器里面会渲染混流处理之后的音视频。
    setRenderView(container: string | HTMLDivElement): void;
    参数:
    字段
    类型
    说明
    container
    string | HTMLDivElement
    容器的 ID 或者 dom 节点。

    setVideoQuality

    设置推流视频质量,SDK 已经内置了视频质量模板,直接通过预定义的模板来设置推流视频质量。
    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
    说明:
    1. 由于设备和浏览器的限制,视频分辨率不一定能够完全匹配,在这种情况下,浏览器会自动调整分辨率使其接近对应的分辨率。
    2. 如果视频质量参数(分辨率、帧率和码率)不符合您的要求,您可以通过 setProperty() 单独设置自定义的值。
    3. 此处视频分辨率主要表示本地采集的视频分辨率,推流时分辨率可能会低于采集的分辨率,浏览器会根据网络带宽等情况自动调整推流分辨率。
    4. 默认使用 720p ,即 setVideoQuality('720p')

    setAudioQuality

    设置推流音频质量,SDK 已经内置了音频质量模板,直接通过预定义的模板来设置推流音频质量。
    setAudioQuality(quality: string): void;
    参数:
    字段
    类型
    说明
    quality
    string
    预定义的音频质量模板名称。
    内置的音频质量模板如下所示:
    模板名
    采样率
    码率(kbps)
    standard
    48000
    40
    high
    48000
    128
    说明:
    1. 如果音频质量参数(采样率和码率)不符合您的要求,您可以通过 setProperty() 单独设置自定义的值。
    2. 默认使用 standard ,即 setAudioQuality('standard')

    setProperty

    主要用于调用一些高级功能,比如设置视频的分辨率、帧率和码率,设置音频的采样率和码率等。
    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)
    说明:
    1. 回声消除、自动增益和噪声抑制默认全部启用,最终是否起效依赖于设备和浏览器。这三个功能建议要么全部启用,要么全部禁用。
    2. 请在采集流和推流之前进行设置。

    startCamera

    打开摄像头设备。需要用户授权允许浏览器访问摄像头,授权失败或者访问设备失败,返回的 Promise 对象会抛出错误。
    startCamera(deviceId?: string): Promise<string>;
    参数:
    字段
    类型
    说明
    deviceId
    string
    摄像头设备 ID,可选参数,指定打开的摄像头设备。设备 ID 可通过 TXDeviceManager 中的方法 getDevicesList() 获取。在移动设备上,可以通过传入 'user' 和 'environment' 来指定打开前置和后置摄像头。
    返回:
    返回 Promise 对象,成功时返回流 ID 作为流在 SDK 内部的唯一标识,失败时抛出对应的错误信息。
    说明:
    1. 该接口不支持在 http 协议下使用,请使用 https 协议部署您的网站。
    2. 打开摄像头失败时返回的错误信息,可参考 getUserMedia 异常

    stopCamera

    关闭摄像头设备。
    stopCamera(streamId?: string): void;
    参数:
    字段
    类型
    说明
    streamId
    string
    流 ID,可选参数,指定需要关闭的摄像头流。启用本地混流之后,如果采集了多路摄像头流,可通过流 ID 关闭指定的摄像头流,否则关闭所有的摄像头流。

    startMicrophone

    打开⻨克⻛设备。需要用户授权允许浏览器访问⻨克⻛,授权失败或者访问设备失败,返回的 Promise 对象会抛出错误。
    startMicrophone(deviceId?: string): Promise<string>;
    参数:
    字段
    类型
    说明
    deviceId
    string
    麦克风设备 ID,可选参数,指定打开的麦克风设备。设备 ID 可通过 TXDeviceManager 中的方法 getDevicesList() 获取。
    返回:
    返回 Promise 对象,成功时返回流 ID 作为流在 SDK 内部的唯一标识,失败时抛出对应的错误信息。
    说明:
    1. 该接口不支持在 http 协议下使用,请使用 https 协议部署您的网站。
    2. 打开麦克风失败时返回的错误信息,可参考 getUserMedia 异常
    3. 如果出现回声现象,可以将本地用于播放预览的视频元素 video 静音,避免回声现象的出现。
    livePusher.videoView.muted = true;

    stopMicrophone

    关闭⻨克⻛设备。
    stopMicrophone(streamId?: string): void;
    参数:
    字段
    类型
    说明
    streamId
    string
    流 ID,可选参数,指定需要关闭的麦克风流。启用本地混流之后,如果采集了多路麦克风流,可通过流 ID 关闭指定的麦克风流,否则关闭所有的麦克风流。

    startScreenCapture

    开启屏幕采集。需要用户授权允许浏览器访问屏幕,授权失败或者访问屏幕失败,返回的 Promise 对象会抛出错误。
    startScreenCapture(audio?: boolean): Promise<string>;
    参数:
    字段
    类型
    说明
    audio
    boolean
    是否采集系统声音或者标签⻚声音,true - 采集声音,false - 不采集声音,默认 false。
    返回:
    返回 Promise 对象,成功时返回流 ID 作为流在 SDK 内部的唯一标识,失败时抛出对应的错误信息。
    说明:
    1. 该接口不支持在 http 协议下使用,请使用 https 协议部署您的网站。
    2. 打开屏幕采集失败时返回的错误信息,可参考 getDisplayMedia 异常
    3. 目前只有 Chrome 74+ 和 Edge 79+ 支持采集声音,在 windows 系统可以采集整个系统的声音,在 Linux 和 Mac 上面只能采集标签⻚的声音。
    4. 如果设置了 audio 为 true,在浏览器的屏幕分享弹窗中还需要确保弹窗最下面的采集声音选项是勾选状态,否则也不会采集声音。如果设置了 audio 为 false,浏览器的屏幕分享弹窗中不会出现采集声音的选项。

    stopScreenCapture

    关闭屏幕采集。
    stopScreenCapture(streamId?: string): void;
    参数:
    字段
    类型
    说明
    streamId
    string
    流 ID,可选参数,指定需要关闭的屏幕分享流。启用本地混流之后,如果采集了多路屏幕分享流,可通过流 ID 关闭指定的屏幕分享流,否则关闭所有的屏幕分享流。

    startVirtualCamera

    开始采集本地媒体文件流。目前支持的文件格式有视频 mp4,音频 mp3 和图片 jpg、png、bmp。
    startVirtualCamera(file: File): Promise<string>;
    参数:
    字段
    类型
    说明
    file
    File
    本地媒体文件,必传。文件格式必须是以下几种:mp4、mp3、jpg、png、bmp。
    返回:
    返回 Promise 对象,成功时返回流 ID 作为流在 SDK 内部的唯一标识,失败时抛出对应的错误信息。
    说明:
    1. 本地文件支持视频、音频和图片。视频文件采集视频流和音频流,音频文件只采集音频流,图片文件只采集视频流。
    2. 必须手动传入 file 对象,需要提前使用 <input type="file"> 引导用户选择本地文件。

    stopVirtualCamera

    停止采集本地媒体文件流。
    stopVirtualCamera(streamId?: string): void;
    参数:
    字段
    类型
    说明
    streamId
    string
    流 ID,可选参数,指定需要关闭的媒体文件流。启用本地混流之后,如果采集了多路媒体文件流,可通过流 ID 关闭指定的媒体文件流,否则关闭所有的媒体文件流。

    startCustomCapture

    使用用户自定义的音视频流。将用户自己采集的流用于本地混流和推送。
    startCustomCapture(stream: MediaStream): Promise<string>;
    参数:
    字段
    类型
    说明
    stream
    MediaStream
    用户自定义的流。
    返回:
    返回 Promise 对象,成功时返回流 ID 作为流在 SDK 内部的唯一标识,失败时抛出对应的错误信息。

    stopCustomCapture

    关闭自定义的音视频流,仅移除自定义流,不会停止自定义流。
    stopCustomCapture(streamId?: string): void;
    参数:
    字段
    类型
    说明
    streamId
    string
    流 ID,可选参数,指定需要移除的自定义流。启用本地混流之后,如果添加了多路自定义流,可通过流 ID 移除指定的自定义流,否则移除所有的自定义流。

    startPush

    开始推流,建立 WebRTC 连接,往腾讯云服务器推送音视频流。如果开启了本地混流功能,推送的则是混流处理之后的流数据。
    startPush(pushUrl: string): Promise<void>;
    参数:
    字段
    类型
    说明
    pushUrl
    string
    WebRTC 推流地址。
    返回:
    返回 Promise 对象。
    说明:
    推流地址的格式参考 拼装推流 URL

    stopPush

    停止推送音视频流,关闭 WebRTC 连接。
    stopPush(): void;

    isPushing

    查询当前是否正在推流中。
    isPushing(): boolean;
    返回:
    布尔值,true - 正在推流,false - 未推流。

    getMediaStream

    根据流 ID 获取采集到的音视频流。
    getMediaStream(streamId: string): MediaStream;
    参数:
    字段
    类型
    说明
    streamId
    string
    流 ID,由 startCamera()startMicrophone()startScreenCapture() 等接口调用成功之后返回。
    返回:
    采集到的流对象,可以通过传给 video 标签的 srcObject 属性进行播放。

    getDeviceManager

    获取设备管理对象。通过设备管理,可以进行查询设备列表,切换设备等操作。
    getDeviceManager(): TXDeviceManager;
    返回:
    设备管理对象,具体用法请参考 TXDeviceManager

    getVideoEffectManager

    获取视频效果管理对象。通过视频效果管理,可以进行画中画、镜像、滤镜、水印、文本等操作。
    getVideoEffectManager(): TXVideoEffectManager;
    返回:
    视频效果管理对象,具体用法请参考 TXVideoEffectManager

    getAudioEffectManager

    获取音频效果管理对象。通过音频效果管理,可以进行调整音量的操作。
    getAudioEffectManager(): TXAudioEffectManager;
    返回:
    音频效果管理对象,具体用法请参考 TXAudioEffectManager

    setVideoMute

    设置是否禁用视频流。如果开启了本地混流功能,禁用的是最终生成的视频流。
    setVideoMute(mute: boolean): void;
    参数:
    字段
    类型
    说明
    mute
    boolean
    true - 禁用,false - 启用。
    说明:
    1. 当前有视频流时,设置才会生效。
    2. 禁用之后每一帧都会用黑色像素填充,实际上仍在采集视频流。
    3. 建议直接使用 pauseVideo()resumeVideo()

    setAudioMute

    设置是否禁用音频流。如果开启了本地混流功能,禁用的是最终生成的音频流。
    setAudioMute(mute: boolean): void;
    参数:
    字段
    类型
    说明
    mute
    boolean
    true - 禁用,false - 启用。
    说明:
    1. 当前有音频流时,设置才会生效。
    2. 禁用之后是没有声音的,实际上仍在采集音频流。
    3. 建议直接使用 pauseAudio()resumeAudio()

    pauseVideo

    禁用视频流。等同于 setVideoMute(true)
    pauseVideo(): void;

    pauseAudio

    禁用音频流。等同于 setAudioMute(true)
    pauseAudio(): void;

    resumeVideo

    恢复视频流。等同于 setVideoMute(false)
    resumeVideo(): void;

    resumeAudio

    恢复音频流。等同于 setAudioMute(false)
    resumeAudio(): void;

    setVideoContentHint

    设置视频内容提示,用于提升在不同内容场景下的视频编码质量。
    setVideoContentHint(contentHint: string): void;
    参数:
    字段
    类型
    说明
    contentHint
    string
    内容提示,参考 MediaStreamTrack.contentHint
    内容提示取值范围如下:
    取值
    说明
    ''
    默认值,浏览器会自动评估视频内容,并选择合适的提示配置进行编码。
    'motion'
    表现为流畅度优先,用于视频内容为摄像头采集、电影、视频、游戏的情况。
    'detail'
    表现为清晰度优先,用于视频内容包含图片、文本混排的情况。在进行屏幕分享时,建议使用这个提示。
    'text'
    表现为清晰度优先,用于视频内容只包含大量文本的情况。
    说明:
    当前有视频流时,设置才会生效。

    setObserver

    设置推流事件回调通知。通过设置回调,可以监听推流的一些事件通知,包括推流状态、统计数据、警告和错误信息等。
    setObserver(observer: TXLivePusherObserver): void;
    参数:
    字段
    类型
    说明
    observer
    推流的回调目标对象。
    说明:
    目前部分回调事件通知,比如 onErroronWarningonCaptureFirstAudioFrameonCaptureFirstVideoFrame 也可以通过调用对应接口返回的 Promise 对象来获取。用户可以根据自己的使用习惯,自由选择获取相应事件通知的方式。例如:
    startCamera().then() 等同于 onCaptureFirstVideoFrame() ,同样可以获取采集视频首帧成功的状态。
    startCamera().catch() 等同于 onWarning() ,同样可以获取打开摄像头失败的错误。

    destroy

    离开⻚面或者退出时,清理 SDK 实例,避免可能会产生的内存泄露,调用前先执行 stop 相关的方法。
    destroy(): void;

    TXDeviceManager

    设备管理接口。主要用于管理摄像头、⻨克⻛设备。如果开启了本地混流功能,需要传入对应的流 ID 进行操作。
    
    通过 TXLivePusher 方法 getDeviceManager() 来获取对象实例。
    const deviceManager = livePusher.getDeviceManager();

    getDevicesList

    获取设备列表。
    getDevicesList(type?: string): Promise<TXMediaDeviceInfo[]>;
    参数:
    字段
    类型
    说明
    type
    string
    取值 video 或者 audio,可选参数。不传返回所有设备列表,传 video 返回摄像头设备列表,传 audio 返回⻨克⻛设备列表。
    返回:
    返回 Promise 对象,其中设备信息结构请参考 TXMediaDeviceInfo
    说明:
    1. 该接口不支持在 http 协议下使用,请使用 https 协议部署您的网站。
    2. 浏览器出于安全的考虑,在用户未授权摄像头或⻨克⻛访问权限前,deviceId 及 deviceName 字段可能都是空的。因此建议在用户授权访问后,再调用该接口获取设备详情。

    getCurrentDevice

    获取当前流的设备信息。如果启用了本地混流,必须指定流 ID。
    getCurrentDevice(type: string, streamId?: string): Promise<TXMediaDeviceInfo>;
    参数:
    字段
    类型
    说明
    type
    string
    设备类型:video - 摄像头设备,audio - ⻨克⻛设备。
    streamId
    string
    流 ID,指定要获取设备信息的流,启用本地混流后必须传,对应的流必须是摄像头或者麦克风设备采集的流。
    返回:
    返回 Promise 对象,其中设备信息结构请参考 TXMediaDeviceInfo

    switchDevice

    切换当前正在使用的设备。如果启用了本地混流,必须指定流 ID。
    switchDevice(type: string, deviceId: string, streamId?: string): Promise<void>;
    参数:
    字段
    类型
    说明
    type
    string
    设备类型:video - 摄像头设备,audio - ⻨克⻛设备。
    deviceId
    string
    设备 ID,可以通过调用 getDevicesList() 获取设备 ID。
    streamId
    string
    流 ID,指定要切换设备的流,启用本地混流后必须传,对应的流必须是摄像头或者麦克风设备采集的流。
    返回:
    返回 Promise 对象。
    说明:
    1. 该方法仅适用于从摄像头和⻨克⻛采集音视频时调用,其他采集方式采集的流不支持调用该接口。
    2. 如果还没开始推流,则只更新本地流;如果已经开始推流,同步更新推到服务器的音视频流。
    3. 切换流的设备时,对应流的 ID 不会发生变化。
    4. 指定流 ID 时,对应流的类型必须和 type 匹配,比如 type 是 video,对应的流必须是摄像头采集的流。
    5. 建议直接使用 switchCamera()switchMicrophone()

    switchCamera

    切换摄像头设备。等同于 switchDevice('video', deviceId, streamId)
    switchCamera(deviceId: string, streamId?: string): Promise<void>;
    参数:
    字段
    类型
    说明
    deviceId
    string
    设备 ID,可以通过调用 getDevicesList() 获取设备 ID。在移动设备上,可以通过传入 'user' 和 'environment' 来切换前置和后置摄像头。
    streamId
    string
    流 ID,指定要切换摄像头设备的流,启用本地混流后必须传,对应的流必须是摄像头设备采集的流。
    返回:
    返回 Promise 对象。

    switchMicrophone

    切换⻨克⻛设备。等同于 switchDevice('audio', deviceId, streamId)
    switchMicrophone(deviceId: string, streamId?: string): Promise<void>;
    参数:
    字段
    类型
    说明
    deviceId
    string
    设备 ID ,可以通过调用 getDevicesList() 获取设备 ID 。
    streamId
    string
    流 ID,指定要切换麦克风设备的流,启用本地混流后必须传,对应的流必须是麦克风设备采集的流。
    返回:
    返回 Promise 对象。

    TXAudioEffectManager

    音频效果管理接口。主要用于调整音量的操作。如果开启了本地混流功能,需要传入对应的流 ID 进行操作。
    通过 TXLivePusher 方法 getAudioEffectManager() 来获取对象实例。
    const audioEffectManager = livePusher.getAudioEffectManager();

    setVolume

    设置音频流的音量大小。如果启用了本地混流,必须指定流 ID。
    setVolume(volume: number, streamId?: string): void;
    参数:
    字段
    类型
    说明
    volume
    number
    音量大小,取值范围为 0 - 100,默认值是 100。
    streamId
    string
    流 ID,指定要设置的流,启用本地混流后必须传。
    说明:
    如果将 volume 设置成 100 之后感觉音量还是太小,可以将 volume 设置超过 100,但超过 100 的 volume 会有爆音的⻛险,请谨慎操作。

    TXVideoEffectManager

    视频效果管理接口。主要用于设置画中画、镜像、滤镜、水印、文本等操作。使用前需要先调用接口 enableMixing() 启用功能。
    通过 TXLivePusher 方法 getVideoEffectManager() 来获取对象实例。
    const videoEffectManager = livePusher.getVideoEffectManager();

    enableMixing

    开启本地视频画面混流功能。
    enableMixing(enabled: boolean): void;
    参数:
    字段
    类型
    说明
    enabled
    boolean
    是否开启本地混流功能,默认关闭。
    说明:
    1. 启用本地混流功能之前,预览和推送的流都是原始采集的流,启用之后,预览和推送的流都是经过浏览器本地混流处理之后的流,会有一定的浏览器性能开销。
    2. 在调用 TXVideoEffectManager 其他方法前必须先调用该接口启用本地混流功能。
    3. 没启用本地混流功能时,只能采集一路视频流和一路音频流。
    4. 启用本地混流功能成功后,可以采集多路流,比如执行两个 startCamera 采集两个不同的摄像头画面,或者先执行 startCamera 采集摄像头画面,再执行 startScreenCapture 采集屏幕画面。采集的多路流的画面和声音都会出现在最终的混流输出结果中。

    setMixingConfig

    设置混流参数。不调用该接口进行设置时,默认混流参数直接使用 TXLivePusher 中方法 setVideoQuality()setProperty() 设置之后的结果。
    setMixingConfig(config: TXMixingConfig): void;
    参数:
    字段
    类型
    说明
    config
    混流参数配置。

    getMixingConfig

    获取最终采用的混流参数,优先使用 setMixingConfig() 设置的结果,其次使用 TXLivePusher 中方法 setVideoQuality()setProperty() 设置之后的结果。
    getMixingConfig(): TXMixingConfig;
    返回:
    混流参数配置,数据结构请参考 TXMixingConfig

    setLayout

    设置视频流的画中画布局参数。
    setLayout(config: TXLayoutConfig | TXLayoutConfig[]): void;
    参数:
    字段
    类型
    说明
    config
    画中画布局配置,支持传对象或者对象数组。
    说明:
    1. 开启本地混流之后,所有采集的流都会自动添加到最终输出的视频流当中,默认的布局参数是保证视频流画面紧贴左上角原点出现。
    2. 配置参数可以传对象数组,批量设置多个流的画中画布局效果,也可以只传对象单独设置指定的流。
    3. 如果不想显示采集流的画面,只想保留声音,可以将布局宽度和高度设置为 0 。

    getLayout

    获取指定流的画中画布局参数。
    getLayout(streamId: string): TXLayoutConfig | null;
    参数:
    字段
    类型
    说明
    streamId
    string
    流 ID,指定要获取画中画布局参数的流。
    返回:
    返回指定流的画中画布局参数,数据结构请参考 TXLayoutConfig 。如果流不存在,返回 null 。

    setMirror

    设置视频流的镜像效果,包括左右镜像和上下镜像。
    setMirror(config: TXMirrorConfig | TXMirrorConfig[]): void;
    参数:
    字段
    类型
    说明
    config
    镜像效果配置,支持传对象或者对象数组。
    说明:
    配置参数可以传对象数组,批量设置多个流的镜像效果,也可以只传对象单独设置指定的流。

    setNormalFilter

    设置视频流的普通滤镜效果,包括对比度、亮度和饱和度。
    setNormalFilter(config: TXNormalFilterConfig | TXNormalFilterConfig[]): void;
    参数:
    字段
    类型
    说明
    config
    普通滤镜效果配置,支持传对象或者对象数组 。
    说明:
    配置参数可以传对象数组,批量设置多个流的普通滤镜效果,也可以只传对象单独设置指定的流。

    setWatermark

    设置水印,支持同时设置多个水印。
    setWatermark(config: TXWatermarkConfig | TXWatermarkConfig[] | null): void;
    参数:
    字段
    类型
    说明
    config
    水印配置参数,支持传对象、对象数组或者 null 。
    说明:
    1. 配置参数可以传对象数组,同时设置多个水印,也可以只传对象单独设置一个水印。
    2. 配置参数传 null 或者空数组表示删除已有水印。

    setText

    设置文本,支持同时设置多个文本。
    setText(config: TXTextConfig | TXTextConfig[] | null): void;
    参数:
    字段
    类型
    说明
    config
    文本配置参数,支持传对象、对象数组或者 null 。
    说明:
    1. 配置参数可以传对象数组,同时设置多个文本,也可以只传对象单独设置一个文本。
    2. 配置参数传 null 或者空数组表示删除已有文本。

    类型定义

    TXSupportResult

    浏览器支持性检查结果。
    数据结构:
    字段
    类型
    说明
    isWebRTCSupported
    boolean
    是否支持 WebRTC
    isH264EncodeSupported
    boolean
    是否支持 H264 编码
    isH264DecodeSupported
    boolean
    是否支持 H264 解码
    isMediaDevicesSupported
    boolean
    是否支持获取媒体设备及媒体流
    isScreenCaptureSupported
    boolean
    是否支持屏幕采集
    isMediaFileSupported
    boolean
    是否支持获取本地媒体文件流

    TXLivePusherObserver

    推流的回调通知,回调包括推流器状态,统计信息,警告以及错误信息。
    数据结构:
    字段
    类型
    说明
    onError
    onError
    推流错误通知。
    onWarning
    onWarning
    推流警告通知。
    onCaptureFirstAudioFrame
    首帧音频采集完成的回调通知。
    onCaptureFirstVideoFrame
    首帧视频采集完成的回调通知。
    onPushStatusUpdate
    推流连接状态回调通知。
    onStatisticsUpdate
    推流统计数据回调通知。

    onError

    推流错误通知,推流出现错误时,会回调该通知。
    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

    推流警告通知。
    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 浏览器点击自带的停止共享按钮)。
    说明:
    1. 打开摄像头、⻨克⻛、屏幕分享失败时返回的错误信息,可参考 getUserMedia 异常getDisplayMedia 异常
    2. 摄像头、麦克风、屏幕分享异常中断时返回的扩展信息,会包含对应流的流 ID。

    onCaptureFirstAudioFrame

    首帧音频采集完成的回调通知。如果启用本地混流功能,则在最终混流生成音频流时进行回调通知。
    onCaptureFirstAudioFrame(): void;

    onCaptureFirstVideoFrame

    首帧视频采集完成的回调通知。如果启用本地混流功能,则在最终混流生成视频流时进行回调通知。
    onCaptureFirstVideoFrame(): void;

    onPushStatusUpdate

    推流连接状态回调通知。
    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

    推流统计数据回调,主要是 WebRTC 相关的统计数据。
    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
    发送包数。
    说明:
    1. 直播推流过程中,SDK 会以一秒一次的频率统计 WebRTC 相关的数据,然后调用该回调接口返回数据。
    2. 如果返回的字段数据是空(undefined)的话,说明当前浏览器获取不到对应的数据,目前只有 Chrome 浏览器可以拿到全部的数据。

    TXMediaDeviceInfo

    设备信息。
    数据结构:
    字段
    类型
    说明
    type
    string
    设备类型,video - 摄像头,audio - 麦克风。
    deviceId
    string
    设备 ID。
    deviceName
    string
    设备名称。

    TXMixingConfig

    混流参数配置。
    数据结构:
    字段
    类型
    说明
    videoWidth
    number
    最终混流后的视频宽度。
    videoHeight
    number
    最终混流后的视频高度。
    videoFramerate
    number
    最终混流后的视频帧率。
    backgroundColor
    number
    混合后画面的底色颜色,格式为十六进制数字,默认黑色,即 0x000000 。

    TXLayoutConfig

    画中画布局参数。
    数据结构:
    字段
    类型
    说明
    streamId
    string
    流 ID,指定要设置的流。
    x
    number
    布局 x 坐标。
    y
    number
    布局 y 坐标。
    width
    number
    布局宽度。
    height
    number
    布局高度。
    zOrder
    number
    布局层级。
    说明:
    1. 以左上⻆为原点 (0, 0),元素的坐标属性描述元素中心点。例如一个分辨率为 100*100 的视频流紧贴原点完整出现在最终生成视频流中,那么它的 x 、 y 坐标都是50。
    2. zOrder 值越大,视频流会出现在越上方,覆盖其他视频流画面。

    TXMirrorConfig

    镜像参数。
    数据结构:
    字段
    类型
    说明
    streamId
    string
    流 ID,指定要设置的流。
    mirrorType
    number
    镜像类型:0 - 无镜像效果,1 - 左右镜像,2 - 上下镜像,3 - 左右+上下镜像。

    TXNormalFilterConfig

    普通滤镜参数。
    数据结构:
    字段
    类型
    说明
    streamId
    string
    流 ID,指定要设置的流。
    contrast
    number
    对比度,取值范围 [-100, 100],0 表示不处理。
    brightness
    number
    亮度,取值范围 [-100, 100],0 表示不处理。
    saturation
    number
    饱和度,取值范围 [-100, 100],0 表示不处理。

    TXWatermarkConfig

    水印配置参数。
    数据结构:
    字段
    类型
    说明
    image
    HTMLImageElement
    水印图片对象。
    x
    number
    水印 x 坐标。
    y
    number
    水印 y 坐标。
    width
    number
    水印宽度。
    height
    number
    水印高度。
    zOrder
    number
    水印层级。
    说明:
    1. 以左上⻆为原点 (0, 0),元素的坐标属性描述元素中心点。例如一个分辨率为 100*100 的水印图片紧贴原点完整出现在最终生成视频流中,那么它的 x 、 y 坐标都是50。
    2. zOrder 值越大,水印图片会出现在越上方,覆盖其他视频流画面。

    TXTextConfig

    文本配置参数。
    数据结构:
    字段
    类型
    说明
    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
    文本层级。
    说明:
    1. 以左上⻆为原点 (0, 0),元素的坐标属性描述元素中心点。假设文本的最终宽度是 100px,高度是 50px,如果文本要紧贴原点出现在最终生成视频流中的话,它的 x 坐标是 50, y 坐标是 25。
    2. zOrder 值越大,文本会出现在越上方,覆盖其他视频流画面。
    
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持