MixOption

类型: interface

混音配置

名称 描述
playCount 混音播放次数
type 混音播放类型

playCount

类型: number

混音播放次数

type

类型: AudioMixingType

混音播放类型

AudioMixingType

类型: enum

混音播放类型

属性 值 描述
PLAYOUT 0 仅本地播放
PUBLISH 1 仅发送到远端
PLAYOUT_AND_PUBLISH 2 在本地播放并发送到远端

PlayerEvent

类型: interface

播放器事件

名称 描述
type 类型
eventName 事件名称
rawEvent 播放事件。详见官方文档
userId 进房用户的 userId
publicStreamId 公共流 ID。
readyState 媒体就绪状态,详见官方文档
currentTime 当前时间
isScreen 所属用户的媒体流是否为屏幕流。你可以知道当前统计数据来自主流还是屏幕流。

type

类型: "video" | "audio"

类型

eventName

类型: string

事件名称

rawEvent

类型: Event

播放事件。详见官方文档

userId

类型: string

进房用户的 userId

publicStreamId

类型: string

公共流 ID。

readyState

类型: number

媒体就绪状态,详见官方文档

currentTime

类型: number

当前时间

isScreen

类型: boolean

所属用户的媒体流是否为屏幕流。你可以知道当前统计数据来自主流还是屏幕流。

onUserJoinedEvent

类型: interface

远端用户进房事件

名称 描述
userInfo 进房用户的 userId

userInfo

类型: UserInfo

进房用户的 userId

UserInfo

类型: interface

用户信息。

名称 描述
userId 用户 ID,长度在 128 字节以内的非空字符串。
extraInfo 用户传递的额外信息,最大长度为 200 字节。会在 onUserJoined 中回调给远端用户。

userId

类型: string

用户 ID,长度在 128 字节以内的非空字符串。

extraInfo

类型: string

用户传递的额外信息,最大长度为 200 字节。会在 onUserJoined 中回调给远端用户。

支持以下字符集范围:

onUserLeaveEvent

类型: interface

远端用户退房事件

名称 描述
userInfo 用户信息
reason 远端用户离开房间的原因

userInfo

类型: UserInfo

用户信息

reason

类型: UserOfflineReason

远端用户离开房间的原因

UserOfflineReason

类型: enum

远端用户离开房间的原因

属性 值 描述
QUIT 0 远端用户调用 leaveRoom 主动退出房间。
DROPPED 1 远端用户因 Token 过期或网络原因等掉线。
SWITCH_TO_INVISIBLE 2 远端用户调用 setUserVisibility 切换至不可见状态。
KICKED_BY_ADMIN 3 服务端调用 OpenAPI 将远端用户踢出房间。

ConnectionStateChangeEvent

类型: interface

连接状态改变

名称 描述
state 内部连接状态

state

类型: ConnectionState

内部连接状态

ConnectionState

类型: enum

SDK 与信令服务器连接状态。

属性 值 描述
CONNECTION_START 0 进行连接前准备,锁定相关资源。
CONNECTION_STATE_DISCONNECTED 1 连接断开。
CONNECTION_STATE_CONNECTING 2 首次连接,正在连接中。
CONNECTION_STATE_CONNECTED 3 首次连接成功。
CONNECTION_STATE_RECONNECTING 4 连接断开后重新连接中。
CONNECTION_STATE_RECONNECTED 5 连接断开后重连成功。
CONNECTION_STATE_LOST 6 处于 CONNECTION_STATE_DISCONNECTED 状态超过 10 秒,且期间重连未成功。SDK将继续尝试重连。

MediaType

类型: enum

媒体流类型

属性 值 描述
AUDIO 1 只控制音频
VIDEO 2 只控制视频
AUDIO_AND_VIDEO 3 同时控制音频和视频

StreamRemoveReason

类型: enum

房间内远端流移除原因。

属性 值 描述
STREAM_REMOVE_REASON_UNPUBLISH 0 远端用户停止发布流。
STREAM_REMOVE_REASON_PUBLISH_FAILED 1 远端用户发布流失败。
STREAM_REMOVE_REASON_KEEP_LIVE_FAILED 2 保活失败。
STREAM_REMOVE_REASON_CLIENT_DISCONNECTED 3 远端用户断网。
STREAM_REMOVE_REASON_REPUBLISH 4 远端用户重新发布流。
STREAM_REMOVE_REASON_OTHER 5 其他原因。

onVideoFirstFrameRenderedEvent

类型: interface

第一帧远端视频显示在视图上

名称 描述
userId 发布视频用户的 userId
height 高度
width 宽度

userId

类型: string

发布视频用户的 userId

height

类型: number

高度

width

类型: number

宽度

onVideoFirstFrameDecodedEvent

类型: interface

第一帧远端视频解码事件

名称 描述
userId 发布视频用户的 userId
height 高度
width 宽度

userId

类型: string

发布视频用户的 userId

height

类型: number

高度

width

类型: number

宽度

onAudioFirstFrameDecodedEvent

类型: interface

第一帧远端音频解码事件

名称 描述
userId 发布视频用户的 userId

userId

类型: string

发布视频用户的 userId

DeviceInfo

类型: interface

媒体设备信息及状态。

名称 描述
mediaDeviceInfo 媒体设备信息,参看 MediaDeviceInfo。
deviceState 设备状态。
active:设备已连接。
inactive:设备已断开连接。

mediaDeviceInfo

类型: MediaDeviceInfo

媒体设备信息,参看 MediaDeviceInfo。

deviceState

类型: "active" | "inactive"

设备状态。
active:设备已连接。
inactive:设备已断开连接。

AutoPlayFailedEvent

类型: interface

自动播放失败事件

