有奖捉虫:办公协同&微信生态&物联网文档专题 HOT
直播推流接口主要是通过浏览器采集用户的画面和声音,并通过 WebRTC 进行推送。

checkSupport

静态函数,检查浏览器支持性。
static checkSupport(): Promise<SupportResult>;
返回
返回 Promise 对象,其中检查结果SupportResult结构如下:
字段
类型
描述
isWebRTCSupported
boolean
是否支持 WebRTC
isH264EncodeSupported
boolean
是否支持 H264 编码
isH264DecodeSupported
boolean
是否支持 H264 解码
isMediaDevicesSupported
boolean
是否支持获取媒体设备及媒体流
isScreenCaptureSupported
boolean
是否支持屏幕采集
isMediaFileSupported
boolean
是否支持获取本地媒体文件流

setRenderView

设置本地视频画面的预览容器,提供一个 div 节点,本地采集的视频会在容器里渲染。
setRenderView(container: string | HTMLDivElement): void;
参数
container:容器的 ID 或者 dom 节点。

setVideoQuality

设置推流视频质量,SDK 已经内置了视频质量模板,直接通过预定义的模板来设置推流视频质量。
setVideoQuality(quality: string): void;
参数
quality预定义的视频质量模板名称。内置的视频质量模板如下所示:
模板名
分辨率(宽 × 高)
帧率(fps)
码率(kbps)
120p
160 × 120
15
200
180p
320 × 180
15
350
240p
320 × 240
15
400
360p
640 × 360
15
800
480p
640 × 480
15
900
720p
1280 × 720
15
1500
1080p
1920 × 1080
15
2000
2K
2560 × 1440
30
4860
4K
3840 × 2160
30
9000
说明
由于设备和浏览器的限制,视频分辨率不一定能够完全匹配,在这种情况下,浏览器会自动调整分辨率使其接近对应的分辨率。
如果以上视频质量参数(分辨率、帧率和码率)不符合您的要求,您可以通过 setProperty 单独设置自定义的值。
默认使用720p ,即setVideoQuality('720p')

setAudioQuality

设置推流音频质量,SDK 已经内置了音频质量模板,直接通过预定义的模板来设置推流音频质量。
setAudioQuality(quality: string): void;
参数
quality预定义的音频质量模板名称。内置的音频质量模板如下所示:
模板名
采样率
码率(kbps)
standard
48000
40
high
48000
128
说明
默认使用standard,即setAudioQuality('standard')

setProperty

主要用于调用一些高级功能例如设置视频的分辨率、帧率和码率。
setProperty(key: string, value: any): void;
参数
key高级 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)
注意
请在采集流和推流之前进行设置。

startCamera

打开本地摄像头设备。需要用户授权允许浏览器访问摄像头,授权失败或者访问设备失败,会通过回调接口抛出警告通知。
startCamera(deviceId?: string): void;
参数
deviceId:摄像头设备 ID,可选参数,指定打开的摄像头设备。设备 ID 可通过 TXDeviceManager 中的方法 getDevicesList 获取。

stopCamera

关闭本地摄像头设备。
stopCamera(): void;

startMicrophone

打开麦克风设备。需要用户授权允许浏览器访问麦克风,授权失败或者访问设备失败,会通过回调接口抛出警告通知。
startMicrophone(deviceId?: string): void;
参数
deviceId:麦克风设备 ID,可选参数,指定打开的麦克风设备。设备 ID 可通过 TXDeviceManager 中的方法 getDevicesList 获取。

stopMicrophone

关闭麦克风设备。
stopMicrophone(): void;

startScreenCapture

开启屏幕采集。需要用户授权允许浏览器访问屏幕,授权失败或者访问设备失败,会通过回调接口抛出警告通知。
startScreenCapture(): void;

stopScreenCapture

关闭屏幕采集。
stopScreenCapture(): void;

startMediaFile

开始采集本地媒体文件流。将用户本地的 MP4 视频文件转换成音视频流。
startMediaFile(file?: File): void;
参数
file:可选,本地媒体文件,不传则 javascript 模拟触发文件上传操作。
说明
需要先调用 setRenderView 方法设置承载本地视频画面的 div 容器。
本地视频文件当前仅支持 MP4 文件。
safari 浏览器限制,javascript 模拟触发文件上传操作可能不生效,建议手动传入 file 对象。
浏览器限制,页面处于未激活状态时(最小化、激活其它标签页),采集文件流会暂停。建议提示用户推流过程中不要切换浏览器标签页。

stopMediaFile

停止采集本地媒体文件流,结束本地文件播放。
stopMediaFile(): void;

startPush

开始音视频数据推流,建立 WebRTC 连接,往腾讯云服务器推送数据。
startPush(pushUrl: string): void;
参数
pushUrl:WebRTC 推流地址,请填写腾讯云的推流地址。推流地址的格式参见 腾讯云标准直播 URL ,只需要将 RTMP 推流地址前面的 rtmp:// 替换成 webrtc:// 即可。

stopPush

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

isPushing

查询当前推流器是否正在推流中。
isPushing(): boolean;
返回
true:正在推流;false:未推流。

getDeviceManager

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

setVideoMute

设置是否禁用视频流。
setVideoMute(mute: boolean): void;
参数
mute:true - 禁用,false - 启用。
说明
只有当前有视频流时,设置才会生效。
禁用之后每一帧都会用黑色像素填充,实际上仍在采集视频流。

setAudioMute

设置是否禁用音频流。
setAudioMute(mute: boolean): void;
参数
mute:true - 禁用,false - 启用。
说明
只有当前有音频流时,设置才会生效。
禁用之后每一帧都是没有声音的,实际上仍在采集音频流。

setObserver

设置推流器回调。通过设置回调,可以监听推流器的一些回调事件,包括推流器状态、统计数据、警告和错误信息等。
setObserver(observer: TXLivePusherObserver): void;
参数
observer:推流器的回调目标对象。具体请参见 TXLivePusherObserver

destroy

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