类型: interface
房间参数配置。房间是 RTC 通话的抽象概念。在同一个房间中的用户可以进行音视频通话。
API
| 名称 | 描述 |
|---|---|
| room_profile_type | 房间模式,默认为普通音视频通话模式,进房后不可更改。 |
| is_auto_publish | 是否自动发布音视频流,默认为自动发布。 创建和加入多房间时,只能将其中一个房间设置为自动发布。 若调用 setUserVisibility 将自身可见性设为 false,无论是默认的自动发布流还是手动设置的自动发布流都不会进行发布,你需要将自身可见性设为 true 后方可发布。 |
| is_auto_subscribe_audio | 是否自动订阅音频流,默认为自动订阅。 进房后,你可以调用 subscribeStream 修改订阅设置。 |
| is_auto_subscribe_video | 是否自动订阅主视频流,默认为自动订阅。 进房后,你可以调用 subscribeStream 修改订阅设置。 |
| remote_video_config | 远端视频流参数 |
类型: RoomProfileType
房间模式,默认为普通音视频通话模式,进房后不可更改。
类型: boolean
是否自动发布音视频流,默认为自动发布。
创建和加入多房间时,只能将其中一个房间设置为自动发布。
若调用 setUserVisibility 将自身可见性设为 false,无论是默认的自动发布流还是手动设置的自动发布流都不会进行发布,你需要将自身可见性设为 true 后方可发布。
类型: boolean
是否自动订阅音频流,默认为自动订阅。
包含主流和屏幕流。
进房后,你可以调用 subscribeStream 修改订阅设置。
类型: boolean
是否自动订阅主视频流,默认为自动订阅。
包含主流和屏幕流。
进房后,你可以调用 subscribeStream 修改订阅设置。
远端视频流参数
类型: enum
房间模式
根据所需场景,选择合适的房间模式,应用不同的音视频算法、视频参数和网络配置
调用 setAudioProfile 改变音频参数配置
成员
| 属性 | 值 | 描述 |
|---|---|---|
| kRoomProfileTypeCommunication | 0 | 普通音视频通话模式。 你应在 1V1 音视频通话时,使用此设置。 此设置下,弱网抗性较好。 |
| kRoomProfileTypeGame | 2 | 游戏语音模式,低功耗、低流量消耗。 低端机在此模式下运行时,进行了额外的性能优化: + 部分低端机型配置编码帧长 40/60 + 部分低端机型关闭软件 3A 音频处理 增强对 iOS 其他屏幕录制进行的兼容性,避免音频录制被 RTC 打断。 |
| kRoomProfileTypeCloudGame | 3 | 云游戏模式。 如果你的游戏场景需要低延迟的配置,使用此设置。 此设置下,弱网抗性较差。 |
| kRoomProfileTypeLowLatency | 4 | 低时延模式。SDK 会使用低延时设置。 当你的场景非游戏或云游戏场景,又需要极低延时的体验时,可以使用该模式。 该模式下,音视频通话延时会明显降低,但同时弱网抗性、通话音质等均会受到一定影响。 在使用此模式前,强烈建议咨询技术支持同学。 |
| kRoomProfileTypeChat | 5 | 适用于 1 vs 1 音视频通话 |
| kRoomProfileTypeChatRoom | 6 | 适用于 3 人及以上纯语音通话 音视频通话为媒体模式,上麦时切换为通话模式 |
| kRoomProfileTypeLwTogether | 7 | 实现多端同步播放音视频,适用于 “一起看” 或 “一起听” 场景。 该场景中,使用 RTC 信令同步播放进度,共享的音频内容不通过 RTC 进行传输。 |
| kRoomProfileTypeGameHD | 8 | 适用于对音质要求较高的游戏场景,优化音频 3A 策略,只通过媒体模式播放音频 |
| kRoomProfileTypeCoHost | 9 | 适用于直播中主播之间连麦的业务场景。 直播时通过 CDN,发起连麦 PK 时使用 RTC。 |
| kRoomProfileTypeInteractivePodcast | 10 | 适用于单主播和观众进行音视频互动的直播。通话模式,上下麦不会有模式切换,避免音量突变现象 |
| kRoomProfileTypeKTV | 11 | 线上 KTV 场景,音乐音质,低延迟 使用 RTC 传输伴奏音乐,混音后的歌声,适合独唱或单通合唱 |
| kRoomProfileTypeChorus | 12 | 适合在线实时合唱场景,高音质,超低延迟。使用本配置前请联系技术支持进行协助完成其他配置。 |
| kRoomProfileTypeGameStreaming | 14 | 适用于 1 vs 1 游戏串流,支持公网或局域网。 |
| kRoomProfileTypeLanLiveStreaming | 15 | 适用于局域网的 1 对多视频直播,最高支持 8K, 60 帧/秒, 100 Mbps 码率 需要在局域网配置私有化部署媒体服务器。 |
| kRoomProfileTypeMeeting | 16 | 适用于云端会议中的个人设备 |
| kRoomProfileTypeMeetingRoom | 17 | 适用于云端会议中的会议室终端设备,例如 Rooms,投屏盒子等。 |
| kRoomProfileTypeClassroom | 18 | 适用于课堂互动,房间内所有成员都可以进行音视频互动 当你的场景中需要同时互动的成员超过 10 人时使用此模式 |
类型: interface
远端视频帧信息
API
| 名称 | 描述 |
|---|---|
| framerate | 期望订阅的最高帧率,单位:fps,默认值为 0,设为大于 0 的值时开始生效。 当发布端帧率低于设定帧率,或订阅端开启性能回退后下行弱网,则帧率会相应下降。 仅码流支持 SVC 分级编码特性时方可生效。 |
| resolution_width | 视频宽度,单位:px |
| resolution_height | 视频高度,单位:px |
类型: number
期望订阅的最高帧率,单位:fps,默认值为 0,设为大于 0 的值时开始生效。
当发布端帧率低于设定帧率,或订阅端开启性能回退后下行弱网,则帧率会相应下降。
仅码流支持 SVC 分级编码特性时方可生效。
类型: number
视频宽度,单位:px
类型: number
视频高度,单位:px
类型: enum
媒体流类型
成员
| 属性 | 值 | 描述 |
|---|---|---|
| kMediaStreamTypeAudio | 1 | 只控制音频 |
| kMediaStreamTypeVideo | 2 | 只控制视频 |
| kMediaStreamTypeBoth | 3 | 同时控制音频和视频 |
类型: enum
暂停/恢复接收远端的媒体流类型。
成员
| 属性 | 值 | 描述 |
|---|---|---|
| kRTCPauseResumeControlMediaTypeAudio | 0 | 只控制音频,不影响视频 |
| kRTCPauseResumeControlMediaTypeVideo | 1 | 只控制视频,不影响音频 |
| kRTCPauseResumeControlMediaTypeVideoAndAudio | 2 | 同时控制音频和视频 |
类型: enum
发送消息的可靠有序性
成员
| 属性 | 值 | 描述 |
|---|---|---|
| kMessageConfigReliableOrdered | 0 | 低延时可靠有序消息 |
| kMessageConfigUnreliableOrdered | 1 | 超低延时有序消息 |
| kMessageConfigUnreliableUnordered | 2 | 超低延时无序消息 |
类型: interface
媒体流跨房间转发的目标房间的相关信息
API
| 名称 | 描述 |
|---|---|
| forward_stream_dests | 目标房间信息,数组中的每个元素包含一个房间的信息。 |
| dest_count | 目标房间数量。媒体流同时转发的目标房间数量建议小于等于 4 个。 |
类型: ForwardStreamInfo[]
目标房间信息,数组中的每个元素包含一个房间的信息。
类型: number
目标房间数量。媒体流同时转发的目标房间数量建议小于等于 4 个。
类型: interface
媒体流跨房间转发的目标房间的相关信息
API
| 名称 | 描述 |
|---|---|
| token | 使用转发目标房间 RoomID 和 UserID 生成 Token。 测试时可使用控制台生成临时 Token,正式上线需要使用密钥 SDK 在你的服务端生成并下发 Token。 如果 Token 无效,转发失败。 |
| room_id | 跨房间转发媒体流过程中目标房间 ID |
类型: string
使用转发目标房间 RoomID 和 UserID 生成 Token。
测试时可使用控制台生成临时 Token,正式上线需要使用密钥 SDK 在你的服务端生成并下发 Token。
如果 Token 无效,转发失败。
类型: string
跨房间转发媒体流过程中目标房间 ID
类型: enum
空间音频音量随距离衰减模式
成员
| 属性 | 值 | 描述 |
|---|---|---|
| kAttenuationTypeNone | 0 | 不随距离衰减 |
| kAttenuationTypeLinear | 1 | 线性衰减,音量随距离增大而线性减小 |
| kAttenuationTypeExponential | 2 | 指数型衰减,音量随距离增大进行指数衰减 |
类型: interface
三维朝向信息,三个向量需要两两垂直。
API
| 名称 | 描述 |
|---|---|
| forward | 正前方朝向,默认值为 {1,0,0},即正前方朝向 x 轴正方向 |
| right | 正右方朝向,默认值为 {0,1,0},即右手朝向 y 轴正方向 |
| up | 正上方朝向,默认值为 {0,0,1},即头顶朝向 z 轴正方向 |
类型: Orientation
正前方朝向,默认值为 {1,0,0},即正前方朝向 x 轴正方向
类型: Orientation
正右方朝向,默认值为 {0,1,0},即右手朝向 y 轴正方向
类型: Orientation
正上方朝向,默认值为 {0,0,1},即头顶朝向 z 轴正方向
类型: interface
方向朝向信息
类型: number
x 方向向量
类型: number
y 方向向量
类型: number
z 方向向量
类型: enum
反馈信息类型
成员
| 属性 | 值 | 描述 |
|---|---|---|
| kProblemFeedbackOptionNone | 0 | 没有问题 |
| kProblemFeedbackOptionOtherMessage | 1 | 其他问题 |
| kProblemFeedbackOptionAudioNotClear | 2 | 声音不清晰 |
| kProblemFeedbackOptionVideoNotClear | 3 | 视频不清晰 |
| kProblemFeedbackOptionNotSync | 4 | 音视频不同步 |
| kProblemFeedbackOptionAudioLagging | 5 | 音频卡顿 |
| kProblemFeedbackOptionVideoLagging | 6 | 视频卡顿 |
| kProblemFeedbackOptionDisconnected | 7 | 连接失败 |
| kProblemFeedbackOptionNoAudio | 8 | 无声音 |
| kProblemFeedbackOptionNoVideo | 9 | 无画面 |
| kProblemFeedbackOptionAudioStrength | 10 | 声音过小 |
| kProblemFeedbackOptionEcho | 11 | 回声噪音 |
| KFeedbackOptionEarBackDelay | 12 | 耳返延迟大 |
类型: interface
音视频回路测试参数
API
| 名称 | 描述 |
|---|---|
| audioPropertiesReportInterval | 音量信息提示间隔,单位:ms,默认为 100ms + <= 0: 关闭信息提示+ (0,100]: 开启信息提示,不合法的 interval 值,SDK 自动设置为 100ms+ > 100: 开启信息提示,并将信息提示间隔设置为此值 |
| uid | 进行音视频通话回路测试的用户 ID |
| roomId | 测试用户加入的房间 ID。 |
| token | 对用户进房时进行鉴权验证的动态密钥,用于保证音视频通话回路测试的安全性。 |
类型: number
音量信息提示间隔,单位:ms,默认为 100ms
+<= 0: 关闭信息提示
+(0,100]: 开启信息提示,不合法的 interval 值,SDK 自动设置为 100ms
+> 100: 开启信息提示,并将信息提示间隔设置为此值
类型: string
进行音视频通话回路测试的用户 ID
类型: string
测试用户加入的房间 ID。
类型: string
对用户进房时进行鉴权验证的动态密钥,用于保证音视频通话回路测试的安全性。
类型: interface
视频流参数
API
| 名称 | 描述 |
|---|---|
| width | 视频宽度,单位:像素 |
| height | 视频高度,单位:像素 |
| frameRate | 视频帧率,单位:fps |
| maxBitrate | 最大发送编码码率(kbps),建议使用默认的自动码率。 设为 0 则不对视频流进行编码发送。 |
| encoderPreference | 视频编码质量策略 |
类型: number
视频宽度,单位:像素
类型: number
视频高度,单位:像素
类型: number
视频帧率,单位:fps
类型: number
最大发送编码码率(kbps),建议使用默认的自动码率。
视频编码质量策略
类型: enum
编码策略偏好
成员
| 属性 | 值 | 描述 |
|---|---|---|
| kVideoEncodePreferenceDisabled | 0 | 无偏好。不降低帧率和分辨率。 |
| kVideoEncodePreferenceFramerate | 1 | (默认值)帧率优先。 |
| kVideoEncodePreferenceQuality | 2 | 分辨率优先。 |
| kVideoEncodePreferenceBalance | 3 | 平衡帧率与分辨率。 |
类型: enum
镜像类型
成员
| 属性 | 值 | 描述 |
|---|---|---|
| kMirrorTypeNone | 0 | 本地预览和编码传输时均无镜像效果 |
| kMirrorTypeRender | 1 | 本地预览时有镜像效果,编码传输时无镜像效果 |
| kMirrorTypeRenderAndEncoder | 3 | 本地预览和编码传输时均有镜像效果 |
类型: enum
基础美颜模式
成员
| 属性 | 值 | 描述 |
|---|---|---|
| kEffectBeautyWhite | 0 | 美白 |
| kEffectBeautySmooth | 1 | 磨皮 |
| kEffectBeautySharpen | 2 | 锐化 |
类型: interface
转推直播配置参数
API
| 名称 | 描述 |
|---|---|
| room_id | 媒体流所在的房间 ID。必填。 |
| user_id | 媒体流所属的用户 ID |
| uri | 推流地址 |
| audio_param | 音频参数 |
| video_param | 视频参数 |
| layout_regions | 布局设置 |
| background_color | 背景颜色 |
| app_data | 设置透传的 App 数据 |
类型: string
媒体流所在的房间 ID。必填。
类型: string
媒体流所属的用户 ID
类型: string
推流地址
音频参数
视频参数
类型: TranscoderLayoutRegion[]
布局设置
类型: string
背景颜色
类型: string
设置透传的 App 数据
类型: interface
音频转码配置参数
API
| 名称 | 描述 |
|---|---|
| i32_sample_rate | 音频采样率,单位 kHz。可取 32Khz、44.1Khz、48Khz,默认值为 48Khz。 |
| i32_channel_num | 音频声道数。可取 1、2,默认值为 2。 |
| i32_bitrate_kbps | 音频码率,单位 Kbps。可取范围 [32Kbps, 192Kbps],默认值为 64Kbps。 |
| audio_codec_profile | AAC 等级。默认值为 0。 |
类型: number
音频采样率,单位 kHz。可取 32Khz、44.1Khz、48Khz,默认值为 48Khz。
类型: number
音频声道数。可取 1、2,默认值为 2。
类型: number
音频码率,单位 Kbps。可取范围 [32Kbps, 192Kbps],默认值为 64Kbps。
类型: TranscoderAudioCodecProfile
AAC 等级。默认值为 0。
类型: enum
转推直播音频编码 AAC 等级
成员
| 属性 | 值 | 描述 |
|---|---|---|
| kByteAACProfileLC | 0 | AAC-LC |
| kByteAACProfileMain | 1 | AAC-MAIN |
| kByteAACProfileHEv1 | 2 | HE-AAC v1 |
| kByteAACProfileHEv2 | 3 | HE-AAC v2 |
类型: interface
合流视频转码参数
API
| 名称 | 描述 |
|---|---|
| i32_width | 合流视频宽度,单位:px。 仅支持设为偶数,如果设为奇数,后处理会直接拒绝,导致合流失败。 |
| i32_height | 合流视频高度,单位:px。 仅支持设为偶数,如果设为奇数,后处理会直接拒绝,导致合流失败。 |
| i32_fps | 合流的视频帧率。默认值为 15,取值范围是 [1, 60]。值不合法时,自动调整为默认值。 |
| i32_gop | I 帧间隔。默认值为 4,取值范围为 [1, 5],单位为秒。值不合法时,自动调整为默认值。 |
| i32_bitrate_kbps | 合流视频码率。单位为 kbps,取值范围为 [1,10000],默认值为自适应。值不合法时,自动调整为默认值。 |
| video_codec_profile | 编码参数规格 |
| lowLatency | 是否开启低延迟 |
类型: number
合流视频宽度,单位:px。
仅支持设为偶数,如果设为奇数,后处理会直接拒绝,导致合流失败。
类型: number
合流视频高度,单位:px。
仅支持设为偶数,如果设为奇数,后处理会直接拒绝,导致合流失败。
类型: number
合流的视频帧率。默认值为 15,取值范围是 [1, 60]。值不合法时,自动调整为默认值。
类型: number
I 帧间隔。默认值为 4,取值范围为 [1, 5],单位为秒。值不合法时,自动调整为默认值。
类型: number
合流视频码率。单位为 kbps,取值范围为 [1,10000],默认值为自适应。值不合法时,自动调整为默认值。
类型: TranscoderVideoCodecProfile
编码参数规格
类型: boolean
是否开启低延迟
类型: enum
转推直播视频编码参数
成员
| 属性 | 值 | 描述 |
|---|---|---|
| kByteH264ProfileBaseline | 0 | H264 格式基本规格编码 |
| kByteH264ProfileMain | 1 | H264 格式主流规格编码 |
| kByteH264ProfileHigh | 2 | H264 格式高规格编码 |
| kByteVC1ProfileBaseline | 3 | ByteVC1 格式基本规格编码 |
| kByteVC1ProfileMain | 4 | ByteVC1 格式主流规格编码 |
| kByteVC1ProfileHigh | 5 | ByteVC1 格式高规格编码 |
类型: interface
单个图片或视频流在合流中的布局信息。
开启转推直播功能后,在多路图片或视频流合流时,你可以设置其中一路流在合流中的预设布局信息。
API
| 名称 | 描述 |
|---|---|
| region_id | 合流用户的 ID。必填。 |
| room_id | 媒体流所在房间的房间 ID。 如果此图片或视频流是通过 startForwardStreamToRooms 转发到你所在房间的媒体流时,你应将房间 ID 设置为你所在的房间 ID。 |
| x | 用户视频布局相对画布左侧的偏移量,取值的范围为 [0.0, 1.0) |
| y | 用户视频布局相对画布顶端的偏移量,取值的范围为 [0.0, 1.0) |
| width | 用户视频宽度相对画布宽度的比例,取值的范围为 (0.0, 1.0] |
| height | 用户视频高度相对画布高度的比例,取值的范围为 (0.0, 1.0] |
| alpha | 透明度,取值范围 [0,255] |
| i32_z_order | 用户视频布局在画布中的层级,取值范围 [0,100],0 为底层,值越大层级越高 |
| local_user | 是否为本地用户 |
| screen_stream | 是否为屏幕流 |
| content_control | 合流内容控制。默认值为 kHasAudioAndVideo |
| render_mode | 渲染时,视频内容缩放模式 |
类型: string
合流用户的 ID。必填。
类型: string
媒体流所在房间的房间 ID。
如果此图片或视频流是通过 startForwardStreamToRooms 转发到你所在房间的媒体流时,你应将房间 ID 设置为你所在的房间 ID。
类型: number
用户视频布局相对画布左侧的偏移量,取值的范围为 [0.0, 1.0)
类型: number
用户视频布局相对画布顶端的偏移量,取值的范围为 [0.0, 1.0)
类型: number
用户视频宽度相对画布宽度的比例,取值的范围为 (0.0, 1.0]
类型: number
用户视频高度相对画布高度的比例,取值的范围为 (0.0, 1.0]
类型: number
透明度,取值范围 [0,255]
类型: number
用户视频布局在画布中的层级,取值范围 [0,100],0 为底层,值越大层级越高
类型: boolean
是否为本地用户
类型: boolean
是否为屏幕流
类型: TranscoderContentControlType
合流内容控制。默认值为 kHasAudioAndVideo
渲染时,视频内容缩放模式
类型: enum
合流输出内容类型
成员
| 属性 | 值 | 描述 |
|---|---|---|
| kHasAudioAndVideo | 0 | 音视频 |
| kHasAudioOnly | 1 | 音频 |
| kHasVideoOnly | 2 | 视频 |
类型: enum
转推直播视频渲染模式
成员
| 属性 | 值 | 描述 |
|---|---|---|
| kRenderHidden | 1 | 视频尺寸等比缩放,优先保证窗口被填满。当视频尺寸与显示窗口尺寸不一致时,多出的视频将被截掉。 |
| kRenderFit | 2 | 视频尺寸等比缩放,优先保证视频内容全部显示。当视频尺寸与显示窗口尺寸不一致时,会把窗口未被填满的区域填充成黑色。 |
| kRenderAdaptive | 3 | 视频尺寸非等比例缩放,把窗口充满。当视频尺寸与显示窗口尺寸不一致时,视频高或宽方向会被拉伸。 |
类型: interface
单流转推直播配置参数。
API
| 名称 | 描述 |
|---|---|
| room_id | 媒体流所在的房间 ID。必填。 |
| user_id | 媒体流所属的用户 ID |
| uri | 推流地址 |
| is_screen_stream | 媒体流是否为屏幕流。 |
类型: string
媒体流所在的房间 ID。必填。
类型: string
媒体流所属的用户 ID
类型: string
推流地址
类型: boolean
媒体流是否为屏幕流。
类型: interface
公共流参数
API
| 名称 | 描述 |
|---|---|
| mode | 补帧模式 + 0: 补最后一帧+ 1: 补背景图片,如果没有设置背景图片则补黑帧 |
| room_id | 合流房间 ID |
| background_image_uri | 背景图片链接 |
| audio_param | 公共流音频编码参数。 |
| video_param | 公共流视频参数。 |
| layout_regions | 公共流视窗布局信息。 |
类型: number
补帧模式
+ 0: 补最后一帧
+ 1: 补背景图片,如果没有设置背景图片则补黑帧
类型: string
合流房间 ID
类型: string
背景图片链接
公共流音频编码参数。
公共流视频参数。
类型: PublicStreamLayoutRegion[]
公共流视窗布局信息。
类型: interface
公共流音频编码参数
API
| 名称 | 描述 |
|---|---|
| sample_rate | 音频采样率,必填。单位为 Hz。可选取值:16000, 32000, 44100 和 48000 |
| channel_num | 音频声道数,必填。 + 1: 单声道 + 2: 双声道 |
| bitrate_kbps | 音频码率,必填。单位为 kbps。 正整数,可选取值:16, 32, 64。 |
类型: number
音频采样率,必填。单位为 Hz。可选取值:16000, 32000, 44100 和 48000
类型: number
音频声道数,必填。
+ 1: 单声道
+ 2: 双声道
类型: number
音频码率,必填。单位为 kbps。
正整数,可选取值:16, 32, 64。
类型: interface
公共流视频编码参数
API
| 名称 | 描述 |
|---|---|
| width | 公共流视频宽度,必填。单位为 px,范围为 [2, 1920],必须是偶数。 |
| height | 公共流视频高度,必填。单位为 px,范围为 [16, 1280],必须是偶数。 |
| fps | 公共流视频帧率。必填 范围:[1, 60] |
| bitrate_kpbs | 视频码率,必填 范围:[1,10000000] 单位为 bps |
类型: number
公共流视频宽度,必填。单位为 px,范围为 [2, 1920],必须是偶数。
类型: number
公共流视频高度,必填。单位为 px,范围为 [16, 1280],必须是偶数。
类型: number
公共流视频帧率。必填
范围:[1, 60]
类型: number
视频码率,必填
范围:[1,10000000]
单位为 bps
类型: interface
单个视频流在公共流中的布局信息。
在多路视频流公共流时,你需要设置每一路视频流在公共流中的布局信息。
API
| 名称 | 描述 |
|---|---|
| user_id | 目标公共流用户的 ID, 不能为空 |
| room_id | 跨房间订阅流时,目标流所在的房间 ID, 不能为空 |
| alternate_image_uri | 背景图片地址 |
| x | 用户视频布局相对画布左侧的偏移量,取值的范围为 [0.0, 1.0)。必填。 |
| y | 用户视频布局相对画布顶端的偏移量,取值的范围为 [0.0, 1.0)。必填。 |
| width | 用户视频宽度相对画布宽度的比例,取值的范围为 (0.0, 1.0]。必填。 |
| height | 用户视频高度相对画布高度的比例,取值的范围为 (0.0, 1.0]。必填。 |
| alpha | 透明度,取值范围 [0,255], 0 为全透明,255 为不透明 |
| z_order | 用户视频布局在画布中的层级,取值范围 [0,100],0(默认)为底层,100 为顶层。 |
| stream_type | 必填。媒体流类型: + 0: 普通流(默认设置) + 1: 屏幕流 |
| media_type | 公共流输出类型。 |
| render_mode | 渲染时,视频内容缩放模式,必填。 |
| source_crop | 支持对每一路参与公共流的视频进行裁剪。 |
类型: string
目标公共流用户的 ID, 不能为空
类型: string
跨房间订阅流时,目标流所在的房间 ID, 不能为空
类型: string
背景图片地址
类型: number
用户视频布局相对画布左侧的偏移量,取值的范围为 [0.0, 1.0)。必填。
类型: number
用户视频布局相对画布顶端的偏移量,取值的范围为 [0.0, 1.0)。必填。
类型: number
用户视频宽度相对画布宽度的比例,取值的范围为 (0.0, 1.0]。必填。
类型: number
用户视频高度相对画布高度的比例,取值的范围为 (0.0, 1.0]。必填。
类型: number
透明度,取值范围 [0,255], 0 为全透明,255 为不透明
类型: number
用户视频布局在画布中的层级,取值范围 [0,100],0(默认)为底层,100 为顶层。
类型: number
必填。媒体流类型:
+ 0: 普通流(默认设置)
+ 1: 屏幕流
类型: TranscoderContentControlType
公共流输出类型。
渲染时,视频内容缩放模式,必填。
类型: SourceCrop
支持对每一路参与公共流的视频进行裁剪。
类型: enum
渲染模式
成员
| 属性 | 值 | 描述 |
|---|---|---|
| kRenderModeHidden | 1 | 视窗填满优先。 视频帧等比缩放,直至视窗被视频填满。如果视频帧长宽比例与视窗不同,视频帧的多出部分将无法显示。 缩放完成后,视频帧的一边长和视窗的对应边长一致,另一边长大于等于视窗对应边长。 |
| kRenderModeFit | 2 | 视频帧内容全部显示优先。 视频帧等比缩放,直至视频帧能够在视窗上全部显示。如果视频帧长宽比例与视窗不同,视窗上未被视频帧填满区域将被涂黑。 缩放完成后,视频帧的一边长和视窗的对应边长一致,另一边长小于等于视窗对应边长。 |
| kRenderModeFill | 3 | 视频帧自适应画布 视频帧非等比缩放,直至画布被填满。在此过程中,视频帧的长宽比例可能会发生变化。 |
类型: interface
公共流视频裁剪配置
API
| 名称 | 描述 |
|---|---|
| LocationX | 裁剪后得到的视频帧左上角横坐标相对于裁剪前整体画面的归一化比例,取值范围[0.0, 1.0) |
| LocationY | 裁剪后得到的视频帧左上角纵坐标相对于裁剪前整体画面的归一化比例,取值范围[0.0, 1.0) |
| WidthProportion | 裁剪后得到的视频帧宽度相对于裁剪前整体画面的归一化比例,取值范围(0.0, 1.0] |
| HeightProportion | 裁剪后得到的视频帧高度相对于裁剪前整体画面的归一化比例,取值范围(0.0, 1.0] |
类型: number
裁剪后得到的视频帧左上角横坐标相对于裁剪前整体画面的归一化比例,取值范围[0.0, 1.0)
类型: number
裁剪后得到的视频帧左上角纵坐标相对于裁剪前整体画面的归一化比例,取值范围[0.0, 1.0)
类型: number
裁剪后得到的视频帧宽度相对于裁剪前整体画面的归一化比例,取值范围(0.0, 1.0]
类型: number
裁剪后得到的视频帧高度相对于裁剪前整体画面的归一化比例,取值范围(0.0, 1.0]
类型: interface
屏幕共享对象信息
startScreenVideoCapture 接口的中的参数类型
API
| 名称 | 描述 |
|---|---|
| type | 共享对象类型,屏幕或应用窗体 |
| source_id | 共享对象 ID |
| source_name | 屏幕共享对象的名称 |
| application | 共享的应用窗体所属应用的名称 当共享对象为应用窗体时有效 |
| primaryMonitor | 共享的屏幕是否为主屏。 当共享对象为屏幕时有效 |
| x | 矩形区域左上角的 x 坐标 + 对于多屏幕的场景,不同平台的坐标系原点不同: - 对于 Windows 平台,屏幕坐标以主屏左上角为原点 (0, 0),向右向下扩展。 — 对于 Linux 平台,屏幕坐标以 恰好包住所有显示器的矩形区域的左上角 为原点 (0, 0),向右向下扩展。 + 对于不同平台,窗口区域不同: - 对于 Windows 和 macOS 平台,窗口区域包含系统标题栏。 - 对于 Linux 平台,窗口区域不包含系统标题栏。 |
| y | 共享对象 y 坐标。多显示器的场景下,屏幕坐标系统以主屏左上角为原点 (0, 0),向右向下扩展。 |
| width | 共享对象宽度 |
| height | 共享对象高度 |
| pid | 共享的应用窗体所属应用进程的 pid 当共享对象为应用窗体时有效 |
| region_rect | 屏幕共享对象的坐标。多显示器的场景下,屏幕坐标系统以主屏左上角为原点 (0, 0),向右向下扩展。详见 Rectangle#Rectangle。 |
共享对象类型,屏幕或应用窗体
类型: number
共享对象 ID
类型: string
屏幕共享对象的名称
类型: string
共享的应用窗体所属应用的名称
当共享对象为应用窗体时有效
类型: boolean
共享的屏幕是否为主屏。
当共享对象为屏幕时有效
类型: number
矩形区域左上角的 x 坐标
+ 对于多屏幕的场景,不同平台的坐标系原点不同:
- 对于 Windows 平台,屏幕坐标以主屏左上角为原点 (0, 0),向右向下扩展。
— 对于 Linux 平台,屏幕坐标以 恰好包住所有显示器的矩形区域的左上角 为原点 (0, 0),向右向下扩展。
+ 对于不同平台,窗口区域不同:
- 对于 Windows 和 macOS 平台,窗口区域包含系统标题栏。
- 对于 Linux 平台,窗口区域不包含系统标题栏。
类型: number
共享对象 y 坐标。多显示器的场景下,屏幕坐标系统以主屏左上角为原点 (0, 0),向右向下扩展。
类型: number
共享对象宽度
类型: number
共享对象高度
类型: number
共享的应用窗体所属应用进程的 pid
当共享对象为应用窗体时有效
类型: Rectangle
屏幕共享对象的坐标。多显示器的场景下,屏幕坐标系统以主屏左上角为原点 (0, 0),向右向下扩展。详见 Rectangle#Rectangle。
类型: enum
屏幕采集对象的类型
成员
| 属性 | 值 | 描述 |
|---|---|---|
| kScreenCaptureSourceTypeUnknown | 0 | 类型未知 |
| kScreenCaptureSourceTypeWindow | 1 | 应用程序的窗口 |
| kScreenCaptureSourceTypeScreen | 2 | 桌面 |
类型: interface
矩形区域,用于指定屏幕区域
+ 对于多屏幕的场景,不同平台的坐标系原点不同:
- 对于 Windows 平台,屏幕坐标以主屏左上角为原点 (0, 0),向右向下扩展。
— 对于 Linux 平台,屏幕坐标以 恰好包住所有显示器的矩形区域的左上角 为原点 (0, 0),向右向下扩展。
+ 对于不同平台,窗口区域不同:
- 对于 Windows 和 macOS 平台,窗口区域包含系统标题栏。
- 对于 Linux 平台,窗口区域不包含系统标题栏。
类型: number
矩形区域左上角的 x 坐标
类型: number
矩形区域左上角的 y 坐标
类型: number
矩形宽度
类型: number
矩形高度
类型: interface
屏幕共享时,内部采集参数配置
API
| 名称 | 描述 |
|---|---|
| region_rect | 采集区域 |
| capture_mouse_cursor | 是否采集鼠标状态 |
| filter_config | 屏幕过滤设置,填写不需要采集的窗口 ID |
| highlight_config | 采集区域的边框高亮设置 |
类型: Rectangle
采集区域
是否采集鼠标状态
类型: number[]
屏幕过滤设置,填写不需要采集的窗口 ID
类型: HighlightConfig
采集区域的边框高亮设置
类型: enum
内部采集屏幕视频流时,是否采集鼠标信息
成员
| 属性 | 值 | 描述 |
|---|---|---|
| kMouseCursorCaptureStateOn | 0 | 采集鼠标信息 |
| kMouseCursorCaptureStateOff | 1 | 不采集鼠标信息 |
类型: interface
屏幕共享时的边框高亮设置
API
| 名称 | 描述 |
|---|---|
| enable_highlight | 是否显示高亮边框,默认显示。 |
| border_color | 边框的颜色, 颜色格式为十六进制 ARGB: 0xAARRGGBB, 默认为 0xFF29CCA3 |
| border_width | 边框的宽度, 单位:像素,默认为: 4 |
类型: boolean
是否显示高亮边框,默认显示。
类型: number
边框的颜色, 颜色格式为十六进制 ARGB: 0xAARRGGBB, 默认为 0xFF29CCA3
类型: number
边框的宽度, 单位:像素,默认为: 4
类型: interface
混音配置
API
| 名称 | 描述 |
|---|---|
| type | 混音播放类型 |
| play_count | 混音播放次数, + play_count <= 0: 无限循环 + play_count == 1: 播放一次(默认) + play_count > 1: 播放 play_count 次 |
| position | 混音时音频文件播放进度条位置,参数为整数,单位为毫秒 |
| callback_on_progress_interval | 设置音频文件播放进度回调的时间间隔,单位毫秒,并按照设置的值触发 onAudioMixingPlayingProgress 回调,默认不回调。 该值应为大于 0 的 10 的倍数,当传入的值不能被 10 整除时,则默认向上取整 10,如设为 52ms 时会默认调整为 60ms。 传入的值小于等于 0 时,不会触发进度回调。 |
类型: AudioMixingType
混音播放类型
类型: number
混音播放次数,
+ play_count <= 0: 无限循环
+ play_count == 1: 播放一次(默认)
+ play_count > 1: 播放 play_count 次
类型: number
混音时音频文件播放进度条位置,参数为整数,单位为毫秒
类型: number
设置音频文件播放进度回调的时间间隔,单位毫秒,并按照设置的值触发 onAudioMixingPlayingProgress 回调,默认不回调。
该值应为大于 0 的 10 的倍数,当传入的值不能被 10 整除时,则默认向上取整 10,如设为 52ms 时会默认调整为 60ms。
传入的值小于等于 0 时,不会触发进度回调。
类型: enum
混音播放类型
成员
| 属性 | 值 | 描述 |
|---|---|---|
| kAudioMixingTypePlayout | 0 | 仅本地播放 |
| kAudioMixingTypePublish | 1 | 仅远端播放 |
| kAudioMixingTypePlayoutAndPublish | 2 | 本地和远端同时播放 |
类型: enum
混音播放声道类型
成员
| 属性 | 值 | 描述 |
|---|---|---|
| kAudioMixingDualMonoModeAuto | 0 | 和音频文件一致 |
| kAudioMixingDualMonoModeL | 1 | 只能听到音频文件中左声道的音频 |
| kAudioMixingDualMonoModeR | 2 | 只能听到音频文件中右声道的音频 |
| kAudioMixingDualMonoModeMix | 3 | 能同时听到音频文件中左右声道的音频 |
类型: interface
使用自动语音识别服务所需校验信息
API
| 名称 | 描述 |
|---|---|
| app_id | 应用 ID |
| user_id | 用户 ID |
| authorization_type | 鉴权方式 + 0: Token 鉴权+ 1: Signature 鉴权 |
| access_token | 访问令牌 |
| secret_key | 私钥。Signature 鉴权模式下不能为空,token 鉴权模式下为空。参看关于鉴权 |
| cluster | 场景信息,参看业务集群 |
类型: string
应用 ID
类型: string
用户 ID
类型: number
鉴权方式
+ 0: Token 鉴权
+ 1: Signature 鉴权
类型: string
访问令牌
类型: string
私钥。Signature 鉴权模式下不能为空,token 鉴权模式下为空。参看关于鉴权
类型: string
场景信息,参看业务集群
类型: enum
流属性
成员
| 属性 | 值 | 描述 |
|---|---|---|
| kStreamIndexMain | 0 | 主流。包括:通过默认摄像头/麦克风采集到的视频/音频; |
| kStreamIndexScreen | 1 | 屏幕流。 屏幕共享时共享的视频流,或来自声卡的本地播放音频流。 |
类型: interface
本地录制参数配置
类型: string
录制文件保存的绝对路径。你需要指定一个有读写权限的合法路径。
类型: number
录制存储文件格式
+ aac : 0
+ mp4 : 1
类型: enum
成员
| 属性 | 值 | 描述 |
|---|---|---|
| kRecordAudioOnly | 0 | 只录制音频 |
| kRecordVideoOnly | 1 | 只录制视频 |
| kRecordVideoAndAudio | 2 | 同时录制音频和视频 |
类型: enum
远端用户优先级,在性能不足需要回退时,会优先回退优先级低的用户的音视频流
成员
| 属性 | 值 | 描述 |
|---|---|---|
| kRemoteUserPriorityLow | 0 | 用户优先级为低(默认值) |
| kRemoteUserPriorityMedium | 100 | 用户优先级为正常 |
| kRemoteUserPriorityHigh | 200 | 用户优先级为高 |
类型: interface
虚拟背景对象。
API
| 名称 | 描述 |
|---|---|
| source_type | 虚拟背景类型 |
| source_path | 自定义背景图片的绝对路径。 支持的格式为 jpg、jpeg、png。 图片分辨率超过 1080P 时,图片会被等比缩放至和视频一致。 图片和视频宽高比一致时,图片会被直接缩放至和视频一致。 图片和视频长宽比不一致时,为保证图片内容不变形,图片按短边缩放至与视频帧一致,使图片填满视频帧,对多出的高或宽进行剪裁。 自定义图片带有局部透明效果时,透明部分由黑色代替。 |
| source_color | 纯色背景使用的颜色。 |
类型: VirtualBackgroundSourceType
虚拟背景类型
类型: string
自定义背景图片的绝对路径。
支持的格式为 jpg、jpeg、png。
图片分辨率超过 1080P 时,图片会被等比缩放至和视频一致。
图片和视频宽高比一致时,图片会被直接缩放至和视频一致。
图片和视频长宽比不一致时,为保证图片内容不变形,图片按短边缩放至与视频帧一致,使图片填满视频帧,对多出的高或宽进行剪裁。
自定义图片带有局部透明效果时,透明部分由黑色代替。
类型: number
纯色背景使用的颜色。
类型: enum
虚拟背景类型。
成员
| 属性 | 值 | 描述 |
|---|---|---|
| kVirtualBackgroundSourceColor | 0 | 使用纯色背景替换视频原有背景。 |
| kVirtualBackgroundSourceImage | 1 | 使用自定义图片替换视频原有背景。 |
类型: interface
水印参数
API
| 名称 | 描述 |
|---|---|
| visibleInPreview | 水印是否在视频预览中可见,默认可见。 |
| positionInLandscapeMode | 横屏时的水印位置和大小 |
| positionInPortraitMode | 视频编码的方向模式为竖屏时的水印位置和大小 |
类型: boolean
水印是否在视频预览中可见,默认可见。
类型: ByteWatermark
横屏时的水印位置和大小
类型: ByteWatermark
视频编码的方向模式为竖屏时的水印位置和大小
类型: interface
水印图片相对视频流的位置和大小。
API
| 名称 | 描述 |
|---|---|
| x | 水印图片相对视频流左上角的横向偏移与视频流宽度的比值,取值范围为 [0,1)。 |
| y | 水印图片相对视频流左上角的纵向偏移与视频流高度的比值,取值范围为 [0,1)。 |
| width | 水印图片宽度与视频流宽度的比值,取值范围 [0,1)。 |
| height | 水印图片高度与视频流高度的比值,取值范围为 [0,1)。 |
类型: number
水印图片相对视频流左上角的横向偏移与视频流宽度的比值,取值范围为 [0,1)。
类型: number
水印图片相对视频流左上角的纵向偏移与视频流高度的比值,取值范围为 [0,1)。
类型: number
水印图片宽度与视频流宽度的比值,取值范围 [0,1)。
类型: number
水印图片高度与视频流高度的比值,取值范围为 [0,1)。
类型: interface
本地渲染选项
API
| 名称 | 描述 |
|---|---|
| render_mode | 渲染时,视频内容缩放模式 |
| mirror | 是否镜像渲染 |
类型: RenderMode
渲染时,视频内容缩放模式
类型: boolean
是否镜像渲染
类型: enum
渲染时,视频内容缩放模式
成员
| 属性 | 值 | 描述 |
|---|---|---|
| FIT | 1 | 视频帧内容全部显示优先。 视频帧等比缩放,直至视频帧能够在视窗上全部显示。如果视频帧长宽比例与视窗不同,视窗上未被视频帧填满区域将被涂黑。 缩放完成后,视频帧的一边长和视窗的对应边长一致,另一边长小于等于视窗对应边长。 |
| HIDDEN | 2 | 视窗填满优先。 视频帧等比缩放,直至视窗被视频填满。如果视频帧长宽比例与视窗不同,视频帧的多出部分将无法显示。 缩放完成后,视频帧的一边长和视窗的对应边长一致,另一边长大于等于视窗对应边长。 |
类型: interface
通话相关的统计信息
API
| 名称 | 描述 |
|---|---|
| txLostrate | 当前应用的上行丢包率,取值范围为 [0, 1]。 |
| rxLostrate | 当前应用的下行丢包率,取值范围为 [0, 1]。 |
| rtt | 客户端到服务端数据传输的往返时延(单位 ms) |
| duration | 进房到退房之间累计时长,单位为 s |
| tx_bytes | 本地用户的总发送字节数 (bytes),累计值 |
| rx_bytes | 本地用户的总接收字节数 (bytes),累计值 |
| tx_kbitrate | 发送码率 (kbps),获取该数据时的瞬时值 |
| rx_kbitrate | 接收码率 (kbps),获取该数据时的瞬时值 |
| rx_audio_kbitrate | 音频接收码率 (kbps),获取该数据时的瞬时值 |
| tx_audio_kbitrate | 音频发送码率 (kbps),获取该数据时的瞬时值 |
| rx_video_kbitrate | 视频接收码率 (kbps),获取该数据时的瞬时值 |
| tx_video_kbitrate | 视频发送码率 (kbps),获取该数据时的瞬时值 |
| rx_screen_kbitrate | 屏幕接收码率,获取该数据时的瞬时值,单位为 Kbps |
| tx_screen_kbitrate | 屏幕发送码率,获取该数据时的瞬时值,单位为 Kbps |
| user_count | 当前房间内的用户人数 |
| tx_jitter | 系统上行网络抖动(ms) |
| rx_jitter | 系统下行网络抖动(ms) |
| tx_cellular_kbitrate | 蜂窝路径发送的码率 (kbps),获取该数据时的瞬时值 |
| rx_cellular_kbitrate | 蜂窝路径接收码率 (kbps),获取该数据时的瞬时值 |
类型: number
当前应用的上行丢包率,取值范围为 [0, 1]。
类型: number
当前应用的下行丢包率,取值范围为 [0, 1]。
类型: number
客户端到服务端数据传输的往返时延(单位 ms)
类型: number
进房到退房之间累计时长,单位为 s
类型: number
本地用户的总发送字节数 (bytes),累计值
类型: number
本地用户的总接收字节数 (bytes),累计值
类型: number
发送码率 (kbps),获取该数据时的瞬时值
类型: number
接收码率 (kbps),获取该数据时的瞬时值
类型: number
音频接收码率 (kbps),获取该数据时的瞬时值
类型: number
音频发送码率 (kbps),获取该数据时的瞬时值
类型: number
视频接收码率 (kbps),获取该数据时的瞬时值
类型: number
视频发送码率 (kbps),获取该数据时的瞬时值
类型: number
屏幕接收码率,获取该数据时的瞬时值,单位为 Kbps
类型: number
屏幕发送码率,获取该数据时的瞬时值,单位为 Kbps
类型: number
当前房间内的用户人数
类型: number
系统上行网络抖动(ms)
类型: number
系统下行网络抖动(ms)
类型: number
蜂窝路径发送的码率 (kbps),获取该数据时的瞬时值
类型: number
蜂窝路径接收码率 (kbps),获取该数据时的瞬时值
类型: enum
用户离线原因。
房间内的远端用户离开房间时,本端用户会收到 onUserLeave 回调通知,此枚举类型为回调的用户离线原因。
成员
| 属性 | 值 | 描述 |
|---|---|---|
| kUserOfflineReasonQuit | 0 | 远端用户调用 leaveRoom 方法退出房间。 |
| kUserOfflineReasonDropped | 1 | 远端用户因网络等原因掉线。 |
| kUserOfflineReasonSwitchToInvisible | 2 | 远端用户切换至隐身状态。 |
| kUserOfflineReasonKickedByAdmin | 3 | 远端用户被踢出出房间。 因调用踢出用户的 OpenAPI,远端用户被踢出房间。 |
类型: enum
音视频同步状态
成员
| 属性 | 值 | 描述 |
|---|---|---|
| kAVSyncStateAVStreamSyncBegin | 0 | 音视频开始同步 |
| kAVSyncStateAudioStreamRemove | 1 | 音视频同步过程中音频移除,但不影响当前的同步关系 |
| kAVSyncStateVdieoStreamRemove | 2 | 音视频同步过程中视频移除,但不影响当前的同步关系 |
类型: interface
本地音/视频流统计信息,统计周期为 2s 。
本地用户发布音/视频流成功后,SDK 会周期性地通过 onLocalStreamStats 通知本地用户发布的音/视频流在此次统计周期内的发送状况。此数据结构即为回调给用户的参数类型。
API
| 名称 | 描述 |
|---|---|
| audio_stats | 本地设备发送音频流的统计信息 |
| video_stats | 本地设备发送视频流的统计信息 |
| is_screen | 所属用户的媒体流是否为屏幕流。你可以知道当前统计数据来自主流还是屏幕流。 |
类型: LocalAudioStats
本地设备发送音频流的统计信息
类型: LocalVideoStats
本地设备发送视频流的统计信息
类型: boolean
所属用户的媒体流是否为屏幕流。你可以知道当前统计数据来自主流还是屏幕流。
类型: interface
本地音频流统计信息,统计周期为 2s 。 本地用户发布音频流成功后,SDK 会周期性地通过 onLocalStreamStats 通知用户发布的音频流在此次统计周期内的发送状况。此数据结构即为回调给用户的参数类型。
API
| 名称 | 描述 |
|---|---|
| audio_loss_rate | 音频丢包率。此次统计周期内的音频上行丢包率,单位为 % ,取值范围为 [0, 1]。 |
| send_kbitrate | 发送码率。此次统计周期内的音频发送码率,单位为 kbps 。 |
| record_sample_rate | 采集采样率。此次统计周期内的音频采集采样率信息,单位为 Hz 。 |
| stats_interval | 统计间隔。此次统计周期的间隔,单位为 ms 。 此字段用于设置回调的统计周期,默认设置为 2s 。 |
| rtt | 往返时延。单位为 ms 。 |
| num_channels | 音频声道数。 |
| sent_sample_rate | 音频发送采样率。此次统计周期内的音频发送采样率信息,单位为 Hz 。 |
| jitter | 音频上行网络抖动,单位为 ms 。 |
类型: number
音频丢包率。此次统计周期内的音频上行丢包率,单位为 % ,取值范围为 [0, 1]。
类型: number
发送码率。此次统计周期内的音频发送码率,单位为 kbps 。
类型: number
采集采样率。此次统计周期内的音频采集采样率信息,单位为 Hz 。
类型: number
统计间隔。此次统计周期的间隔,单位为 ms 。
此字段用于设置回调的统计周期,默认设置为 2s 。
类型: number
往返时延。单位为 ms 。
类型: number
音频声道数。
类型: number
音频发送采样率。此次统计周期内的音频发送采样率信息,单位为 Hz 。
类型: number
音频上行网络抖动,单位为 ms 。
类型: interface
本地视频流统计信息,统计周期为 2s 。
本地用户发布视频流成功后,SDK 会周期性地通过 onLocalStreamStats 通知用户发布的视频流在此次统计周期内的发送状况。此数据结构即为回调给用户的参数类型。
API
| 名称 | 描述 |
|---|---|
| sent_kbitrate | 发送码率。此次统计周期内的视频发送码率,单位为 kbps 。 |
| input_frame_rate | 采集帧率。此次统计周期内的视频采集帧率,单位为 fps 。 |
| sent_frame_rate | 发送帧率。此次统计周期内的视频发送帧率,单位为 fps 。 |
| encoder_output_frame_rate | 编码器输出帧率。当前编码器在此次统计周期内的输出帧率,单位为 fps 。 |
| renderer_output_frame_rate | 本地渲染帧率。此次统计周期内的本地视频渲染帧率,单位为 fps 。 |
| stats_interval | 统计间隔。此次统计周期的间隔,单位为 ms 。 此字段用于设置回调的统计周期,默认设置为 2s 。 |
| video_loss_rate | 视频丢包率。此次统计周期内的视频上行丢包率,取值范围为 [0,1] 。 |
| rtt | 往返时延,单位为 ms 。 |
| encoded_bitrate | 视频编码码率。此次统计周期内的视频编码码率,单位为 kbps 。 |
| encoded_frame_width | 实际发送的分辨率最大的视频流的视频编码宽度,单位为 px 。 |
| encoded_frame_height | 实际发送的分辨率最大的视频流的视频编码高度,单位为 px 。 |
| encoded_frame_count | 此次统计周期内实际发送的分辨率最大的视频流的发送的视频帧总数。 |
| codec_type | 视频的编码类型 |
| is_screen | 所属用户的媒体流是否为屏幕流。你可以知道当前统计数据来自主流还是屏幕流。 |
| jitter | 视频上行网络抖动,单位为 ms 。 |
类型: number
发送码率。此次统计周期内的视频发送码率,单位为 kbps 。
类型: number
采集帧率。此次统计周期内的视频采集帧率,单位为 fps 。
类型: number
发送帧率。此次统计周期内的视频发送帧率,单位为 fps 。
类型: number
编码器输出帧率。当前编码器在此次统计周期内的输出帧率,单位为 fps 。
类型: number
本地渲染帧率。此次统计周期内的本地视频渲染帧率,单位为 fps 。
类型: number
统计间隔。此次统计周期的间隔,单位为 ms 。
此字段用于设置回调的统计周期,默认设置为 2s 。
类型: number
视频丢包率。此次统计周期内的视频上行丢包率,取值范围为 [0,1] 。
类型: number
往返时延,单位为 ms 。
类型: number
视频编码码率。此次统计周期内的视频编码码率,单位为 kbps 。
类型: number
实际发送的分辨率最大的视频流的视频编码宽度,单位为 px 。
类型: number
实际发送的分辨率最大的视频流的视频编码高度,单位为 px 。
类型: number
此次统计周期内实际发送的分辨率最大的视频流的发送的视频帧总数。
类型: VideoCodecType
视频的编码类型
类型: boolean
所属用户的媒体流是否为屏幕流。你可以知道当前统计数据来自主流还是屏幕流。
类型: number
视频上行网络抖动,单位为 ms 。
类型: enum
视频的编码类型
成员
| 属性 | 值 | 描述 |
|---|---|---|
| kVideoCodecUnknown | 0 | 未知类型 |
| kVideoCodecH264 | 1 | 标准H264 |
类型: interface
用户订阅的远端音/视频流统计信息以及网络状况,统计周期为 2s 。
订阅远端用户发布音/视频流成功后,SDK 会周期性地通过 onRemoteStreamStats
通知本地用户订阅的远端音/视频流在此次统计周期内的接收状况。此数据结构即为回调给本地用户的参数类型。
API
| 名称 | 描述 |
|---|---|
| uid | 用户 ID 。音频来源的远端用户 ID 。 |
| audio_stats | 远端音频流的统计信息 |
| video_stats | 远端视频流的统计信息 |
| is_screen | 所属用户的媒体流是否为屏幕流。你可以知道当前统计数据来自主流还是屏幕流。 |
类型: string
用户 ID 。音频来源的远端用户 ID 。
类型: RemoteAudioStats
远端音频流的统计信息
类型: RemoteVideoStats
远端视频流的统计信息
类型: boolean
所属用户的媒体流是否为屏幕流。你可以知道当前统计数据来自主流还是屏幕流。
类型: interface
远端音频流统计信息,统计周期为 2s。
本地用户订阅远端音频流成功后,SDK 会周期性地通过 onRemoteStreamStats 通知本地用户订阅的音频流在此次统计周期内的接收状况。此数据结构即为回调给本地用户的参数类型。
API
| 名称 | 描述 |
|---|---|
| audio_loss_rate | 音频丢包率。统计周期内的音频下行丢包率,取值范围为 [0, 1] 。 |
| received_kbitrate | 接收码率。统计周期内的音频接收码率,单位为 kbps 。 |
| stall_count | 音频卡顿次数。统计周期内的卡顿次数。 |
| stall_duration | 音频卡顿时长。统计周期内的卡顿时长,单位为 ms 。 |
| e2e_delay | 用户体验级别的端到端延时。从发送端采集完成编码开始到接收端解码完成渲染开始的延时,单位为 ms 。 |
| playout_sample_rate | 播放采样率。统计周期内的音频播放采样率信息,单位为 Hz 。 |
| stats_interval | 统计间隔。此次统计周期的间隔,单位为 ms 。 |
| rtt | 客户端到服务端数据传输的往返时延,单位为 ms。 |
| total_rtt | 发送端——服务端——接收端全链路数据传输往返时延。单位为 ms 。 |
| quality | 远端用户发送的音频流质量。 + 0: 网络质量未知。+ 1: 网络质量极好。+ 2: 主观感觉和 kNetworkQualityExcellent 差不多,但码率可能略低。+ 3: 主观感受有瑕疵但不影响沟通。+ 4: 勉强能沟通但不顺畅。+ 5: 网络质量非常差,基本不能沟通。 |
| jitter_buffer_delay | 因引入 jitter buffer 机制导致的延时。单位为 ms 。 |
| num_channels | 音频声道数。 |
| received_sample_rate | 音频接收采样率。统计周期内接收到的远端音频采样率信息,单位为 Hz 。 |
| frozen_rate | 远端用户在加入房间后发生音频卡顿的累计时长占音频总有效时长的百分比。音频有效时长是指远端用户进房发布音频流后,除停止发送音频流和禁用音频模块之外的音频时长。 |
| concealed_samples | 音频 PLC 样点总个数。 |
| concealment_event | PLC 累计次数。 |
| dec_sample_rate | 音频解码采样率。统计周期内的音频解码采样率信息,单位为 Hz 。 |
| dec_duration | 解码时长。对此次统计周期内接收的远端音频流进行解码的总耗时,单位为 s 。 |
| jitter | 音频下行网络抖动,单位为 ms 。 |
类型: number
音频丢包率。统计周期内的音频下行丢包率,取值范围为 [0, 1] 。
类型: number
接收码率。统计周期内的音频接收码率,单位为 kbps 。
类型: number
音频卡顿次数。统计周期内的卡顿次数。
类型: number
音频卡顿时长。统计周期内的卡顿时长,单位为 ms 。
类型: number
用户体验级别的端到端延时。从发送端采集完成编码开始到接收端解码完成渲染开始的延时,单位为 ms 。
类型: number
播放采样率。统计周期内的音频播放采样率信息,单位为 Hz 。
类型: number
统计间隔。此次统计周期的间隔,单位为 ms 。
类型: number
客户端到服务端数据传输的往返时延,单位为 ms。
类型: number
发送端——服务端——接收端全链路数据传输往返时延。单位为 ms 。
类型: number
远端用户发送的音频流质量。
+ 0: 网络质量未知。
+ 1: 网络质量极好。
+ 2: 主观感觉和 kNetworkQualityExcellent 差不多,但码率可能略低。
+ 3: 主观感受有瑕疵但不影响沟通。
+ 4: 勉强能沟通但不顺畅。
+ 5: 网络质量非常差,基本不能沟通。
类型: number
因引入 jitter buffer 机制导致的延时。单位为 ms 。
类型: number
音频声道数。
类型: number
音频接收采样率。统计周期内接收到的远端音频采样率信息,单位为 Hz 。
类型: number
远端用户在加入房间后发生音频卡顿的累计时长占音频总有效时长的百分比。音频有效时长是指远端用户进房发布音频流后,除停止发送音频流和禁用音频模块之外的音频时长。
类型: number
音频 PLC 样点总个数。
类型: number
PLC 累计次数。
类型: number
音频解码采样率。统计周期内的音频解码采样率信息,单位为 Hz 。
类型: number
解码时长。对此次统计周期内接收的远端音频流进行解码的总耗时,单位为 s 。
类型: number
音频下行网络抖动,单位为 ms 。
类型: interface
远端音频流统计信息,统计周期为 2s 。
本地用户订阅远端音频流成功后,SDK 会周期性地通过 onRemoteStreamStats
通知本地用户订阅的远端视频流在此次统计周期内的接收状况。此数据结构即为回调给本地用户的参数类型。
API
| 名称 | 描述 |
|---|---|
| width | 视频宽度 |
| height | 视频高度 |
| video_loss_rate | 视频丢包率。统计周期内的视频下行丢包率,单位为 % ,取值范围:[0,1] 。 |
| received_kbitrate | 接收码率。统计周期内的视频接收码率,单位为 kbps 。 |
| decoder_output_frame_rate | 解码器输出帧率。统计周期内的视频解码器输出帧率,单位 fps 。 |
| renderer_output_frame_rate | 渲染帧率。统计周期内的视频渲染帧率,单位 fps 。 |
| stall_count | 卡顿次数。统计周期内的卡顿次数。 |
| stall_duration | 卡顿时长。统计周期内的视频卡顿总时长。单位 ms 。 |
| e2eDelay | 用户体验级别的端到端延时。从发送端采集完成编码开始到接收端解码完成渲染开始的延时,单位为 ms 。 |
| is_screen | 所属用户的媒体流是否为屏幕流。你可以知道当前数据来自主流还是屏幕流。 |
| stats_interval | 统计间隔,此次统计周期的间隔,单位为 ms 。 |
| rtt | 往返时延,单位为 ms 。 |
| frozen_rate | 远端用户在进房后发生视频卡顿的累计时长占视频总有效时长的百分比(%)。视频有效时长是指远端用户进房发布视频流后,除停止发送视频流和禁用视频模块之外的视频时长。 |
| codec_type | 视频的编码类型 |
| video_index | 对应多种分辨率的流的下标 |
| jitter | 视频下行网络抖动,单位为 ms 。 |
类型: number
视频宽度
类型: number
视频高度
类型: number
视频丢包率。统计周期内的视频下行丢包率,单位为 % ,取值范围:[0,1] 。
类型: number
接收码率。统计周期内的视频接收码率,单位为 kbps 。
类型: number
解码器输出帧率。统计周期内的视频解码器输出帧率,单位 fps 。
类型: number
渲染帧率。统计周期内的视频渲染帧率,单位 fps 。
类型: number
卡顿次数。统计周期内的卡顿次数。
类型: number
卡顿时长。统计周期内的视频卡顿总时长。单位 ms 。
类型: number
用户体验级别的端到端延时。从发送端采集完成编码开始到接收端解码完成渲染开始的延时,单位为 ms 。
类型: number
所属用户的媒体流是否为屏幕流。你可以知道当前数据来自主流还是屏幕流。
类型: number
统计间隔,此次统计周期的间隔,单位为 ms 。
注意
此字段用于设置回调的统计周期,目前设置为 2s 。
类型: number
往返时延,单位为 ms 。
类型: number
远端用户在进房后发生视频卡顿的累计时长占视频总有效时长的百分比(%)。视频有效时长是指远端用户进房发布视频流后,除停止发送视频流和禁用视频模块之外的视频时长。
类型: VideoCodecType
视频的编码类型
类型: number
对应多种分辨率的流的下标
类型: number
视频下行网络抖动,单位为 ms 。
类型: enum
房间内远端流被移除的原因。
成员
| 属性 | 值 | 描述 |
|---|---|---|
| kStreamRemoveReasonUnpublish | 0 | 远端用户停止发布流。 |
| kStreamRemoveReasonPublishFailed | 1 | 远端用户发布流失败。 |
| kStreamRemoveReasonKeepLiveFailed | 2 | 保活失败。 |
| kStreamRemoveReasonClientDisconnected | 3 | 远端用户断网。 |
| kStreamRemoveReasonRepublish | 4 | 远端用户重新发布流。 |
| kStreamRemoveReasonOther | 5 | 其他原因。 |
类型: enum
订阅媒体流状态
成员
| 属性 | 值 | 描述 |
|---|---|---|
| kSubscribeStateSuccess | 0 | 订阅/取消订阅流成功 |
| kSubscribeStateFailedNotInRoom | 1 | 订阅/取消订阅流失败,本地用户未在房间中 |
| kSubscribeStateFailedStreamNotFound | 2 | 订阅/取消订阅流失败,房间内未找到指定的音视频流 |
| kSubscribeStateFailedOverLimit | 3 | 超过订阅流数上限 |
类型: interface
手动订阅流的配置信息。
API
| 名称 | 描述 |
|---|---|
| is_screen | 是否是屏幕流,默认为否。 |
| sub_video | 是否订阅视频。 |
| sub_audio | 是否订阅音频。 |
| video_index | 订阅的视频流分辨率下标。 用户可以通过调用 setVideoEncoderConfig 方法在一路流中发布多个不同分辨率的视频。因此订阅流时,需要指定订阅的具体分辨率。此参数即用于指定需订阅的分辨率的下标,默认值为 0 。 |
| priority | 远端用户的需求优先级,0 为默认值。 + 0: 默认,用户优先级为低+ 100: 用户优先级为正常+ 200: 用户优先级为高当开启了订阅流回退选项功能(详见 setSubscribeFallbackOption 方法),弱网或性能不足时会优先保证收到的高优先级用户的流的质量。 |
| svc_layer | 远端用户的时域分层,0 为默认值。 仅码流支持 SVC 特性时可以生效。 |
| framerate | 期望订阅的最高帧率,单位:fps,默认值为 0,设为大于 0 的值时开始生效。 当发布端帧率低于设定帧率,或订阅端开启性能回退后下行弱网,则帧率会相应下降。 仅码流支持 SVC 分级编码特性时方可生效。 |
| sub_width | 用户通过指定 UI 对应的最合适的流的宽度,单位:px |
| sub_height | 用户通过指定 UI 对应的最合适的流的高度,单位:px |
类型: boolean
是否是屏幕流,默认为否。
类型: boolean
是否订阅视频。
类型: boolean
是否订阅音频。
类型: number
订阅的视频流分辨率下标。
用户可以通过调用 setVideoEncoderConfig 方法在一路流中发布多个不同分辨率的视频。因此订阅流时,需要指定订阅的具体分辨率。此参数即用于指定需订阅的分辨率的下标,默认值为 0 。
类型: number
远端用户的需求优先级,0 为默认值。
+ 0: 默认,用户优先级为低
+ 100: 用户优先级为正常
+ 200: 用户优先级为高
当开启了订阅流回退选项功能(详见 setSubscribeFallbackOption 方法),弱网或性能不足时会优先保证收到的高优先级用户的流的质量。
类型: number
远端用户的时域分层,0 为默认值。
仅码流支持 SVC 特性时可以生效。
类型: number
期望订阅的最高帧率,单位:fps,默认值为 0,设为大于 0 的值时开始生效。
当发布端帧率低于设定帧率,或订阅端开启性能回退后下行弱网,则帧率会相应下降。
仅码流支持 SVC 分级编码特性时方可生效。
类型: number
用户通过指定 UI 对应的最合适的流的宽度,单位:px
类型: number
用户通过指定 UI 对应的最合适的流的高度,单位:px
类型: interface
跨房间转发媒体流过程中的不同目标房间的状态和错误信息
类型: string
跨房间转发媒体流过程中目标房间 ID
空字符串代表所有目标房间
跨房间转发媒体流过程中该目标房间的状态、
跨房间转发媒体流过程中该目标房间抛出的错误码
类型: enum
跨房间转发媒体流过程中的不同目标房间的状态和错误信息
成员
| 属性 | 值 | 描述 |
|---|---|---|
| kForwardStreamStateIdle | 0 | 空闲状态 + 成功调用 stopForwardStreamToRooms 后,所有目标房间为空闲状态。+ 成功调用 updateForwardStreamToRooms 减少目标房间后,本次减少的目标房间为空闲状态。 |
| kForwardStreamStateSuccess | 1 | 开始转发 + 调用 startForwardStreamToRooms 成功向所有房间开始转发媒体流后,返回此状态。+ 调用 updateForwardStreamToRooms 后,成功向新增目标房间开始转发媒体流后,返回此状态。 |
| kForwardStreamStateFailure | 2 | 转发失败,失败详情参考 ForwardStreamError 调用 startForwardStreamToRooms 或 updateForwardStreamToRooms 后,如遇转发失败,返回此状态。 |
类型: interface
跨房间转发媒体流过程中的不同目标房间发生的事件
类型: string
跨房间转发媒体流过程中的发生该事件的目标房间 ID
空字符串代表所有目标房间
跨房间转发媒体流过程中该目标房间发生的事件
类型: enum
媒体流跨房间转发事件
成员
| 属性 | 值 | 描述 |
|---|---|---|
| kForwardStreamEventDisconnected | 0 | 本端与服务器网络连接断开,暂停转发。 |
| kForwardStreamEventConnected | 1 | 本端与服务器网络连接恢复,转发服务连接成功。 |
| kForwardStreamEventInterrupt | 2 | 转发中断。转发过程中,如果相同 user_id 的用户进入目标房间,转发中断。 |
| kForwardStreamEventDstRoomUpdated | 3 | 目标房间已更新,由 updateForwardStreamToRooms 触发。 |
| kForwardStreamEventUnExpectAPICall | 4 | API 调用时序错误。例如,在调用 startForwardStreamToRooms 之前调用 updateForwardStreamToRooms 。 |
类型: interface
上行/下行网络质量
API
| 名称 | 描述 |
|---|---|
| uid | 用户 id |
| fraction_lost | 本端的上行/下行的丢包率,范围 [0.0,1.0] 当 uid 为本地用户时,代表发布流的上行丢包率。当 uid 为远端用户时,代表接收所有订阅流的下行丢包率。 |
| rtt | 当 uid 为本地用户时有效,客户端到服务端的往返延时(RTT),单位:ms |
| rx_quality | 下行网络质量分。范围 [0,5],分数越高网络质量越差。 |
| total_bandwidth | 本端的音视频 RTP 包 2 秒内的平均传输速率,单位:bps 当 uid 为本地用户时,代表发送速率。当 uid 为远端用户时,代表所有订阅流的接收速率。 |
| tx_quality | 上行网络质量分。范围 [0,5],分数越高网络质量越差。 |
类型: string
用户 id
类型: number
本端的上行/下行的丢包率,范围 [0.0,1.0]
当 uid 为本地用户时,代表发布流的上行丢包率。
当 uid 为远端用户时,代表接收所有订阅流的下行丢包率。
类型: number
当 uid 为本地用户时有效,客户端到服务端的往返延时(RTT),单位:ms
类型: NetworkQuality
下行网络质量分。范围 [0,5],分数越高网络质量越差。
类型: number
本端的音视频 RTP 包 2 秒内的平均传输速率,单位:bps
当 uid 为本地用户时,代表发送速率。
当 uid 为远端用户时,代表所有订阅流的接收速率。
类型: NetworkQuality
上行网络质量分。范围 [0,5],分数越高网络质量越差。
类型: enum
媒体流网络质量。
成员
| 属性 | 值 | 描述 |
|---|---|---|
| kNetworkQualityUnknown | 0 | 网络质量未知。 |
| kNetworkQualityExcellent | 1 | 网络质量极好。 |
| kNetworkQualityGood | 2 | 主观感觉和 kNetworkQualityExcellent 差不多,但码率可能略低。 |
| kNetworkQualityPoor | 3 | 主观感受有瑕疵但不影响沟通。 |
| kNetworkQualityBad | 4 | 勉强能沟通但不顺畅。 |
| kNetworkQualityVbad | 5 | 网络质量非常差,基本不能沟通。 |
类型: interface
视频帧信息
类型: number
视频帧的宽度(像素)
类型: number
视频帧的高度(像素)
类型: VideoRotation
视频帧顺时针旋转角度。
类型: enum
视频旋转信息,枚举类型,定义了以 90 度为间隔的四种旋转模式。
成员
| 属性 | 值 | 描述 |
|---|---|---|
| kVideoRotation0 | 0 | 顺时针旋转 0 度 |
| kVideoRotation90 | 90 | 顺时针旋转 90 度 |
| kVideoRotation180 | 180 | 顺时针旋转 180 度 |
| kVideoRotation270 | 270 | 顺时针旋转 270 度 |
类型: interface
设置视频帧
API
| 名称 | 描述 |
|---|---|
| channel_id | 房间 ID |
| user_id | 用户 ID |
| plane_y | 视频数据缓冲区 Y |
| plane_u | 视频数据缓冲区 U |
| plane_v | 视频数据缓冲区 V |
| width | 视频分辨率宽度,单位:像素 |
| height | 视频分辨率高度,单位:像素 |
| plane_size_y | 视频数据缓冲区 Y 大小 |
| plane_size_u | 视频数据缓冲区 U 大小 |
| plane_size_v | 视频数据缓冲区 V 大小 |
| format | 视频帧数据格式 |
| rotation | 视频帧旋转角度 |
| public_stream_id |
类型: string
房间 ID
类型: string
用户 ID
类型: Uint8Array
视频数据缓冲区 Y
类型: Uint8Array
视频数据缓冲区 U
类型: Uint8Array
视频数据缓冲区 V
类型: number
视频分辨率宽度,单位:像素
类型: number
视频分辨率高度,单位:像素
类型: number
视频数据缓冲区 Y 大小
类型: number
视频数据缓冲区 U 大小
类型: number
视频数据缓冲区 V 大小
类型: number
视频帧数据格式
类型: number
视频帧旋转角度
类型: number
类型: enum
音频混音文件播放状态。
成员
| 属性 | 值 | 描述 |
|---|---|---|
| kAudioMixingStatePreloaded | 0 | 混音已加载 |
| kAudioMixingStatePlaying | 1 | 混音正在播放 |
| kAudioMixingStatePaused | 2 | 混音暂停 |
| kAudioMixingStateStopped | 3 | 混音停止 |
| kAudioMixingStateFailed | 4 | 混音播放失败 |
| kAudioMixingStateFinished | 5 | 混音播放结束 |
类型: enum
SDK 与信令服务器连接状态。
成员
| 属性 | 值 | 描述 |
|---|---|---|
| kConnectionStateDisconnected | 1 | 连接断开。 |
| kConnectionStateConnecting | 2 | 首次连接,正在连接中。 |
| kConnectionStateConnected | 3 | 涵盖了以下情况: + 首次连接时,10秒连接不成功; + 连接成功后,断连 10 秒。自动重连中。 |
| kConnectionStateReconnecting | 4 | 涵盖了以下情况: + 首次连接时,10秒连接不成功; + 连接成功后,断连 10 秒。自动重连中。 |
| kConnectionStateReconnected | 5 | 连接断开后重连成功。 |
| kConnectionStateLost | 6 | 处于 kConnectionStateDisconnected 状态超过 10 秒,且期间重连未成功。SDK 仍将继续尝试重连。 |
类型: enum
SDK 网络连接类型。
成员
| 属性 | 值 | 描述 |
|---|---|---|
| kNetworkTypeUnknown | -1 | 网络连接类型未知。 |
| kNetworkTypeDisconnected | 0 | 网络连接已断开。 |
| kNetworkTypeLAN | 1 | 网络连接类型为 LAN 。 |
| kNetworkTypeWIFI | 2 | 网络连接类型为 Wi-Fi(包含热点)。 |
| kNetworkTypeMobile2G | 3 | 网络连接类型为 2G 移动网络。 |
| kNetworkTypeMobile3G | 4 | 网络连接类型为 3G 移动网络。 |
| kNetworkTypeMobile4G | 5 | 网络连接类型为 4G 移动网络。 |
| kNetworkTypeMobile5G | 6 | 网络连接类型为 5G 移动网络。 |
类型: enum
是否开启发布性能回退
成员
| 属性 | 值 | 描述 |
|---|---|---|
| kPerformanceAlarmModeNormal | 0 | 未开启发布性能回退 |
| kPerformanceAlarmModeSimulcast | 1 | 已开启发布性能回退 |
类型: enum
onPerformanceAlarms 告警的原因
成员
| 属性 | 值 | 描述 |
|---|---|---|
| kPerformanceAlarmReasonBandwidthFallbacked | 0 | 网络原因差,造成了发送性能回退。仅在开启发送性能回退时,会收到此原因。 |
| kPerformanceAlarmReasonBandwidthResumed | 1 | 网络性能恢复,发送性能回退恢复。仅在开启发送性能回退时,会收到此原因。 |
| kPerformanceAlarmReasonPerformanceFallbacked | 2 | 如果未开启发送性能回退,收到此告警时,意味着性能不足;如果开启了发送性能回退,收到此告警时,意味着性能不足,且已发生发送性能回退。 |
| kPerformanceAlarmReasonPerformanceResumed | 3 | 如果未开启发送性能回退,收到此告警时,意味着性能不足已恢复; 如果开启了发送性能回退,收到此告警时,意味着性能不足已恢复,且已发生发送性能回退恢复。 |
类型: interface
API
| 名称 | 描述 |
|---|---|
| width | 未开启发布回退时,此值表示推荐的视频输入宽度,当回退模式为大小流模式时,表示当前推流的最大宽度 |
| heigth | 如果未开启发送性能回退,此值表示推荐的视频输入高度; 如果开启了发送性能回退,此值表示当前推流的最大高度。 |
| frame_rate | 如果未开启发送性能回退,此值表示推荐的视频输入帧率,单位 fps; 如果开启了发送性能回退,此值表示当前推流的最大帧率,单位 fps。 |
类型: number
未开启发布回退时,此值表示推荐的视频输入宽度,当回退模式为大小流模式时,表示当前推流的最大宽度
类型: number
如果未开启发送性能回退,此值表示推荐的视频输入高度;
如果开启了发送性能回退,此值表示当前推流的最大高度。
类型: number
如果未开启发送性能回退,此值表示推荐的视频输入帧率,单位 fps;
如果开启了发送性能回退,此值表示当前推流的最大帧率,单位 fps。
类型: interface
App 使用的 cpu 和内存信息。
信息由 SDK 周期性(2s)地通过 onSysStats 回调通知给用户。
API
| 名称 | 描述 |
|---|---|
| cpu_cores | 当前系统 CPU 核数 |
| cpu_app_usage | 当前应用的 cpu 使用率,取值范围为 [0, 1]。 |
| cpu_total_usage | 当前系统的 cpu 使用率,取值范围为 [0, 1]。 |
| memory_usage | 当前应用的内存使用量(单位 MB) |
| full_memory | 全量内存(单位字节) |
| total_memory_usage | 系统已使用内存(单位字节) |
| free_memory | 空闲可分配内存(单位字节) |
| memory_ratio | 当前应用的内存使用率(单位 %) |
| total_memory_ratio | 系统内存使用率(单位 %) |
类型: number
当前系统 CPU 核数
类型: number
当前应用的 cpu 使用率,取值范围为 [0, 1]。
类型: number
当前系统的 cpu 使用率,取值范围为 [0, 1]。
类型: number
当前应用的内存使用量(单位 MB)
类型: number
全量内存(单位字节)
类型: number
系统已使用内存(单位字节)
类型: number
空闲可分配内存(单位字节)
类型: number
当前应用的内存使用率(单位 %)
类型: number
系统内存使用率(单位 %)
类型: interface
远端流信息
API
| 名称 | 描述 |
|---|---|
| room_id | 媒体流所在房间的房间 ID。 如果此媒体流是通过 startForwardStreamToRooms 转发到你所在房间的媒体流时,你应将房间 ID 设置为你所在的房间 ID。 |
| user_id | 用户 ID |
| stream_index | 流属性,主流或屏幕流。 |
类型: string
媒体流所在房间的房间 ID。
如果此媒体流是通过 startForwardStreamToRooms 转发到你所在房间的媒体流时,你应将房间 ID 设置为你所在的房间 ID。
类型: string
用户 ID
类型: StreamIndex
流属性,主流或屏幕流。
类型: interface
流切换信息。本地用户订阅的远端流触发回退策略时的流切换信息。
API
| 名称 | 描述 |
|---|---|
| uid | 订阅的音视频流的发布者的用户 ID。 |
| is_screen | 是否是屏幕流。 |
| before_video_index | 流切换前本地用户订阅的视频流的分辨率对应的索引。 |
| after_video_index | 流切换后本地用户订阅的视频流的分辨率对应的索引。 |
| before_enable | 流切换前是否有视频流。 |
| after_enable | 流切换后是否有视频流。 |
| reason | 触发流回退的原因 |
类型: string
订阅的音视频流的发布者的用户 ID。
类型: boolean
是否是屏幕流。
类型: number
流切换前本地用户订阅的视频流的分辨率对应的索引。
类型: number
流切换后本地用户订阅的视频流的分辨率对应的索引。
类型: boolean
流切换前是否有视频流。
类型: boolean
流切换后是否有视频流。
触发流回退的原因
类型: enum
远端订阅流发生回退或恢复的原因
成员
| 属性 | 值 | 描述 |
|---|---|---|
| kFallbackOrRecoverReasonUnknown | -1 | 其他原因,非带宽和性能原因引起的回退或恢复。默认值 |
| kFallbackOrRecoverReasonSubscribeFallbackByBandwidth | 0 | 由带宽不足导致的订阅端音视频流回退。 |
| kFallbackOrRecoverReasonSubscribeFallbackByPerformance | 1 | 由性能不足导致的订阅端音视频流回退。 |
| kFallbackOrRecoverReasonSubscribeRecoverByBandwidth | 2 | 由带宽恢复导致的订阅端音视频流恢复。 |
| kFallbackOrRecoverReasonSubscribeRecoverByPerformance | 3 | 由性能恢复导致的订阅端音视频流恢复。 |
| kFallbackOrRecoverReasonPublishFallbackByBandwidth | 4 | 由带宽不足导致的发布端音视频流回退。 |
| kFallbackOrRecoverReasonPublishFallbackByPerformance | 5 | 由性能不足导致的发布端音视频流回退。 |
| kFallbackOrRecoverReasonPublishRecoverByBandwidth | 6 | 由带宽恢复导致的发布端音视频流恢复。 |
| kFallbackOrRecoverReasonPublishRecoverByPerformance | 7 | 由性能恢复导致的发布端音视频流恢复。 |
类型: enum
本地音频流状态。
SDK 通过 onLocalAudioStateChanged 回调本地音频流状态
成员
| 属性 | 值 | 描述 |
|---|---|---|
| kLocalAudioStreamStateStopped | 0 | 本地音频默认初始状态。 麦克风停止工作时回调该状态,对应错误码 kLocalAudioStreamErrorOk |
| kLocalAudioStreamStateRecording | 1 | 本地音频录制设备启动成功。 采集到音频首帧时回调该状态,对应错误码 kLocalAudioStreamErrorOk |
| kLocalAudioStreamStateEncoding | 2 | 本地音频首帧编码成功。 音频首帧编码成功时回调该状态,对应错误码 kLocalAudioStreamErrorOk |
| kLocalAudioStreamStateFailed | 3 | 本地音频启动失败,在以下时机回调该状态: +本地录音设备启动失败,对应错误码 kLocalAudioStreamErrorRecordFailure +检测到没有录音设备权限,对应错误码 kLocalAudioStreamErrorDeviceNoPermission +音频编码失败,对应错误码 kLocalAudioStreamErrorEncodeFailure |
类型: enum
远端音频流状态。
用户可以通过 onRemoteAudioStateChanged 了解该状态。
成员
| 属性 | 值 | 描述 |
|---|---|---|
| kRemoteAudioStateStopped | 0 | 不接收远端音频流。 以下情况下会触发回调 onRemoteAudioStateChanged: + 本地用户停止接收远端音频流,对应原因是: kRemoteAudioStateChangeReasonLocalMuted + 远端用户停止发送音频流,对应原因是: kRemoteAudioStateChangeReasonRemoteMuted + 远端用户离开房间,对应原因是: kRemoteAudioStateChangeReasonRemoteOffline |
| kRemoteAudioStateStarting | 1 | 开始接收远端音频流首包。 刚收到远端音频流首包会触发回调 onRemoteAudioStateChanged, 对应原因是: kRemoteAudioStateChangeReasonLocalUnmuted。 |
| kRemoteAudioStateDecoding | 2 | 远端音频流正在解码,正常播放。 以下情况下会触发回调 onRemoteAudioStateChanged: + 成功解码远端音频首帧,对应原因是: kRemoteAudioStateChangeReasonLocalUnmuted + 网络由阻塞恢复正常,对应原因是: kRemoteAudioStateChangeReasonNetworkRecovery + 本地用户恢复接收远端音频流,对应原因是: kRemoteAudioStateChangeReasonLocalUnmuted + 远端用户恢复发送音频流,对应原因是: kRemoteAudioStateChangeReasonRemoteUnmuted |
| kRemoteAudioStateFrozen | 3 | 远端音频流卡顿。 网络阻塞、丢包率大于 40% 时,会触发回调 onRemoteAudioStateChanged, 对应原因是: kRemoteAudioStateChangeReasonNetworkCongestion |
类型: enum
接收远端音频流状态改变的原因。
用户可以通过 onRemoteAudioStateChanged 了解该原因。
成员
| 属性 | 值 | 描述 |
|---|---|---|
| kRemoteAudioStateChangeReasonInternal | 0 | 内部原因 |
| kRemoteAudioStateChangeReasonNetworkCongestion | 1 | 网络阻塞 |
| kRemoteAudioStateChangeReasonNetworkRecovery | 2 | 网络恢复正常 |
| kRemoteAudioStateChangeReasonLocalMuted | 3 | 本地用户停止接收远端音频流 |
| kRemoteAudioStateChangeReasonLocalUnmuted | 4 | 本地用户恢复接收远端音频流 |
| kRemoteAudioStateChangeReasonRemoteMuted | 5 | 远端用户停止发送音频流 |
| kRemoteAudioStateChangeReasonRemoteUnmuted | 6 | 远端用户恢复发送音频流 |
| kRemoteAudioStateChangeReasonRemoteOffline | 7 | 远端用户离开房间 |
类型: enum
本地视频流状态
成员
| 属性 | 值 | 描述 |
|---|---|---|
| kLocalVideoStreamStateStopped | 0 | 本地视频采集停止状态 |
| kLocalVideoStreamStateRecording | 1 | 本地视频采集设备启动成功 |
| kLocalVideoStreamStateEncoding | 2 | 本地视频采集后,首帧编码成功 |
| kLocalVideoStreamStateFailed | 3 | 本地视频采集设备启动失败 |
类型: enum
远端视频流状态。状态改变时,会收到回调: onRemoteVideoStateChanged
成员
| 属性 | 值 | 描述 |
|---|---|---|
| kRemoteVideoStateStopped | 0 | 远端视频流默认初始状态,视频尚未开始播放。 |
| kRemoteVideoStateStarting | 1 | 本地用户已接收远端视频流首包。 |
| kRemoteVideoStateDecoding | 2 | 远端视频流正在解码,正常播放。 |
| kRemoteVideoStateFrozen | 3 | 远端视频流卡顿,可能有网络等原因。 |
| kRemoteVideoStateFailed | 4 | 远端视频流播放失败。 |
类型: enum
远端视频流状态改变的原因
成员
| 属性 | 值 | 描述 |
|---|---|---|
| kRemoteVideoStateChangeReasonInternal | 0 | 内部原因 |
| kRemoteVideoStateChangeReasonNetworkCongestion | 1 | 网络阻塞 |
| kRemoteVideoStateChangeReasonNetworkRecovery | 2 | 网络恢复正常 |
| kRemoteVideoStateChangeReasonLocalMuted | 3 | 本地用户停止接收远端视频流或本地用户禁用视频模块 |
| kRemoteVideoStateChangeReasonLocalUnmuted | 4 | 本地用户恢复接收远端视频流或本地用户启用视频模块 |
| kRemoteVideoStateChangeReasonRemoteMuted | 5 | 远端用户停止发送视频流或远端用户禁用视频模块 |
| kRemoteVideoStateChangeReasonRemoteUnmuted | 6 | 远端用户恢复发送视频流或远端用户启用视频模块 |
| kRemoteVideoStateChangeReasonRemoteOffline | 7 | 远端用户离开频道。 状态转换参考 onStreamRemove(85533#onstreamremove) |
类型: interface
用户信息
类型: string
用户 id
类型: string
元数据
类型: enum
首帧发送状态
成员
| 属性 | 值 | 描述 |
|---|---|---|
| kFirstFrameSendStateSending | 0 | 发送中 |
| kFirstFrameSendStateSent | 1 | 发送成功 |
| kFirstFrameSendStateEnd | 2 | 发送失败 |
类型: enum
首帧播放状态
成员
| 属性 | 值 | 描述 |
|---|---|---|
| kFirstFramePlayStatePlaying | 0 | 播放中 |
| kFirstFramePlayStatePlayed | 1 | 播放成功 |
| kFirstFramePlayStateEnd | 2 | 播放失败 |
类型: enum
转推直播事件
成员
| 属性 | 值 | 描述 |
|---|---|---|
| kStreamMixingStart | 1 | 请求发起转推直播任务 |
| kStreamMixingStartSuccess | 2 | 发起转推直播任务成功 |
| kStreamMixingStartFailed | 3 | 发起转推直播任务失败 |
| kStreamMixingUpdate | 4 | 请求更新转推直播任务配置 |
| kStreamMixingUpdateSuccess | 5 | 成功更新转推直播任务配置 |
| kStreamMixingUpdateFailed | 6 | 更新转推直播任务配置失败 |
| kStreamMixingStop | 7 | 请求结束转推直播任务 |
| kStreamMixingStopSuccess | 8 | 结束转推直播任务成功 |
| kStreamMixingStopFailed | 9 | 结束转推直播任务失败 |
| kStreamMixingChangeMixType | 10 | 更新转推直播任务配置的请求超时 |
| kStreamMixingFirstAudioFrameByClientMix | 11 | 得到客户端合流音频首帧 |
| kStreamMixingFirstVideoFrameByClientMix | 12 | 收到客户端合流视频首帧 |
| kStreamMixingUpdateTimeout | 13 | 更新转推直播任务配置超时 |
| kStreamMixingStartTimeout | 14 | 发起转推直播任务配置超时 |
| kStreamMixingRequestParamError | 15 | 合流布局参数错误 |
| kStreamMixingMixImageEvent | 16 | 合流加图片 |
类型: enum
合流类型
成员
| 属性 | 值 | 描述 |
|---|---|---|
| kStreamMixingTypeByServer | 0 | 服务端合流 |
| kStreamMixingTypeByClient | 1 | 端云一体合流 |
类型: enum
转推直播事件
成员
| 属性 | 值 | 描述 |
|---|---|---|
| kSingleStreamPushStart | 1 | 开始推流。 |
| kSingleStreamPushSuccess | 2 | 推流成功。 |
| kSingleStreamPushFailed | 3 | 推流失败。 |
| kSingleStreamPushStop | 4 | 停止推流。 |
| kSingleStreamPushTimeout | 5 | 单流转推直播任务处理超时,请检查网络状态并重试。 |
| kSingleStreamPushParamError | 6 | 参数错误。 |
类型: interface
本地录制的详细信息
API
| 名称 | 描述 |
|---|---|
| file_path | 录制文件的绝对路径,包含文件名和文件后缀 |
| video_codec_type | 录制文件的视频编码类型 |
| width | 录制视频的宽,单位:像素。纯音频录制请忽略该字段 |
| height | 录制视频的高,单位:像素。纯音频录制请忽略该字段 |
类型: string
录制文件的绝对路径,包含文件名和文件后缀
类型: VideoCodecType
录制文件的视频编码类型
类型: number
录制视频的宽,单位:像素。纯音频录制请忽略该字段
类型: number
录制视频的高,单位:像素。纯音频录制请忽略该字段
类型: interface
本地录制进度
类型: number
当前文件的累计录制时长,单位:毫秒
类型: number
当前录制文件的大小,单位:byte
类型: interface
设置音频帧
API
| 名称 | 描述 |
|---|---|
| type | 音频帧类型 |
| channels | 音频通道数 双声道的情况下,左右声道的音频帧数据以 LRLRLR 形式排布。 |
| sample_rate | 音频采样率 |
| buffer | 音频数据内存地址 |
| render_time_ms | 音频帧时间戳,单位:毫秒 |
| mute |
类型: AudioFrameType
值: 0
音频帧类型
类型: number
音频通道数
双声道的情况下,左右声道的音频帧数据以 LRLRLR 形式排布。
类型: number
音频采样率
类型: Uint8Array
音频数据内存地址
类型: number
音频帧时间戳,单位:毫秒
类型: boolean
类型: interface
本地音频属性信息
API
| 名称 | 描述 |
|---|---|
| stream_index | 流属性,主流或屏幕流。 |
| audio_properties_info | 音频属性信息, |
类型: StreamIndex
流属性,主流或屏幕流。
音频属性信息,
类型: interface
音频属性信息
API
| 名称 | 描述 |
|---|---|
| linear_volume | 线性音量,与原始音量呈线性关系,数值越大,音量越大。取值范围是:[0,255]。 - [0, 25]: 无声 - [26, 75]: 低音量 - [76, 204]: 中音量 - [205, 255]: 高音量 |
| nonlinear_volume | 非线性音量。由原始音量的对数值转化而来,因此在中低音量时更灵敏,可以用作 Active Speaker(房间内最活跃用户)的识别。取值范围是:[-127,0],单位 dB。 - [-127, -60]: 无声 - [-59, -40]: 低音量 - [-39, -20]: 中音量 - [-19, 0]: 高音量 |
| vad | 人声检测(VAD)结果 - 1: 检测到人声。 - 0: 未检测到人声。 - -1: 未开启 VAD。 |
| spectrum |
类型: number
线性音量,与原始音量呈线性关系,数值越大,音量越大。取值范围是:[0,255]。
- [0, 25]: 无声
- [26, 75]: 低音量
- [76, 204]: 中音量
- [205, 255]: 高音量
类型: number
非线性音量。由原始音量的对数值转化而来,因此在中低音量时更灵敏,可以用作 Active Speaker(房间内最活跃用户)的识别。取值范围是:[-127,0],单位 dB。
- [-127, -60]: 无声
- [-59, -40]: 低音量
- [-39, -20]: 中音量
- [-19, 0]: 高音量
类型: number
人声检测(VAD)结果
- 1: 检测到人声。
- 0: 未检测到人声。
- -1: 未开启 VAD。
类型: number[]
类型: interface
远端音频属性信息
API
| 名称 | 描述 |
|---|---|
| stream_key | 流属性,主流或屏幕流。 |
| audio_properties_info | 音频属性信息 |
类型: RemoteStreamKey
流属性,主流或屏幕流。
音频属性信息
类型: enum
成员
| 属性 | 值 | 描述 |
|---|---|---|
| kTestSuccess | 0 | 接收到采集的音视频的回放,通话回路检测成功 |
| kTestTimeout | 1 | 测试超过 60s 仍未完成,已自动停止 |
| kTestIntervalShort | 2 | 上一次测试结束和下一次测试开始之间的时间间隔少于 5s |
| kAudioDeviceError | 3 | 音频采集异常 |
| kVideoDeviceError | 4 | 视频采集异常 |
| kAudioReceiveError | 5 | 音频接收异常 |
| kVideoReceiveError | 6 | 视频接收异常 |
| kInternalError | 7 | 内部错误,不可恢复 |