名称 描述
userId 自动播放失败的流所属的用户 ID。不带此参数时表示本地流播放失败。
kind 自动播放失败的媒体类型
例如,当同一用户的视频流和音频流自动播放都失败时,将触发两次 onAutoPlayFailed 回调,分别包含 audio 和 video 参数。

userId

类型: string

自动播放失败的流所属的用户 ID。不带此参数时表示本地流播放失败。

kind

类型: "video" | "audio"

自动播放失败的媒体类型
例如,当同一用户的视频流和音频流自动播放都失败时,将触发两次 onAutoPlayFailed 回调,分别包含 audio 和 video 参数。

UserMessageEvent

类型: interface

点对点文本消息

名称 描述
userId 发送消息的用户
message 点对点文本消息

userId

类型: string

发送消息的用户

message

类型: string

点对点文本消息

UserBinaryMessageEvent

类型: interface

点对点二进制消息

名称 描述
userId 发送消息的用户
message 点对点二进制消息

userId

类型: string

发送消息的用户

message

类型: ArrayBuffer

点对点二进制消息

RemoteStreamStats

类型: interface

远端媒体流统计信息,统计周期为 2s 。
本地用户订阅媒体流成功后,SDK 会周期性地通知远端的媒体流在此次统计周期内的接收状况。此数据结构为回调给用户的参数类型。

名称 描述
userId 进房用户的 userId
audioStats 远端音频流信息
videoStats 远端视频流信息
isScreen 所属用户的媒体流是否为屏幕流。你可以知道当前统计数据来自主流还是屏幕流。

userId

类型: string

进房用户的 userId

audioStats

类型: RemoteAudioStats

远端音频流信息

videoStats

类型: RemoteVideoStats

远端视频流信息

isScreen

类型: boolean

所属用户的媒体流是否为屏幕流。你可以知道当前统计数据来自主流还是屏幕流。

RemoteAudioStats

类型: interface

远端音频流统计信息,统计周期为 2s 。
本地用户订阅音频流成功后,SDK 会周期性地通知远端的音频流在此次统计周期内的接收状况。此数据结构为回调给用户的参数类型。

名称 描述
audioLossRate 音频丢包率。统计周期内的音频下行丢包率,取值范围为 [0, 1] 。
receivedKBitrate 接收码率。统计周期内的音频接收码率,单位为 kbps 。
stallCount 统计周期内的卡顿次数
stallDuration 统计周期内的卡顿时长,单位为 ms 。
statsInterval 统计间隔。此次统计周期的间隔,单位为 ms 。
rtt 往返时延,单位:ms
jitterBufferDelay 抖动延迟,单位:ms
numChannels 声道数
receivedSampleRate 接收侧采样率
concealedSamples 音频丢包补偿(PLC) 样点总个数
concealmentEvent 音频丢包补偿(PLC) 累计次数

audioLossRate

类型: number

音频丢包率。统计周期内的音频下行丢包率,取值范围为 [0, 1] 。

receivedKBitrate

类型: number

接收码率。统计周期内的音频接收码率,单位为 kbps 。

stallCount

类型: number

统计周期内的卡顿次数

stallDuration

类型: number

统计周期内的卡顿时长,单位为 ms 。

statsInterval

类型: number

统计间隔。此次统计周期的间隔,单位为 ms 。

rtt

类型: number

往返时延,单位:ms

jitterBufferDelay

类型: number

抖动延迟,单位:ms

numChannels

类型: number

声道数

receivedSampleRate

类型: number

接收侧采样率

concealedSamples

类型: number

音频丢包补偿(PLC) 样点总个数

concealmentEvent

类型: number

音频丢包补偿(PLC) 累计次数

RemoteVideoStats

类型: interface

远端视频流统计信息,统计周期为 2s 。
本地用户订阅视频流成功后,SDK 会周期性地通知远端的视频流在此次统计周期内的接收状况。此数据结构为回调给用户的参数类型。

名称 描述
width 宽度,单位:px
height 高度,单位:px
videoLossRate 视频丢包率。统计周期内的音频下行丢包率,取值范围为 [0, 1] 。
receivedKBitrate 接收码率。统计周期内的音频接收码率,单位为 kbps 。
decoderOutputFrameRate 解码器输出帧率。统计周期内的视频解码器输出帧率,单位 fps 。
stallCount 统计周期内的卡顿次数
stallDuration 统计周期内的卡顿时长,单位为 ms 。
isScreen 所属用户的媒体流是否为屏幕流。你可以知道当前统计数据来自主流还是屏幕流。
statsInterval 统计间隔。此次统计周期的间隔,单位为 ms 。
rtt 客户端到服务端数据传输的往返时延,单位:ms

width

类型: number

宽度,单位:px

height

类型: number

高度,单位:px

videoLossRate

类型: number

视频丢包率。统计周期内的音频下行丢包率,取值范围为 [0, 1] 。

receivedKBitrate

类型: number

接收码率。统计周期内的音频接收码率,单位为 kbps 。

decoderOutputFrameRate

类型: number

解码器输出帧率。统计周期内的视频解码器输出帧率,单位 fps 。

stallCount

类型: number

统计周期内的卡顿次数

stallDuration

类型: number

统计周期内的卡顿时长,单位为 ms 。

isScreen

类型: boolean

所属用户的媒体流是否为屏幕流。你可以知道当前统计数据来自主流还是屏幕流。

statsInterval

类型: number

统计间隔。此次统计周期的间隔,单位为 ms 。

rtt

类型: number

客户端到服务端数据传输的往返时延,单位:ms

LocalStreamStats

类型: interface

