yimultiscreenserver-sdk-web
Version:
YiMultiScreenServer SDK for Web
98 lines • 5 kB
TypeScript
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