notInMeeting(208003)。
本地轨道
本地预览就是把
cameraTrack 交给 SRTCVideoView:
麦克风
setMicMuted 与 closeMic 的区别很重要:setMicMuted(true)—— 静音但轨道还在,对端仍看到你在会中,切回是瞬时的。 日常的”静音/取消静音”按钮用这个。closeMic()—— 真正关掉,轨道消失。
setMicMuted,不要每次都 closeMic + requestOpenMic。byAdmin / adminUid 是给「响应主持人请求」用的:收到
onAdminRequestOpenMic 后询问用户,同意则带上这两个参数调用,
后端据此知道这是响应请求而非自主开麦。
摄像头
switchCamera() 不传参数就是前后置切换,传 deviceId 切到指定摄像头。
预设可用 SRTC 的 cameraPreset1080p() / cameraPreset720p() /
cameraPreset360p() / cameraPreset180p()。
摄像头没有
setMuted 这种”假关”—— 用户预期关摄像头就该真的关(指示灯熄灭),
所以只有 closeCamera()。变焦
currentCameraZoom() 在摄像头未开或没设过时返回 1。setCameraZoom() 对超范围的值做夹取而不抛错;摄像头未开或设备不支持时记 warning 后返回。
屏幕共享
ShareType 有 screen(屏幕)与 whiteBoard(白板)两种。
主持人可以强制停止别人的共享:adminStopRoomShare(),见
会控接口。
订阅远端视频
trackDesc 选订哪一路:
宫格视图用
cameraSmall、大窗用 cameraBig,这是控制带宽最直接的手段。
20 个人的宫格全订大流会把下行打满。unsubscribeRemoteVideoTrack 的 debounceMs 用来抑制列表滚动导致的反复订阅/退订 ——
防抖窗口内重新订阅会取消待执行的退订,所以快速滑动是无感的。
unsubscribeRemoteVideoTrackIfNoRenderers 是守卫版:只在该轨道已经没有渲染器时
才退订,返回是否真的退了。适合”同一路画面渲染在多处”的场景。
订阅远端音频
远端音频播放控制
这几个只影响本地播放,不改变订阅关系 —— 也就是”关扬声器”而不是”退订”。
带宽照旧消耗,但切回来是瞬时的。
MCU 合流
adminUpdateLayout(layoutData) 控制。
音频路由
defaultAudioRoute—— 持久设置,长期有效,外设拔出后按它回落setAudioRoute—— 临时设置,优先级更高