本地媒体流统计信息以及网络状况,统计周期为 2s 。
本地用户发布媒体流成功后,SDK 会周期性地通知本地用户发布的媒体流在此次统计周期内的发送状况。此数据结构为回调给用户的参数类型。

名称 描述
audioStats 本地发送音频流的统计信息。
videoStats 本地发送视频流的统计信息。
isScreen 所属用户的媒体流是否为屏幕流。你可以知道当前统计数据来自主流还是屏幕流。

audioStats

类型: LocalAudioStats

本地发送音频流的统计信息。

videoStats

类型: LocalVideoStats

本地发送视频流的统计信息。

isScreen

类型: boolean

所属用户的媒体流是否为屏幕流。你可以知道当前统计数据来自主流还是屏幕流。

LocalAudioStats

类型: interface

本地音频流统计信息以及网络状况,统计周期为 2s 。
本地用户发布音频流成功后,SDK 会周期性地通知本地用户发布的音频流在此次统计周期内的发送状况。此数据结构为回调给用户的参数类型。

名称 描述
audioLossRate 音频丢包率。统计周期内的音频上行丢包率,取值范围为 [0, 1] 。
sendKBitrate 发送码率。统计周期内的音频接收码率,单位为 kbps 。
recordSampleRate 采集采样率。统计周期内的音频采集采样率信息,单位为 Hz 。
statsInterval 统计间隔。此次统计周期的间隔,单位为 ms 。
rtt 客户端到服务端数据传输的往返时延,单位:ms
numChannels 声道数

audioLossRate

类型: number

音频丢包率。统计周期内的音频上行丢包率,取值范围为 [0, 1] 。

sendKBitrate

类型: number

发送码率。统计周期内的音频接收码率,单位为 kbps 。

recordSampleRate

类型: number

采集采样率。统计周期内的音频采集采样率信息,单位为 Hz 。

statsInterval

类型: number

统计间隔。此次统计周期的间隔,单位为 ms 。

rtt

类型: number

客户端到服务端数据传输的往返时延,单位:ms

numChannels

类型: number

声道数

LocalVideoStats

类型: interface

本地视频流统计信息以及网络状况,统计周期为 2s 。
本地用户发布视频流成功后,SDK 会周期性地通知本地用户发布的视频流在此次统计周期内的发送状况。此数据结构为回调给用户的参数类型。

名称 描述
sentKBitrate 发送码率,单位:kbps。统计周期内的视频发送码率
sentFrameRate 发送帧率。统计周期内的视频发送帧率,单位为 fps 。
encoderOutputFrameRate 编码器输出帧率。当前编码器在此次统计周期内的输出帧率,单位为 fps 。
rendererOutputFrameRate 本地渲染帧率。统计周期内的本地视频渲染帧率,单位为 fps 。
statsInterval 统计间隔。此次统计周期的间隔,单位为 ms 。
videoLossRate 视频丢包率。统计周期内的音频上行丢包率,取值范围为 [0, 1] 。
rtt 客户端到服务端数据传输的往返时延,单位:ms
encodedFrameWidth 视频编码宽度,单位为 px 。
encodedFrameHeight 视频编码高度,单位为 px 。
encodedFrameCount 统计周期内发送的视频帧总数
codecType 视频的编码类型,具体参考 VideoCodecType
isScreen 所属用户的媒体流是否为屏幕流。你可以知道当前统计数据来自主流还是屏幕流。

sentKBitrate

类型: number

发送码率,单位:kbps。统计周期内的视频发送码率

sentFrameRate

类型: number

发送帧率。统计周期内的视频发送帧率,单位为 fps 。

encoderOutputFrameRate

类型: number

编码器输出帧率。当前编码器在此次统计周期内的输出帧率,单位为 fps 。

rendererOutputFrameRate

类型: number

本地渲染帧率。统计周期内的本地视频渲染帧率,单位为 fps 。

statsInterval

类型: number

统计间隔。此次统计周期的间隔,单位为 ms 。

videoLossRate

类型: number

视频丢包率。统计周期内的音频上行丢包率,取值范围为 [0, 1] 。

rtt

类型: number

客户端到服务端数据传输的往返时延,单位:ms

encodedFrameWidth

类型: number

视频编码宽度,单位为 px 。

encodedFrameHeight

类型: number

视频编码高度,单位为 px 。

encodedFrameCount

类型: number

统计周期内发送的视频帧总数

codecType

类型: string

视频的编码类型,具体参考 VideoCodecType

isScreen

类型: boolean

所属用户的媒体流是否为屏幕流。你可以知道当前统计数据来自主流还是屏幕流。

PublicStreamStats

用户订阅的公共流统计信息以及网络状况,统计周期为 2s。

Omit<
  RemoteStreamStats,
  'userId' | 'isScreen'
> & {
  publicStreamId: string;
}
名称 类型 描述
publicStreamId string 公共流 ID。
RemoteStreamStats RemoteStreamStats 远端媒体流统计信息

LocalAudioPropertiesInfo

类型: interface

本地音频信息

名称 描述
streamIndex 流属性,标记该流为麦克风采集音频流或屏幕音频流。
audioPropertiesInfo 音频属性信息。

streamIndex

类型: StreamIndex

流属性,标记该流为麦克风采集音频流或屏幕音频流。

audioPropertiesInfo

类型: AudioPropertiesInfo

音频属性信息。

StreamIndex

类型: enum

流属性

属性 值 描述
STREAM_INDEX_MAIN 0 主流。包括:通过默认摄像头/麦克风采集到的视频/音频;
STREAM_INDEX_SCREEN 1 屏幕流。共享的视频流,或来自声卡的本地播放音频流。

AudioPropertiesInfo

类型: interface

音频属性信息

