高级能力与完整方法索引
本页补充生命周期、状态读取、兼容别名和后台监听控制方法。业务接口的参数与底层语义见 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 集成,功能与主方法相同:
| 兼容名称 | 主方法 |
|---|---|
hungUpCall | hangupCall |
joinAndPlayVideo | playMeetingVideo |
backToMeet | backToMeeting |
兼容别名不会改变返回策略和错误码,新的代码建议使用主方法名称。
返回策略提醒
methodResponse只是调度请求确认,不代表终端已经完成操作。rollCall、groupNotify、selectNotify默认继续等待匹配的dispatch:responseData终态包,并把终态放在finalResult;可用{ waitFinalResult: false }关闭等待。- 视频播放、视窗查询和成员缓存查询中的部分方法是同步返回或同步抛错,不能一律使用
await判断成功。 alreadyInMeeting: true是成功结果字段,不是错误码。