跳到主要内容

高级能力与完整方法索引

本页补充生命周期、状态读取、兼容别名和后台监听控制方法。业务接口的参数与底层语义见 SDK 完整 API 参考

生命周期与依赖

方法返回/行为用途
ScooperMeetingSDK.create(config)SDK 实例创建实例,不连接后台。
ScooperMeetingSDK.loadDependencies(options)Promise按顺序加载 dispatch、视频和可选软手柄脚本。
ScooperMeetingSDK.clearDependencyCache()void清除脚本加载缓存,便于更换资源地址后重试。
sdk.init(config?)Promise<sdk>初始化调度、视频、软手柄和后台监听。
sdk.login(token?)Promise使用 token 手动登录调度后台。
sdk.destroy(options?)Promise关闭视频、注销软手柄、断开后台监听并清理实例。
await sdk.init();
// 页面卸载或组件销毁时释放实例。
await sdk.destroy({ keepListeners: false, destroyDispatch: false });

运行时对象与事件监听

方法说明
sdk.getDispatch()返回已注入的 scooper.dispatch 实例;未初始化时可能为 null
sdk.getCalls()返回呼叫模块对象。
sdk.getVideoController()返回视频控制器。
sdk.getSoftHandler()返回独立软手柄实例。
sdk.getBackendListenerClient()返回后台 SSE/WebSocket 监听客户端。
sdk.getDispatchEventMap()返回 SDK 的后端 channel 与事件映射快照。
sdk.on(event, handler)持续监听,返回取消监听函数。
sdk.once(event, handler)只监听下一次事件,返回取消监听函数。
sdk.onAny(handler)监听所有 SDK 事件,返回取消监听函数。
sdk.off(event, handler?)移除指定监听;省略 handler 时移除该事件的全部监听。
const off = sdk.onAny((event, payload) => console.log(event, payload));
console.table(sdk.getDispatchEventMap());
off();

当前会场与成员状态

方法说明
sdk.getCurrentMeet() / sdk.getCurrentMeetId()读取最近一次创建或加入的会场。
sdk.setCurrentMeet(meet)手动设置当前会场;传 null 清空。
sdk.getMeeting(meetId)异步读取会场详情。
sdk.getMeetingMembers(meetId?)异步读取成员列表。
sdk.getMeetingMembersSync(meetId?)同步读取 SDK 本地成员缓存。
sdk.getMeetingMember(meetId, tel)读取单个成员,不存在返回 null
sdk.isMemberInMeeting(meetId, tel)同步判断成员是否在会中。
sdk.requestMeeting(meetId)请求后台刷新会场详情缓存。
sdk.requestMeetingMembers(meetId)请求后台刷新成员缓存。
sdk.requestMeetingMember(meetId, tel)请求后台刷新单个成员信息。
sdk.getMeetingScreenState(meetId)读取混屏、分屏、主看和共享人状态缓存。

呼叫状态与高级调度

方法说明
sdk.requestCallStatus()请求并刷新当前全量呼叫状态。
sdk.requestTelStatus(tel)请求指定号码状态。
sdk.requestCallIns()请求并刷新呼入队列。
sdk.listCallStatus()查询全量呼叫状态。
sdk.listHoldCalls() / sdk.listIncomingCalls()查询保持队列/呼入队列。
sdk.findIncomingCallByTel(tel)从本地呼入缓存查找号码。
sdk.answerAllCalls()应答当前队列全部呼入。
sdk.holdCall(tel) / sdk.unholdCall(tel)保持/恢复通话。
sdk.retrieveCall(tel)强拉或恢复被转接通话。
sdk.tripleMonitor(tel) / sdk.tripleBreakin(tel) / sdk.tripleHungup(tel)三方监听、强插、强拆。
sdk.startCallRecord(tel) / sdk.stopCallRecord(tel)开始/停止单路通话录音。
sdk.groupCall(groupId) / sdk.cancelGroupCall(groupId)传统群组 ID 组呼和取消。
sdk.groupSame(tels) / sdk.makeCallSame(tels)多号码同振。
sdk.privateTalk(meetId, tel) / sdk.backToMeeting(meetId, tel)将成员切换到私聊,再返回会场。
sdk.notifyRecordOperation(options)语音通知录制、试听、删除等管理操作。

视频高级控制

方法说明
sdk.initVideo(container, options?)创建视频控制器并绑定容器。
sdk.playVideos(items)批量播放多路视频。
sdk.playByOrderExpandWindow(video, id?, options?)按空闲窗口播放,满格时自动扩展分屏。
sdk.closeVideo(idOrIndex, options?) / sdk.closeAllVideos(isSave?)关闭一路或全部视频。
sdk.startVideoPoll(options?) / sdk.stopVideoPoll(options?)开始/停止视频轮巡。
sdk.isPlaying(video) / sdk.isPlayingByIndex(index)查询视频或视窗播放状态。
sdk.getPlayingWindows()获取所有视窗的播放快照。
sdk.setWindowsNum(n)setVideoWindows(n) 的兼容别名。

软手柄与后台监听

方法说明
sdk.registerSoftHandler(info?) / sdk.unregisterSoftHandler()注册/注销 SIP/Janus 软手柄。
sdk.softNewCall(called, media?)使用软手柄发起新呼叫。
sdk.dispatchSoftAnswer(isVideoAnswer?) / sdk.dispatchSoftHangup()使用 dispatch 内置软手柄能力应答/挂断。
sdk.preemptSoftHandlerRegister(options?)抢占软手柄注册。
sdk.connectBackendListener(options?)建立 SSE/WebSocket 后台桥接。
sdk.disconnectBackendListener()断开后台桥接。
await sdk.connectBackendListener({
transport: "sse",
url: "/scooper-events",
token: () => sessionStorage.getItem("Sc-Token")
});
// 不再需要时主动断开,避免重复接收事件。
await sdk.disconnectBackendListener();

兼容别名

以下名称保留用于兼容既有 scooper-meet 集成,功能与主方法相同:

兼容名称主方法
hungUpCallhangupCall
joinAndPlayVideoplayMeetingVideo
backToMeetbackToMeeting

兼容别名不会改变返回策略和错误码,新的代码建议使用主方法名称。

返回策略提醒

  • methodResponse 只是调度请求确认,不代表终端已经完成操作。
  • rollCallgroupNotifyselectNotify 默认继续等待匹配的 dispatch:responseData 终态包,并把终态放在 finalResult;可用 { waitFinalResult: false } 关闭等待。
  • 视频播放、视窗查询和成员缓存查询中的部分方法是同步返回或同步抛错,不能一律使用 await 判断成功。
  • alreadyInMeeting: true 是成功结果字段,不是错误码。