名称 描述
linearVolume 线性音量,与原始音量呈线性关系,数值越大,音量越大。取值范围是:[0,255]。
- [0, 25]: 无声
- [26, 75]: 低音量
- [76, 204]: 中音量
- [205, 255]: 高音量
nonlinearVolume 非线性音量。由原始音量的对数值转化而来,因此在中低音量时更灵敏,可以用作 Active Speaker(房间内最活跃用户)的识别。取值范围是:[-127,0],单位 dB。
- [-127, -60]: 无声
- [-59, -40]: 低音量
- [-39, -20]: 中音量
- [-19, 0]: 高音量

linearVolume

类型: number

线性音量,与原始音量呈线性关系,数值越大,音量越大。取值范围是:[0,255]。
- [0, 25]: 无声
- [26, 75]: 低音量
- [76, 204]: 中音量
- [205, 255]: 高音量

nonlinearVolume

类型: number

非线性音量。由原始音量的对数值转化而来,因此在中低音量时更灵敏,可以用作 Active Speaker(房间内最活跃用户)的识别。取值范围是:[-127,0],单位 dB。
- [-127, -60]: 无声
- [-59, -40]: 低音量
- [-39, -20]: 中音量
- [-19, 0]: 高音量

RemoteAudioPropertiesInfo

类型: interface

远端音频信息

名称 描述
streamKey 远端流信息
audioPropertiesInfo 远端音频属性信息

streamKey

类型: StreamKey

远端流信息

audioPropertiesInfo

类型: AudioPropertiesInfo

远端音频属性信息

StreamKey

类型: interface

远端流信息

名称 描述
roomId 房间 ID
userId 用户 ID
streamIndex 流属性,标记该流为麦克风采集音频流或屏幕音频流。

roomId

类型: string

房间 ID

userId

类型: string

用户 ID

streamIndex

类型: StreamIndex

流属性,标记该流为麦克风采集音频流或屏幕音频流。

onSEIMessageEvent

类型: interface

收到带有 SEI 消息的视频帧时,收到此回调

名称 描述
remoteStreamKey 包含 SEI 发送者的用户名,所在的房间名和媒体流
sei 收到的 SEI 消息内容

remoteStreamKey

类型: RemoteStreamKey

包含 SEI 发送者的用户名,所在的房间名和媒体流

sei

类型: Uint8Array

收到的 SEI 消息内容

RemoteStreamKey

类型: interface

远端流信息

名称 描述
roomId 房间 ID
userId 用户 ID
streamIndex 流属性,包括主流、屏幕流。

roomId

类型: string

房间 ID

userId

类型: string

用户 ID

streamIndex

类型: StreamIndex

流属性,包括主流、屏幕流。

SubscribeState

类型: enum

音视频流订阅结果

属性 值 描述
SUBSCRIBE_SUCC 0 更新订阅状态成功
SUBSCRIBE_FAIL 1 更新订阅状态失败

PublishState

类型: enum

音视频流发布结果

属性 值 描述
PUBLISH_SUCC 0 发布成功
PUBLISH_FAIL 1 发布失败

AudioMixingStateChangedEvent

类型: interface

音频混音文件播放状态改变事件

名称 描述
mixId 混音 ID
state 混音状态
error 混音错误

mixId

类型: number

混音 ID

state

类型: any

混音状态

error

类型: any

混音错误

CloudProxyConnectedEvent

类型: interface

名称 描述
interval

interval

类型: number

PublicStreamResultEvent

类型: interface

公共流发布结果

名称 描述
code 公共流发布事件编号
message 公共流发布事件详情

code

类型: number

公共流发布事件编号

message

类型: string

公共流发布事件详情

PublicStreamVideoFirstFrameDecodedEvent

公共流首帧视频解码事件。

Omit<
  onVideoFirstFrameDecodedEvent,
  'userId'
> & {
  publicStreamId: string;
}
名称 类型 描述
publicStreamId string 公共流 ID。
onVideoFirstFrameDecodedEvent onVideoFirstFrameDecodedEvent 视频首帧解码事件。

PublicStreamAudioFirstFrameDecodedEvent

类型: interface

公共流首帧解码/渲染事件。

名称 描述
publicStreamId 公共流 ID。

publicStreamId

类型: string

公共流 ID。

NetworkQuality

类型: enum

网络质量

属性 值 描述
UNKNOWN 0 网络质量未知
EXCELLENT 1 网络质量极好
GOOD 2 主观感觉和 Excellent 差不多,但码率可能略低
POOR 3 主观感受有瑕疵但不影响沟通
BAD 4 勉强能沟通但不顺畅。建议降低采样率、码率或通过 UI 提示用户是否切换为纯语音通话。
VBAD 5 网络质量非常差,基本不能沟通。建议通过 UI 给出弱网提示。

RemoteStreamSwitch

类型: interface

流切换信息。本地用户订阅的远端流触发回退策略时的流切换信息。

名称 描述
userId 订阅的音视频流的发布者的用户 ID
isScreen 是否是屏幕共享流
beforeVideoIndex 原分辨率视频流的下标
afterVideoIndex 现分辨率视频流的下标
beforeEnable 原媒体流是否是视频流
afterEnable 现媒体流是否是视频流
reason 触发流回退或恢复的原因

userId

类型: string

订阅的音视频流的发布者的用户 ID

isScreen

类型: boolean

是否是屏幕共享流

beforeVideoIndex

类型: number

原分辨率视频流的下标

afterVideoIndex

类型: number

现分辨率视频流的下标

beforeEnable

类型: boolean

原媒体流是否是视频流

afterEnable

类型: boolean

现媒体流是否是视频流

reason

类型: FallbackOrRecoverReason

触发流回退或恢复的原因

