UNPKG

yimultiscreenserver-sdk-web

Version:

YiMultiScreenServer SDK for Web

98 lines 5 kB
import { SessionDestroyReason } from "../core/mqtt/message/SessionDestroyReason"; import { CastError } from "../util/CastError"; import { AccountBindDeviceVO } from "../vo/account/AccountBindDeviceVO"; import { LoginUserVO } from "../vo/account/LoginUserVO"; import { CastSessionVO } from "../vo/cast/CastSessionVO"; import { ControllerDeviceVO } from "../vo/device/ControllerDeviceVO"; import { DisplayDeviceVO } from "../vo/device/DisplayDeviceVO"; import { DisplayReportVO } from "../vo/report/DisplayReportVO"; export interface IControllerCallback { /** * 收到自身MQTT断连,说明与MQTT集群断开连接 */ onMySelfDisconnected(cause: string): void; /** * 控制端成功连接到给定显示终端,已做好消息监听后回调 * @param displayDevice 云端返回的已连接的显示终端信息 * @param controllerDevice 云端返回的成功连接的控制终端信息 */ onDisplayConnected(displayDevice: DisplayDeviceVO, controllerDevice: ControllerDeviceVO): void; /** * 控制端成功断开给定显示终端,移除消息监听后回调 * @param displayDevice 云端返回的已断开连接的显示终端信息 */ onDisplayDisconnected(displayDevice: DisplayDeviceVO): void; /** * 显示终端下线通知,控制终端应终止并销毁相关联会话,返回初始状态 * 注意,此通知仅当控制端已经连接了一个显示端时,才有可能触发 * @param displayDevice 下线的显示设备信息 */ onDisplayOffline(displayDevice: DisplayDeviceVO): void; /** * 显示终端信息(名称、网络等)变更,告知控制终端可供刷新UI * @param displayReport 显示终端信息 */ onDisplayReport(displayReport: DisplayReportVO): void; /** * 云端通知有新的投屏会话建立 * @param castSession 已创建成功的投屏会话信息 */ onCastSessionCreate(castSession: CastSessionVO): void; /** * 收到此回调后,在此回调内进行三方音视频SDK的配置,让三方音视频SDK开始工作 * 三方音视频SDK开始工作后,在此回调内调用SDK提供的push接口告知对端正式开始推流 * @param castSession 当前投屏会话信息 * @param mediaPayload 投屏媒体数据,比如:文档投屏的http地址,NRTC的channel name,P2P的各类密钥 */ onReadyToPush(castSession: CastSessionVO, mediaPayload: string): void; /** * 对端已经开始推流,本端判断投屏会话的具体类别、协议类型,决策使用何种三方音视频SDK启动拉流并渲染上屏 * @param castSession 当前投屏会话信息 * @param mediaPayload 投屏媒体数据,比如:文档投屏的http地址,NRTC的channel name,P2P的各类密钥 */ onCastSessionPushStart(castSession: CastSessionVO, mediaPayload: string): void; /** * 对端已经结束推流,本端应结束渲染上屏 * @param castSession 当前投屏会话信息 */ onCastSessionPushEnd(castSession: CastSessionVO): void; /** * 云端通知此投屏会话已彻底结束,本端可清理相关资源 * 触发时机是任意一端主动销毁会话,或对端被云端判定为离线 * @param castSession 当前投屏会话信息 * @param reason 销毁原因,可选参数 */ onCastSessionDestroy(castSession: CastSessionVO, reason?: SessionDestroyReason): void; /** * 云端通知同账号下有用户被踢下线 * 获得此通知的前提是此控制端已经成功登录了一个账号,且此账号下有用户被踢下线 * @param user 用户信息 */ onUserHasBeenKicked(user: LoginUserVO): void; /** * 云端通知同账号下有绑定设备上线 * 获得此通知的前提是此控制端已经成功登录了一个账号,且此账号下有绑定设备上线 * 注意,此通知不论控制端是否已连接显示端,只要登录了账号,就有可能触发 * @param accountBindDevice 账号绑定设备信息 */ onAccountBindDeviceOnline(accountBindDevice: AccountBindDeviceVO): void; /** * 云端通知同账号下有绑定设备离线 * 获得此通知的前提是此控制端已经成功登录了一个账号,且此账号下有绑定设备离线 * 注意,此通知不论控制端是否已连接显示端,只要登录了账号,就有可能触发 * @param accountBindDevice 账号绑定设备信息 */ onAccountBindDeviceOffline(accountBindDevice: AccountBindDeviceVO): void; /** * 内部执行出现异常时的回调 * @param msg 异常信息 * @deprecated 已废弃,请使用 onError(error: CastError) */ onError(msg: string): void; /** * 内部执行出现异常时的回调 * @param error 异常信息 */ onError(error: CastError): void; } //# sourceMappingURL=IControllerCallback.d.ts.map