srtc 直接导出:
枚举
Codec
编解码格式。数值是国际标准的编码标识,与其它端一致。
配套函数:
codecSdpName(codec)、codecIsVideo(codec)、codecIsAudio(codec)、
codecFromSdpName(name)、codecFromValue(v)、ALL_CODECS。
TrackKind
ConnectionState
MediaConnectionState
媒体面(PeerConnection)连接状态,由 channel.mediaState 读取、onMediaStateChange 上报。
配套函数:
mediaConnectionStateName(s)。
DisconnectReason
配套函数:
disconnectReasonFromValue(v)。
DeviceType
上报的端侧类型。HarmonyOS 是 8(与错误码前缀 108 配套)。
常量
CURRENT_DEVICE_TYPE 即 DeviceType.harmonyOS。配套 deviceTypeFromValue(v)。
DeviceKind
VideoRotation
CameraPosition / CaptureOrientation / ScreenCaptureMode
TrackPriority / DegradationPreference
配套函数:
trackPriorityBitrateWeight(priority)。
AudioRoute / AudioRouteTarget / AudioCallState
AudioRoute 比 AudioRouteTarget 多三个成员,是因为蓝牙与有线耳机由系统接管 ——
SDK 能上报你现在走的是它们,但不能主动切到某个具体外设。
配套函数:audioRouteName、audioRouteTargetName、audioRouteTargetAsRoute、
audioRouteIsExternal、audioRouteIsBuiltIn、audioCallStateName。
ConnectionQuality
配套函数:
worseQuality(a, b) —— 取两者中较差的一个。
StreamVendor
由服务端下发决定,配套
streamVendorFromValue(v)。
LogLevel
SRTCLogger 的级别。设置方式是 srtc.logLevel = LogLevel.info。
配套函数:logVerbose / logDebug / logInfo / logWarning / logError,
以及可替换的 LogHandler。
入会与频道
JoinOptions
defaultJoinOptions() 返回一份全默认的选项。
ChannelInfo
配套:
channelInfoFromJson / channelInfoToJson。
UserInfo
配套:
userInfoFromJson / userInfoToJson。
轨道
TrackInfo
配套:
trackInfoFromJson / trackInfoToJson / cloneTrackInfo。
SimulcastInfo
配套:
simulcastInfoFromJson / simulcastInfoToJson。
采集参数
MicCaptureOptions
CameraCaptureOptions
采集分辨率受设备档位限制,档位表因机型而异。 底层会把请求宽高吸附到最近的档位,
所以实际拿到的尺寸可能与设定值不同。这也是必须调用
SRTC.init(context) 的原因 ——
没有 Context 就查不到档位表。ScreenCaptureOptions
ScreenAudioCaptureOptions
其它
VideoCaptureParams:width/height/frameRateCaptureSize:width/height,配套orientCaptureSize(size, orientation)ZoomRange:min/max/supported。设备变焦范围,由track.zoomRange()返回。supported === false时min/max均为1,调用方不必判空。 ⚠️ 它反映的是当前这一刻能不能变焦而不是设备能力,详见 轨道接口- 默认值函数:
defaultMicCaptureOptions()/defaultCameraCaptureOptions()/defaultScreenCaptureOptions()/defaultScreenAudioCaptureOptions() - 合并函数:
mergeMicCaptureOptions()/mergeCameraCaptureOptions()/mergeScreenCaptureOptions()/mergeScreenAudioCaptureOptions()
发布参数
AudioPublishOptions
VideoPublishOptions
默认值:
defaultAudioPublishOptions() / defaultVideoPublishOptions();
合并:mergeAudioPublishOptions() / mergeVideoPublishOptions()。
预设
预设是「采集参数 + 发布参数」的成对封装,直接传给createLocalXxxTrack。
现成预设:
质量与信令消息
QualitySample
QualityReport
QualityEvaluation / ConnectionQualityChange
活跃说话人
LayerSwitchedInfo
Simulcast 层切换。
配套解析函数:
qualityReportFromJson、activeSpeakersFromJson、layerSwitchedFromJson、
signalMessageType。
RtcStatsSnapshot
channel.getStats() 返回的一次采集快照。
OutboundStreamStats
判断”某条轨道的 RTP 有没有在发”必须用
trackIdentifier 匹配,不能只看”有任意一条 outbound 的 packetsSent > 0”。取消发布后 transceiver 只是 stop、不从连接上移除,它那条旧统计会一直留在报告里(真机实测:关掉摄像头再重开,旧统计的 packetsSent 卡在原值不动)。qualityLimitationReason 是弱网排障的第一现场:bandwidth 说明码率被带宽估计压了,cpu 说明设备扛不住,两者的处理完全不同。
InboundStreamStats
kind、ssrc?、codec?、bitrateKbps、packetsReceived?、packetsLost?(本端统计)、jitter?(秒,不是毫秒)、frameWidth? / frameHeight?、framesPerSecond?、totalFreezesDuration?(累计冻结秒数,卡顿的直接指标)。
ConnectionStats
配套函数:
emptyStatsSnapshot()(空快照,取不到统计时返回它而不抛错)、
statsSummary(s)(压成便于阅读的多行文本,形如 发送 video H264 1180kbps 1280x720@30 (bandwidth) 丢包=3)。
协商结果
设备与消息
DeviceInfo
配套:
deviceKindFromValue、deviceListEquals、deviceListDiff。
AudioRouteInfo
CustomMessage / ImMessage
content 统一是字符串 —— 需要结构化数据请自己 JSON.parse。
Token
解析与校验:
decodeChannelToken(str)、decodeImToken(str)、isTokenExpired(token)。
Token 由业务后端签发,SDK 只负责解析与过期判断。
服务端配置
由入会响应下发,一般不需要直接构造:MqttServer、WebrtcServer、TurnServer、UploadServer、RtmpServer、
ChannelJoinResponse。
解析函数:mqttServerFromJson、webrtcServerFromJson、channelJoinResponseFromJson、
channelJoinResponseAsChannelInfo。
工具类型
JSON 读取工具(ArkTS 禁止对任意对象下标访问,所以统一走这层):
asObject、getString、getNumber、getBool、getObject、getArray、
getStringMap、getAnyMap、mapToObject、putIfPresent。