FallbackOrRecoverReason

类型: enum

触发流回退或恢复的原因

属性 值 描述
Unknown -1 其他原因,非带宽原因引起的回退或恢复。默认值
SubscribeFallbackByBandwidth 0 由带宽不足导致的流回退。
SubscribeRecoverByBandwidth 2 由带宽恢复导致的流恢复。

StreamMixingEvent

类型: interface

转推直播相关事件。

名称 描述
event 转推直播事件类型。
error 转推直播事件错误码。
message 转推直播事件错误详情。

event

类型: StreamMixingEventType

转推直播事件类型。

error

类型: StreamMixingEventErrorCode

转推直播事件错误码。

message

类型: string

转推直播事件错误详情。

StreamMixingEventType

类型: enum

转推直播事件类型

属性 值 描述
START 1 已发起开始转推请求。
START_SUCCESS 2 转推至 CDN 成功。
START_FAILED 3 推流 CDN 失败。
UPDATE 4 已发起更新转推请求。
UPDATE_SUCCESS 5 成功应用新配置进行推流。
UPDATE_FAILED 6 更新合流失败,新配置参数校验失败或配置未生效。
STOP 7 已发起停止转推请求。
STOP_SUCCESS 8 成功停止推流至CDN。
STOP_FAILED 9 停止推流失败。

StreamMixingEventErrorCode

类型: enum

转推直播错误码

属性 值 描述
ERR_OK 0 推流成功
ERR_PARAM_INVALID 1 推流参数错误。
ERR_FRAME_TIMEOUT 2 和 RTC 服务端建立连接失败,会自动重连。
ERR_POSTPROCESS 3 合流服务中间过程存在错误,建议重试。
ERR_PUSH_CDN 4 推流失败,等待服务端重推。
ERR_UNKNOWN 9999 其他异常。

VideoStreamBannedEvent

类型: interface

视频流发布封禁/解禁事件

名称 描述
uid 被禁用/解禁的视频流用户 ID
banned 视频流发布状态
true:视频流发布被禁止
false: 视频流发布被解禁

uid

类型: string

被禁用/解禁的视频流用户 ID

banned

类型: boolean

视频流发布状态
true:视频流发布被禁止
false: 视频流发布被解禁

AudioStreamBannedEvent

类型: interface

音频流发布封禁/解禁事件

名称 描述
uid 被禁用/解禁的音频流用户 ID
banned 音频流发布状态
true:音频流发布被禁止
false: 音频流发布被解禁

uid

类型: string

被禁用/解禁的音频流用户 ID

banned

类型: boolean

音频流发布状态
true:音频流发布被禁止
false: 音频流发布被解禁

RoomConfig

类型: interface

房间参数配置

名称 描述
isAutoPublish 是否自动发布音频流,默认为自动发布。
取消自动发布后,通过调用 publish 进行音视频流发布。
isAutoSubscribeAudio 是否自动订阅音频流,默认为自动订阅。
不包含屏幕流。
进房后,你可以调用 subscribeUserStream 修改订阅设置。
isAutoSubscribeVideo 是否自动订阅视频流,默认为自动订阅。
不包含屏幕流。
进房后,你可以调用 subscribeUserStream 修改订阅设置。
roomProfileType 房间模式
根据所需场景,选择合适的房间模式,应用不同的音视频算法、视频参数和网络配置
调用 setAudioProfile 选择音频参数配置
remoteVideoConfig 远端视频流参数

isAutoPublish

类型: boolean

是否自动发布音频流,默认为自动发布。
取消自动发布后,通过调用 publish 进行音视频流发布。

isAutoSubscribeAudio

类型: boolean

是否自动订阅音频流,默认为自动订阅。
不包含屏幕流。
进房后,你可以调用 subscribeUserStream 修改订阅设置。

isAutoSubscribeVideo

类型: boolean

是否自动订阅视频流,默认为自动订阅。
不包含屏幕流。
进房后,你可以调用 subscribeUserStream 修改订阅设置。

roomProfileType

类型: RoomProfileType

房间模式
根据所需场景,选择合适的房间模式,应用不同的音视频算法、视频参数和网络配置
调用 setAudioProfile 选择音频参数配置

remoteVideoConfig

类型: RemoteVideoConfig

远端视频流参数

RoomProfileType

类型: enum

房间模式
调用 joinRoom 时,根据所需场景,选择合适的房间模式,应用不同的音视频算法、视频参数和网络配置
如果需要设置音频参数,应调用 setAudioProfile 进行配置

属性 值 描述
communication 0 默认场景,普通音视频通话模式,例如,语音聊天室
chat 5 适用于 1 vs 1 音视频通话
chatRoom 6 适用于 2 人以上纯语音通话
coHost 9 适用于直播中主播之间连麦的业务场景
meeting 16 适用于云端会议中的个人设备
classRoom 18 适用于课堂互动,房间内同时进行音视频互动的人数大于 9 人

RemoteVideoConfig

类型: interface

远端视频流参数

名称 描述
width 视频宽度,单位:px
height 视频宽度,单位:px

width

类型: number

视频宽度,单位:px

height

类型: number

视频宽度,单位:px

ScreenConfig

类型: interface

屏幕共享流设置

名称 描述
enableAudio 在共享屏幕时是否显示共享音频选项:
• Window 端选择共享整个屏幕时支持共享系统音频;在共享 Chrome 标签页时支持共享 Tab 标签页面音频。
• macOS 仅支持在共享 Chrome 标签页时共享 Tab 标签页面音频。

enableAudio

类型: boolean

在共享屏幕时是否显示共享音频选项:
• Window 端选择共享整个屏幕时支持共享系统音频;在共享 Chrome 标签页时支持共享 Tab 标签页面音频。
• macOS 仅支持在共享 Chrome 标签页时共享 Tab 标签页面音频。

