UNPKG

zego-mini-game-engine

Version:

ZEGO GAME ENGINE

829 lines (828 loc) 21.2 kB
export interface ZegoErrorResult { errorCode: ZegoErrorCode; message: string; } export interface ZegoGameInfo { desc: string; gameMode: ZegoGameMode[]; gameOrientation: ZegoGameOrientation; miniGameId: string; mgName: string; thumbnail: string; } export interface ZegoGameInfoDetail extends ZegoGameInfo { designHeight: number; designWidth: number; mgUrl: string; player: number[]; safeHeight: number; spin: number[]; } export interface ZegoCustomComponent { name: string; label: string; isShow: boolean; } export interface ZegoCustomFunction { name: string; label: string; } export interface ZegoGameIntroduction { useHtmlString: boolean; title?: string; content?: string; } export declare enum ZegoRole { Player = 0, Audience = 1 } export declare enum ZegoTaxType { AllDeduction = 1, WinnerDeduction = 2 } export declare enum ZegoSoundPlayType { Once = 0, Loop = 1 } export declare enum ZegoActionType { Ready = 1000, CancelReady = 1001, Join = 1002, Start = 1003, Stop = 1004, End = 1005, SettleClose = 1006, SettleAgain = 1007, SupplementaryPoints = 1008, BlankArea = 1009, Quit = 1010, PointsInsufficientConfirmButton = 1011, AvatarClicked = 2000, ClickNoGamingAreas = 2001, SettleData = 3001, AvatarData = 3002, Share = 8008 } export interface ZegoLoadGameConfig { [index: string]: any; } export interface ZegoStartGameConfig { taxType?: ZegoTaxType; taxRate?: number; customConfig?: Record<string, any>; minGamePoint: number; timeout: number; } export interface ZegoGameList { total: number; list: ZegoGameInfo[]; } export interface ZegoRobotAttribute { robotLevel: number; robotName: string; robotAvatar: string; seatIndex: number; robotPoint: number; } export interface ZegoSettings extends ZegoRobotAttribute { useRobotAfterSeconds: number; } export interface ZegoPlayer { userId: string; seatIndex: number; } export declare enum ZegoGamePlayerState { ZegoGamePlayerStartPlay = 0, ZegoGamePlayerStopPlay = 1 } export interface ZegoStreamProfile { fps: number; minBitrate: number; maxBitrate: number; } export interface ZegoStartCloudGameConfig { runningParameters: string; resolution?: string; codecType?: number; bitRate?: number; fps?: number; } export declare enum ZegoGameMode { GameModeAll = 0, GameModeHostsGame = 1, GameModeShowGame = 2, GameModeMallGame = 3, GameModeCloudGame = 4, GameModeMatchInGame = 5 } export declare enum ZegoGameOrientation { OrientationBoth = 0, OrientationPortrait = 1, OrientationLandscape = 2 } /** * 命名规则:6位数字符串,前2位代表供应商或客户(如:00代表zego),前3-4位代表设置类型(如:01代表背景),后2位代表设置值类型(如:00代表开关、01代表值大小) */ export declare enum ZegoGameSettingType { BGMState = "000100", BGMRange = "000101", SoundEffectsState = "000200", SoundEffectsRange = "000201", VibrateState = "000300" } export declare enum ZegoGameSettingState { Close = "0", Open = "1" } export interface ZegoGameSettingUpdate { settingType: ZegoGameSettingType; settingValue: ZegoGameSettingState | string; } export declare enum ZegoGameState { ZegoGameIdle = 0, ZegoGamePreparing = 1, ZegoGamePlaying = 2, ZegoGameStopping = 3, ZegoGameOver = 4 } export declare enum ZegoGameStateReasonCode { Normal = 0, MissingPlayers = 1, InsufficientPoints = 2, MatchTimeout = 3, Undefined = 9999 } export declare enum ZegoGameLoadStateUpdate { Loading = 1, Loaded = 2 } export declare enum ZegoEvent { TokenWillExpire = "tokenWillExpire", Unloaded = "unloaded", PointsInsufficient = "pointsInsufficient", PlayerStateUpdate = "playerStateUpdate", GameStateUpdate = "gameStateUpdate", GameLoadStateUpdate = "gameLoadStateUpdate", ActionEventUpdate = "actionEventUpdate", GameResult = "gameResult", GameError = "gameError", GameSoundPlay = "gameSoundPlay", GameSoundVolumeChange = "gameSoundVolumeChange", RobotConfigRequire = "robotConfigRequire", MicStateChange = "micStateChange", SpeakerStateChange = "speakerStateChange", ActionRequest = "actionRequest", ComponentListUpdate = "componentListUpdate", CloudGameFirstFrame = "cloudGameFirstFrame", CloudGameError = "cloudGameError" } export interface ZegoEventHandler { [ZegoEvent.TokenWillExpire]: (data: ZegoEventOfTokenWillExpireResult) => void; [ZegoEvent.Unloaded]: (data: ZegoEventOfUnloadedResult) => void; [ZegoEvent.PointsInsufficient]: (data: ZegoEventOfPointsInsufficientResult) => void; [ZegoEvent.PlayerStateUpdate]: (data: ZegoEventOfPlayerStateUpdateResult) => void; [ZegoEvent.GameStateUpdate]: (data: ZegoEventOfGameStateUpdateResult) => void; [ZegoEvent.GameLoadStateUpdate]: (data: ZegoEventOfGameLoadStateUpdateResult) => void; [ZegoEvent.ActionEventUpdate]: (data: ZegoEventOfActionEventUpdateResult) => void; [ZegoEvent.GameResult]: (data: ZegoEventOfGameResult) => void; [ZegoEvent.GameError]: (data: ZegoEventOfGameErrorResult) => void; [ZegoEvent.GameSoundPlay]: (data: ZegoEventOfGameSoundPlayResult) => void; [ZegoEvent.GameSoundVolumeChange]: (data: ZegoEventOfGameSoundVolumeChangeResult) => void; [ZegoEvent.RobotConfigRequire]: (data: ZegoEventOfRobotConfigRequireResult) => void; [ZegoEvent.MicStateChange]: (data: ZegoEventOfMicStateChangeResult) => void; [ZegoEvent.SpeakerStateChange]: (data: ZegoEventOfSpeakerStateChangeResult) => void; [ZegoEvent.ActionRequest]: (data: ZegoEventOfActionRequestResult) => void; [ZegoEvent.CloudGameFirstFrame]: () => void; [ZegoEvent.CloudGameError]: (data: any) => void; } export interface ZegoEventOfTokenWillExpireResult { } export interface ZegoEventOfPointsInsufficientResult { miniGameId: string; } export interface ZegoEventOfPlayerStateUpdateResult { isPlaying: ZegoGamePlayerState; } export interface ZegoEventOfGameStateUpdateResult { state: ZegoGameState; reasonCode: ZegoGameStateReasonCode; } export interface ZegoEventOfUnloadedResult { miniGameId: string; } export interface ZegoEventOfGameLoadStateUpdateResult { state: ZegoGameLoadStateUpdate; } export interface ZegoEventOfActionEventUpdateResult { eventType: ZegoActionType; data: string; } export interface ZegoEventOfGameErrorResult { errorCode: number; message: string; } export interface ZegoEventOfGameResult { reportId: string; roomId: string; miniGameId: string; anchorId: string; roundId: string; reportTime: number; currencyDiff: number; currencyBalance: number; gameDuration: number; } export interface ZegoEventOfGameSoundPlayResult { name: string; isPlay: boolean; volume: number; url: string; playType: ZegoSoundPlayType; } export interface ZegoEventOfGameSoundVolumeChangeResult { name: string; volume: number; } export interface ZegoEventOfRobotConfigRequireResult { done: (robotLevel: number, robotName: string, robotAvatar: string, useRobotAfterSeconds: number, minPoint: number, maxPoint: number) => void; } export interface ZegoEventOfActionRequestResult { actionID: number; actionCallback: { success: () => {}; fail: (code?: number) => {}; }; data?: string; } export interface ZegoEventOfMicStateChangeResult { mute: boolean; } export interface ZegoEventOfSpeakerStateChangeResult { userIdList: string[]; mute: boolean; } /** * af, // 南非荷兰语 * am, // 阿姆哈拉语 * ar,// 阿拉伯语 * as, // 阿萨姆语 * az, // 阿塞拜疆语(拉丁语) * ba, // 巴什基尔语 * be, // 白俄罗斯语 * bem, // 别姆巴语 * bg, // 保加利亚语 * bi, // 比斯拉马语 * bn, // 孟加拉语 * bo, // 藏语 * bs, // 波斯尼亚语(拉丁语系) * ca, // 加泰罗尼亚语 * ceb, // 宿务语 * co, // 科西嘉语 * crs, // 塞舌尔克里奥尔语 * cs, // 捷克语 * cy, // 威尔士语 * da, // 丹麦语 * de, // 德语 * ee, // 埃维语 * dv, // 马尔代夫语 * el, // 希腊语 * en, // 英语 * eo, // 世界语 * es, // 西班牙语 * et, // 爱沙尼亚语 * eu, // 巴斯克语 * fa, // 波斯语 * fi, // 芬兰语 * fil, // 菲律宾语 * fj, // 斐济语 * fo, // 法罗语 * fr, // 法语 * fy, // 弗里西语 * ga, // 爱尔兰语 * gd, // 苏格兰盖尔语 * gl, // 加利西亚语 * gu, // 古吉拉特语 * ha, // 豪萨语 * haw, // 夏威夷语 * he, // 希伯来语 * hi, // 印地语 * hr, // 克罗地亚语 * hsb, // 上索布语 * ht, // 海地克里奥尔语 * hu, // 匈牙利语 * hy, // 亚美尼亚语 * id, // 印度尼西亚语 * ig, // 伊博语 * ikt, // 因纽纳敦语 * is, // 冰岛语 * it, // 意大利语 * iu, // 因纽特语 * ja, // 日语 * jv, // 印尼爪哇语 * ka, // 格鲁吉亚语 * kek, // 凯克其语 * kg, // 刚果语 * kk, // 哈萨克语 * km, // 高棉语 * kmr, // 库尔德语(北部) * kn, // 卡纳达语 * ko, // 韩语 * ku, // 库尔德语(中部) * ky, // 吉尔吉斯语(西里尔语) * la, // 拉丁语 * lb, // 卢森堡语 * lg, // 卢干达语 * ln, // 林加拉语 * lo, // 老挝语 * lt, // 立陶宛语 * lv, // 拉脱维亚语 * mg, // 马达加斯加语 * mhr, // 马里语 * mi, // 毛利语 * mk, // 马其顿语 * ml, // 马拉雅拉姆语 * mn, // 蒙古语(传统) * mr, // 马拉地语 * mrj, // 山地马里语 * ms, // 马来语 * mt, // 马耳他语 * my, // 缅甸 * nb, // 博克马尔语 * ne, // 尼泊尔语 * nl, // 荷兰语 * no, // 挪威语 * ny, // 齐切瓦语 * om, // 奥罗莫语 * or, // 奥里亚语 * os, // 奥赛梯语 * otq, // 克雷塔罗奥托米语 * pa, // 旁遮普语 * pap, // 帕皮阿门托语 * pl, // 波兰语 * prs, // 达里语 * ps, // 普什图语 * pt, // 葡萄牙语 * rn, // 隆迪语 * ro, // 罗马尼亚语 * ru, // 俄语 * rw, // 卢旺达语 * sd, // 信德语 * sg, // 桑戈语 * si, // 僧伽罗语 * sk, // 斯洛伐克语 * sl, // 斯洛文尼亚语 * sm, // 萨摩亚语(拉丁语) * sn, // 修纳语 * so, // 索马里语(阿拉伯语) * sq, // 阿尔巴尼亚语 * sr, // 塞尔维亚语 * st, // 塞索托语 * su, // 印尼巽他语 * sv, // 瑞典语 * sw, // 斯瓦希里语(拉丁语) * ta, // 泰米尔语 * te, // 泰卢固语 * tg, // 塔吉克语 * tn, // 茨瓦纳语 * th, // 泰语 * ti, // 提格里尼亚语 * tig, // 提格雷语 * tk, // 土库曼语(拉丁语) * tlh, // 克林贡语 * to, // 汤加语 * tpi, // 巴布亚皮钦语 * tr, // 土耳其语 * ts, // 聪加语 * tt, // 鞑靼语(拉丁语) * tw, // 契维语 * ty, // 塔希提语 * udm, // 乌德穆尔特语 * uk, // 乌克兰语 * ur, // 乌尔都语 * uz, // 乌兹别克语 * vi, // 越南语 * war, // 瓦瑞语 * xh, // 南非科萨语 * yi, // 意第绪语 * yo, // 约鲁巴语 * yua, // 尤卡坦玛雅语 * yue, // 粤语(繁体) * zh_CN, // 简体中文 * zh_TW, // 中文(繁体) * zu, // 祖鲁语 */ export declare enum ZegoLanguage { af = "af", am = "am", ar = "ar", as = "as", az = "az", ba = "ba", be = "be", bem = "bem", bg = "bg", bi = "bi", bn = "bn", bo = "bo", bs = "bs", ca = "ca", ceb = "ceb", co = "co", crs = "crs", cs = "cs", cy = "cy", da = "da", de = "de", ee = "ee", dv = "dv", el = "el", en = "en", eo = "eo", es = "es", et = "et", eu = "eu", fa = "fa", fi = "fi", fil = "fil", fj = "fj", fo = "fo", fr = "fr", fy = "fy", ga = "ga", gd = "gd", gl = "gl", gu = "gu", ha = "ha", haw = "haw", he = "he", hi = "hi", hr = "hr", hsb = "hsb", ht = "ht", hu = "hu", hy = "hy", id = "id", ig = "ig", ikt = "ikt", is = "is", it = "it", iu = "iu", ja = "ja", jv = "jv", ka = "ka", kek = "kek", kg = "kg", kk = "kk", km = "km", kmr = "kmr", kn = "kn", ko = "ko", ku = "ku", ky = "ky", la = "la", lb = "lb", lg = "lg", ln = "ln", lo = "lo", lt = "lt", lv = "lv", mg = "mg", mhr = "mhr", mi = "mi", mk = "mk", ml = "ml", mn = "mn", mr = "mr", mrj = "mrj", ms = "ms", mt = "mt", my = "my", nb = "nb", ne = "ne", nl = "nl", no = "no", ny = "ny", om = "om", or = "or", os = "os", otq = "otq", pa = "pa", pap = "pap", pl = "pl", prs = "prs", ps = "ps", pt = "pt", rn = "rn", ro = "ro", ru = "ru", rw = "rw", sd = "sd", sg = "sg", si = "si", sk = "sk", sl = "sl", sm = "sm", sn = "sn", so = "so", sq = "sq", sr = "sr", st = "st", su = "su", sv = "sv", sw = "sw", ta = "ta", te = "te", tg = "tg", tn = "tn", th = "th", ti = "ti", tig = "tig", tk = "tk", tlh = "tlh", to = "to", tpi = "tpi", tr = "tr", ts = "ts", tt = "tt", tw = "tw", ty = "ty", udm = "udm", uk = "uk", ur = "ur", uz = "uz", vi = "vi", war = "war", xh = "xh", yi = "yi", yo = "yo", yua = "yua", yue = "yue", zh_CN = "zh_CN", zh_TW = "zh_TW", zu = "zu" } export interface ZegoBasicUserInfo { userId: string; userName: string; } export interface ZegoUserInfo extends ZegoBasicUserInfo { avatar?: string; } export default class ZegoMiniGameEngine { private static instance; private manager; private static isInit; constructor(); /** * 获取ZegoMiniGameEngine单例 * @returns ZegoMiniGameEngine */ static getInstance(): ZegoMiniGameEngine; /** * 获取游戏引擎SDK的版本。 * @returns string */ static getVersion(): string; private isConnected; /** * 更新token * @param token string */ updateToken(token: string): void; /** * 初始化实例 * @param appId number * @param token string * @param userInfo ZegoUserInfo * @returns Promise<ZegoMiniGameEngine> */ static init(appId: number, token: string, userInfo: ZegoUserInfo): Promise<ZegoMiniGameEngine>; /** * 销毁实例 */ unInit(): void; getAllGameList(): Promise<ZegoGameList>; /** * 获取游戏列表 * @param pageIndex number * @param pageSize number * @param gameMode ZegoMiniGameGameMode * @returns Promise<ZegoMiniGameGameList> */ getGameList(gameMode: ZegoGameMode): Promise<ZegoGameList>; /** * 获取游戏详细信息 * @param miniGameId string * @returns Promise<ZegoGameInfoDetail> */ getGameInfo(miniGameId: string): Promise<ZegoGameInfoDetail>; /** * 创建房间 * @param miniGameId string * @param roomId string * @param maxPlayerNum number * @param gamePoint number * @param taxType ZegoTaxType * @param taxRate number * @returns Promise<boolean> */ createGameRoom(miniGameId: string, roomId: string, maxPlayerNum: number, gamePoint: number, taxType?: ZegoTaxType, taxRate?: number): Promise<boolean>; /** * 关闭房间 * @param miniGameId string * @param roomId string * @returns Promise<boolean> */ closeGameRoom(miniGameId: string, roomId: string): Promise<boolean>; /** * 设置加载游戏的容器 * @param domId string * @returns boolean */ setGameContainer(domId: string): boolean; /** * 加载游戏 * @param miniGameId string * @param gameMode ZegoGameMode * @param option ZegoLoadGameConfig * @returns Promise<HTMLIFrameElement> */ loadGame(miniGameId: string, gameMode: ZegoGameMode, config?: ZegoLoadGameConfig): Promise<HTMLIFrameElement>; /** * 卸载游戏 * @returns void */ unloadGame(forceQuit?: boolean): void; /** * 主播带玩开始游戏 * @param gameConfig 游戏配置 * @param userList 用户列表 * @param robotList 机器人列表 * @returns boolean */ startGame(gameConfig: ZegoStartGameConfig, userList: ZegoPlayer[], robotList: ZegoRobotAttribute[]): Promise<boolean>; /** * 开关游戏振动 * @param isVibrate boolean */ enableGameVibrate(isVibrate: boolean): void; /** * 开关游戏音效 * @param mute boolean */ muteGameSoundEffect(mute: boolean): void; /** * 开关游戏背景音乐 * @param mute boolean */ muteGameMusic(mute: boolean): void; /** * 设置游戏内音效音量(0-100) * @param volume */ setGameSoundEffectVolume(volume: number): void; /** * 设置游戏内音乐音量 * @param volume */ setGameMusicVolume(volume: number): void; /** * 获取游戏音乐开关 * @returns Promise<boolean> */ getGameMusicSwitch(): Promise<boolean>; /** * 获取游戏音乐音量 * @returns Promise<boolean> */ getGameMusicVolume(): Promise<number>; /** * 获取游戏音效开关 * @returns Promise<boolean> */ getGameSoundEffectSwitch(): Promise<boolean>; /** * 获取游戏音效音量 * @returns Promise<number> */ getGameSoundEffectVolume(): Promise<number>; /** * 获取游戏振动开关 * @returns Promise<boolean> */ getGameVibrateSwitch(): Promise<boolean>; /** * 设置游戏的语言 * 在load()之前调用 * @param language ZegoLanguage */ setGameLanguage(language: ZegoLanguage): void; /** * 通知游戏刷新用户的游戏币 */ refreshGamePoint(): void; /** * 获取游戏内可设置展示与否的组件 * @returns Promise<ZegoCustomComponent[]> */ getGameComponentList(): Promise<ZegoCustomComponent[]>; /** * 获取游戏内可调用的功能函数 * @returns Promise<ZegoCustomComponent[]> */ getGameFunctionList(): Promise<ZegoCustomFunction[]>; /** * 设置游戏内组件展示与否 * @param componentName string * @param isShow boolean * @returns Promise<boolean> */ setGameComponent(componentName: string, isShow: boolean): Promise<boolean>; /** * 运行游戏内功能函数 * @param functionName string * @returns Promise<boolean> */ runGameFunction(functionName: string): Promise<boolean>; /** * 刷新token(内部使用) * @param */ refreshToken(): Promise<any>; /** * 刷新麦克风和扬声器状态 * @param */ refreshMicAndSpeakerState(): void; /** * 开始云游戏 * @param */ startCloudGame(gameID: string, roomID: string, gameConfig: ZegoStartCloudGameConfig): Promise<any>; /** * 停止云游戏 */ stopCloudGame(gameID: string, roomID: string): Promise<unknown>; /** * 设置云游戏容器 */ setCloudGameContainer(cloudDomId: string): boolean; /** * 开始转推流 */ startPublishCloudGameStream(cloudGameID: string, roomID: string, streamID: string): Promise<import("./entity").ServerResponse>; /** * 停止转推流 */ stopPublishCloudGameStream(cloudGameID: string, roomID: string, streamID: string): Promise<import("./entity").ServerResponse>; /** * 设置码流参数 */ setStreamProfile(streamProfile: ZegoStreamProfile): void; /** * 设置 video 音量 */ setPlayVolume(volume: number): void; /** * 获取 video 音量 */ getPlayVolume(): Promise<unknown>; /** * 发送键盘事件 */ sendKeyboardEvent(key: number): void; /** * 绑定回调 * @param type 方法名 * @param listener 方法 */ on<K extends keyof ZegoEventHandler>(type: K, listener: ZegoEventHandler[K]): void; /** * 解绑回调 * @param type 方法名 */ off<K extends keyof ZegoEventHandler>(type: K): void; } export { ZegoMiniGameEngine }; export declare enum ZegoErrorCode { Success = 0, ErrorNetwork = 7000001, ErrorInvalidUserInfo = 7000002, ErrorInvalidParams = 7000003, ErrorInvalidToken = 7000004, ErrorInvalidRoomId = 7000005, ErrorInvalidGameId = 7000006, ErrorTimeout = 7000007, ErrorAlreadyInit = 7000008, ErrorNotInit = 7000009, ErrorNotSetGameContainer = 7000010, ErrorGameInfoIsNull = 7000011, ErrorGameIsNotRunning = 7000012, ErrorGameNotSupportThisMode = 7000013, SystemModuleJSONParseError = 7100000, SystemModuleSeqNotFounded = 7100001, SystemModuleCurrentGameIsNotFounded = 7100002, ErrorIframeIsNotFound = 7100003, ErrorUndefinedCode = 7999999, ErrorToken04Invalid = 7200401 }