VideoPlayerOption

类型: interface

播放器信息和渲染模式

名称 描述
renderDom DOM
renderMode 渲染模式:可选 RENDER_MODE_HIDDEN 和 RENDER_MODE_FIT 。
userId 用户 ID,支持以下字符集范围
+ 26 个大写字母 A ~ Z
+ 26 个小写字母 a ~ z
+ 10 个数字 0 ~ 9
+ 下划线 "_",at 符 "@",减 号 "-"

renderDom

类型: string | HTMLElement

DOM

renderMode

类型: VideoRenderMode

渲染模式:可选 RENDER_MODE_HIDDEN 和 RENDER_MODE_FIT 。

userId

类型: string

用户 ID,支持以下字符集范围
+ 26 个大写字母 A ~ Z
+ 26 个小写字母 a ~ z
+ 10 个数字 0 ~ 9
+ 下划线 "_",at 符 "@",减 号 "-"

VideoRenderMode

类型: enum

渲染模式

属性 值 描述
RENDER_MODE_HIDDEN 0 视窗填满优先。
视频帧等比缩放,直至视窗被视频填满。如果视频帧长宽比例与视窗不同,视频帧的多出部分将无法显示。
RENDER_MODE_FIT 1 视频帧内容全部显示优先。
视频帧等比缩放,直至视频帧能够在视窗上全部显示。如果视频帧长宽比例与视窗不同,视窗上未被视频帧填满区域将被涂黑。

MirrorType

类型: enum

镜像类型

属性 值 描述
MIRROR_TYPE_NONE 0 本地渲染和编码传输时均无镜像效果
MIRROR_TYPE_RENDER 1 本地渲染时有镜像效果,编码传输时无镜像效果

VideoEncoderConfig

类型: interface

视频编码参数

名称 描述
width 视频宽度,单位:px。
height 视频高度,单位:px。
frameRate 视频帧率,单位:fps。
maxKbps 最大编码码率,RTC SDK 内部采集和自定义采集均需设定 > 0 的数值,默认值为 3000kbps。

width

类型: number

视频宽度,单位:px。

height

类型: number

视频高度,单位:px。

frameRate

类型: number

视频帧率,单位:fps。

maxKbps

类型: number

最大编码码率,RTC SDK 内部采集和自定义采集均需设定 > 0 的数值,默认值为 3000kbps。

ScreenEncoderConfig

类型: interface

屏幕共享的视频编码参数。

名称 描述
width 视频宽度,单位:px。
height 视频高度,单位:px。
frameRate 视频帧率,单位:fps。
maxKbps 最大编码码率,RTC SDK 内部采集和自定义采集均需设定 > 0 的数值,默认值为 3000kbps。
contentHint 屏幕共享的视频内容类型。
- 'detail'【默认值】:清晰度优先,适用于视频内容包含图片、文本混排的情况。
- 'text':清晰度优先,适用于视频内容只包含大量文本的情况。
- 'motion':流畅度优先,适用于视频内容为摄像头采集、电影、视频、游戏的情况。

width

类型: number

视频宽度,单位:px。

height

类型: number

视频高度,单位:px。

frameRate

类型: number

视频帧率,单位:fps。

maxKbps

类型: number

最大编码码率,RTC SDK 内部采集和自定义采集均需设定 > 0 的数值,默认值为 3000kbps。

contentHint

类型: "text" | "motion" | "detail"

屏幕共享的视频内容类型。
- 'detail'【默认值】:清晰度优先,适用于视频内容包含图片、文本混排的情况。
- 'text':清晰度优先,适用于视频内容只包含大量文本的情况。
- 'motion':流畅度优先,适用于视频内容为摄像头采集、电影、视频、游戏的情况。

仅支持Chrome浏览器设置此参数。

AudioPropertiesConfig

类型: interface

音频信息提示的相关配置

名称 描述
interval 信息提示间隔,单位:ms,默认为 100ms
+ <= 0: 关闭信息提示;
+ (0,100]: 开启信息提示,不合法的 interval 值,SDK 自动设置为 100ms;
+ > 100: 开启信息提示,并将信息提示间隔设置为此值。
enableInBackground 是否在页面隐藏时保持开启获取音量回调,默认保持开启。
+ true: 保持开启
+ false:关闭

interval

类型: number

信息提示间隔,单位:ms,默认为 100ms
+ <= 0: 关闭信息提示;
+ (0,100]: 开启信息提示,不合法的 interval 值,SDK 自动设置为 100ms;
+ > 100: 开启信息提示,并将信息提示间隔设置为此值。

enableInBackground

类型: boolean

是否在页面隐藏时保持开启获取音量回调,默认保持开启。
+ true: 保持开启
+ false:关闭

LiveTranscodeConfig

类型: interface

转码推流配置参数

名称 描述
url 推流 CDN 地址
audio 音频参数
video 视频参数
layout 用户布局信息

url

类型: string

推流 CDN 地址

audio

类型: Partial<LiveTranscodeAudioConfig>

音频参数

video

类型: Partial<LiveTranscodeVideoConfig>

视频参数

layout

类型: Partial<LiveTranscodeLayoutConfig>

用户布局信息

LiveTranscodeAudioConfig

类型: interface

音频转码配置参数

名称 描述
codec 音频编码格式,选填,默认为 AAC
kBitRate 音频码率。单位为 kbps。可选取值:32, 64,128,192。默认值为 64 Kbps
sampleRate 音频采样率。单位为 kHz。可选取值:32, 44.1, 48。默认值为 48 Khz。
channels 音频声道数,可取 1 或 2。默认值为双声道。
AACProfile AAC 编码类型。可选 LC, HEv1, 和 HEv2。默认值为 LC。

codec

类型: string

音频编码格式,选填,默认为 AAC

kBitRate

类型: number

音频码率。单位为 kbps。可选取值:32, 64,128,192。默认值为 64 Kbps

sampleRate

类型: number

音频采样率。单位为 kHz。可选取值:32, 44.1, 48。默认值为 48 Khz。

channels

类型: number

音频声道数,可取 1 或 2。默认值为双声道。

AACProfile

类型: "LC" | "HEv1" | "HEv2"

AAC 编码类型。可选 LC, HEv1, 和 HEv2。默认值为 LC。

LiveTranscodeVideoConfig

类型: interface

视频转码配置参数。传入超出取值范围的值将导致转推任务发起或更新失败。

名称 描述
width 宽。范围为 [2, 4096],必须是偶数。单位 px。默认 640 px。
height 高。范围为 [2, 2160],必须是偶数。单位 px。默认 360 px
codec 编码格式。默认 H264。
fps 合流视频帧率。取值范围 >0。单位 fps。默认为 30 fps。
gop 视频 I 帧间隔。取值范围 >0。默认为 60。
lowLatency 是否使用低延时特性。默认开启。
kBitRate 合流视频码率。取值范围 [16, 50000000]。单位为 Kbps。默认为 600 Kbps。

width

类型: number

宽。范围为 [2, 4096],必须是偶数。单位 px。默认 640 px。

height

类型: number

高。范围为 [2, 2160],必须是偶数。单位 px。默认 360 px

codec

类型: string

编码格式。默认 H264。

fps

类型: number

合流视频帧率。取值范围 >0。单位 fps。默认为 30 fps。

gop

类型: number

视频 I 帧间隔。取值范围 >0。默认为 60。

lowLatency

类型: boolean

是否使用低延时特性。默认开启。

kBitRate

类型: number

合流视频码率。取值范围 [16, 50000000]。单位为 Kbps。默认为 600 Kbps。

LiveTranscodeLayoutConfig

类型: interface

视频流合流整体布局信息
开启转推直播功能后,你可以设置参与合流的每路视频流的预设布局信息和合流背景信息等。

名称 描述
regions 用户布局信息列表
appData 透传的 App 数据
backgroundColor 画布的背景颜色

regions

类型: LiveTranscodeLayoutRegion[]

用户布局信息列表

appData

类型: string

透传的 App 数据

backgroundColor

类型: string

画布的背景颜色

LiveTranscodeLayoutRegion

类型: interface

单个视频流在合流中的布局信息

名称 描述
alpha 透明度。可选范围为 [0.0, 1.0]。
userId 视频流发布用户的用户 ID
x 视频流对应区域左上角的横坐标相对整体画面的归一化比例,取值的范围为 [0.0, 1.0)。
y 视频流对应区域左上角的纵坐标相对整体画面的归一化比例,取值的范围为 [0.0, 1.0)。
zorder 用户视频布局在画布中的层级。取值范围为[0 - 100]。0为底层,值越大越上层。
w 视频流对应区域宽度相对整体画面的归一化比例,取值的范围为 (0.0, 1.0]。
h 视频流对应区域高度相对整体画面的归一化比例,取值的范围为 (0.0, 1.0]。
renderMode 视频显示模式,默认可设置为1。可选取值如下:
• 1: 视频尺寸等比缩放,优先保证窗口被填满。当视频尺寸与显示窗口尺寸不一致时,多出的视频将被截掉。
• 2: 视频尺寸等比缩放,优先保证视频内容全部显示。当视频尺寸与显示窗口尺寸不一致时,会把窗口未被填满的区域填充成黑色。
• 3: 视频尺寸非等比例缩放,把窗口充满。当视频尺寸与显示窗口尺寸不一致时,视频高或宽方向会被拉伸。
contentControl 合流内容控制。默认值为0,可选取值如下:
• 0: 输出的混流包含音视频
• 1: 只包含音频
• 2: 只包含视频
isScreenStream 是否是屏幕流
isLocalUser 是否本地用户

alpha

类型: number

透明度。可选范围为 [0.0, 1.0]。

userId

类型: string

视频流发布用户的用户 ID

x

类型: number

视频流对应区域左上角的横坐标相对整体画面的归一化比例,取值的范围为 [0.0, 1.0)。

y

类型: number

视频流对应区域左上角的纵坐标相对整体画面的归一化比例,取值的范围为 [0.0, 1.0)。

zorder

类型: number

用户视频布局在画布中的层级。取值范围为[0 - 100]。0为底层,值越大越上层。

w

类型: number

视频流对应区域宽度相对整体画面的归一化比例,取值的范围为 (0.0, 1.0]。

h

类型: number

视频流对应区域高度相对整体画面的归一化比例,取值的范围为 (0.0, 1.0]。

renderMode

类型: number

视频显示模式,默认可设置为1。可选取值如下:
• 1: 视频尺寸等比缩放,优先保证窗口被填满。当视频尺寸与显示窗口尺寸不一致时,多出的视频将被截掉。
• 2: 视频尺寸等比缩放,优先保证视频内容全部显示。当视频尺寸与显示窗口尺寸不一致时,会把窗口未被填满的区域填充成黑色。
• 3: 视频尺寸非等比例缩放,把窗口充满。当视频尺寸与显示窗口尺寸不一致时,视频高或宽方向会被拉伸。

contentControl

类型: number

合流内容控制。默认值为0,可选取值如下:
• 0: 输出的混流包含音视频
• 1: 只包含音频
• 2: 只包含视频

isScreenStream

类型: boolean

是否是屏幕流

isLocalUser

类型: boolean

是否本地用户

VideoSourceType

类型: enum

视频采集方式

属性 值 描述
VIDEO_SOURCE_TYPE_EXTERNAL 0 自定义采集
VIDEO_SOURCE_TYPE_INTERNAL 1 内部采集,使用由 SDK 提供的视频采集模块(默认)

AudioSourceType

类型: enum

音频采集方式

属性 值 描述
AUDIO_SOURCE_TYPE_EXTERNAL 0 自定义采集模块
AUDIO_SOURCE_TYPE_INTERNAL 1 内部采集,使用由 SDK 提供的音频采集模块

USER_ONLINE_STATUS

类型: enum

登录状态

属性 值 描述
OFFLINE 0 离线。无法收发点对点消息。
ONLINE 1 在线
UNREACHABLE 2 未知。无法收发点对点消息。

CloudProxyInfo

类型: interface

云代理信息。

名称 描述
logProxy 埋点日志上报的的代理地址。
accessProxy 统一接入的代理地址。
configProxy RTC 配置下发的代理地址。

logProxy

类型: string

埋点日志上报的的代理地址。

accessProxy

类型: string

统一接入的代理地址。

configProxy

类型: string

RTC 配置下发的代理地址。

PublicStreamConfig

类型: interface

公共流配置信息

名称 描述
video 视频参数
layout 公共流的布局模式

video

类型: { width?: number; height?: number; fps?: number; kBitRate: number; }

视频参数

layout

类型: { interpolationMode?: PublicInterpolationMode; backgroundColor?: string; backgroundImage?: string; regions?: PublicStreamLayoutRegion[]; }

公共流的布局模式

PublicInterpolationMode

类型: enum

补帧模式

属性 值 描述
PREV_FRAME 0 补最后一帧。
OTHER_FRAME 1 补背景图片或者黑帧。

PublicStreamLayoutRegion

多路媒体流中一路流的布局设置。

Omit<
  LiveTranscodeLayoutRegion,
  'isLocalUser' | 'contentControl'
> & {
  roomId: string;
  mediaType?: PublicStreamType;
  sourceCrop?: {
    x: number;
    y: number;
    w: number;
    h: number;
  };
}
名称 类型 描述
roomId string 媒体流发布用户的房间 ID
mediaType PublicStreamType 公共流输出内容类型
sourceCrop { x: number; y: number; w: number; h: number; } 公共流视频裁剪配置
x number 裁剪后得到的视频帧左上角横坐标相对于裁剪前整体画面的归一化比例,取值范围[0.0, 1.0)。
y number 裁剪后得到的视频帧左上角纵坐标相对于裁剪前整体画面的归一化比例,取值范围[0.0, 1.0)。
w number 裁剪后得到的视频帧宽度相对于裁剪前整体画面的归一化比例,取值范围(0.0, 1.0]。
h number 裁剪后得到的视频帧高度相对于裁剪前整体画面的归一化比例,取值范围(0.0, 1.0]。

PublicStreamType

类型: enum

公共流输出内容类型

属性 值 描述
AUDIO_AND_VIDEO 0 包含音视频
AUDIO_ONLY 1 仅包含音频
VIDEO_ONLY 2 仅包含视频

SubscribeFallbackOption

类型: enum

订阅端音视频流回退选项。

属性 值 描述
DISABLE 0 不开启回退功能。默认设置。
VIDEO_STREAM_LOW 1 下行网络不佳时,对视频流做降级处理。具体降级规则参看音视频流回退文档。
该设置仅对发布端调用 EnableSimulcastMode 开启发送多路流功能的情况生效。
AUDIO_ONLY 2 下行网络不佳时,取消接收视频,仅接收音频。
当发布端开启发送多路流功能时,设置此选项不利于提升用户体验,因此不建议设置此选项。

RemoteUserPriority

类型: enum

远端用户优先级

属性 值 描述
LOW 0 用户优先级为低(默认值)
MEDIUM 100 用户优先级为正常
HIGH 200 用户优先级为高

AudioProfileType

类型: enum

音质档位
调用 setAudioProfile 设置的音质档位

属性 值 描述
default 0 默认音质
服务器下发或客户端已设置的 RoomProfileType#RoomProfileType 的音质配置
fluent 1 流畅音质。
单声道,采样率为 16kHz,编码码率为 24kbps。
流畅优先、低功耗、低流量消耗,适用于大部分游戏场景,如小队语音、组队语音、国战语音等。
standard 2 单声道标准音质。
采样率为 48kHz,编码码率为 48kbps。
适用于对音质有一定要求的场景,同时延时、功耗和流量消耗相对适中,适合教育场景和狼人杀等游戏。
hd 3 双声道音乐音质
采样率为 48kHz,编码码率为 128kbps。
超高音质,同时延时、功耗和流量消耗相对较大,适用于连麦 PK 等音乐场景。
游戏场景不建议使用。
standardStereo 4 双声道标准音质。采样率为 48 KHz,编码码率最大值为 80 Kbps
hdMono 5 单声道音乐音质。采样率为 48 kHz,编码码率最大值为 128 Kbps

EngineConfig

类型: interface

引擎级别配置项

名称 描述
autoPlayPolicy 自动播放策略

autoPlayPolicy

类型: RTCAutoPlayPolicy

自动播放策略

RTCAutoPlayPolicy

类型: enum

自动播放策略。参考自动播放策略,获取更多相关信息。

属性 值 描述
AUTO_PLAY 0 默认值,自动播放音频和视频
VIDEO_ONLY 1 自动播放视频,不自动播放音频
PLAY_MANUALLY 2 不自动播放,引导用户通过交互,手动播放