UNPKG

larksr_websdk

Version:

Larksr websdk. Easy to build a cloud render client for larksr system or ue4 pixelstreaming.docs: https://paraversetechnology.github.io/en/webclient_sdk/

331 lines (330 loc) 9.32 kB
import ScaleMode from './utils/scale_mode'; import { StartAppInfo } from './api'; import { ILarkSRConfig } from './larksr'; export interface IAppliParams { /** * appserver 的ip地址 */ appServer: string; /** * appserver 的端口号 */ appPort: string; /** * 渲染服务器 ssl 端口号 */ renderSSLServerPort: string; /** * appli type */ appliType: number; /** * 是否使用 websocket 代理 */ wsProxy: boolean; /** * 优先使用的外网ip. 用在webrtc ice处替换为高优先级的ip */ preferPubOutIp: string; /** * taskid */ taskid: string; taskId: string; /** * 当前应用名称 */ appliName: string; /** * @deprecated * 应用的宽高。现在云端自动获取宽高 */ width: number; /** * @deprecated * 应用的宽高。现在云端自动获取宽高 */ height: number; /** * 缩放模式 */ scaleMode: ScaleMode; /** * 日志级别 * @default 'warn' */ logLevel: 'info' | 'warn' | 'error'; /** * 无操作时间。超时断开连接. */ noOperationTimeout: number; /** * 是否显示右下角的水印。 */ waterMark: boolean; /** * 检测的rtt值,rtt超过该值将提示用户网络环境差 */ rttLimit: number; /** * 检测的丢包率。丢包率超过该值提示用户网络环境差 */ packetLostLimit: number; /** * 丢包率和rtt提示的时间间隔。 */ rttLimitInterval: number; /** * 码率. 用在在创建 webrtc sdp时替换为此码率。 */ codeRate: number; /** * audio code rate * https://stackoverflow.com/questions/33649283/how-to-set-up-sdp-for-high-quality-opus-audio * a=fmtp:111 minptime=10;useinbandfec=1; stereo=1; maxaveragebitrate=510000 */ audioCodeRate: number; /** * 帧率,在登录task时传给后端。 */ frameRate: number; /** * 网络状态,影响 webrtc offer 创建时最低码率。 */ network: 'local' | 'public'; /** * 使用的语言,目前只支持英语和中文。 */ language: string; /** * 初始的鼠标锁定模式 * 0:自动判断模式 * 1:锁定模式 * 2: 非锁定模式 */ initCursorMode: number; /** * 背景颜色 */ bgColor: string; /** * 全屏模式 * 0 -》 用户手动触发 * 1 -》 首次点击进入触发 * 2 -》 每次点击触发 */ fullScreenMode: number; /** * 手机端全屏模式 * 0 -》 用户手动触发 * 1 -》 首次点击进入触发 * 2 -》 每次点击触发 */ mobileFullScreenMode: number; /** * 一人操作多人看 0 普通模式 1 交互模式(可以一人操作多人看) * 2 多人互动模式,鼠标键盘都放开 */ playerMode: number; /** * 用户类型 number * 所有者:1 观察者:0; */ userType: number; /** * 用户昵称 */ nickname: string; /** * 口令:8位唯一码,写入TaskInfo. 房间code,备用。 */ authCode: string; /** * debug task. 跳过task检测 */ debugTask: boolean; /** * debug webserver */ debugWebServer: string; /** * laoding timeout * 5 * 60 */ loadingTimeout: number; /** * share url */ shareUrl: boolean; /** * 是否强制横屏 */ mobileForceLandscape: boolean; /** * 移动端初始化初始化是否显示手柄 */ mobileVirtualJoystick: boolean; /** * mouseZoomDirection * 用于移动端捏合缩放操作与应用鼠标缩放的对应关系 * 1:鼠标滚轮向上为放大, * 0:鼠标滚轮向下为放大(default) */ mouseZoomDirection: number; /** * 初始是否显示玩家列表 */ showPlayerList: boolean; /** * 优先使用的解码器 */ preferDecoder: 'auto' | 'vp8' | 'vp9' | 'h264' | 'h265' | 'hevc' | 'av1' | 'av1x'; /** * 触摸操作对应的操作方式,触摸屏还是鼠标 */ touchOperateMode: 'touchScreen' | 'mouse' | 'mix'; /** * appid */ appliId: string; /** * */ syncLocalToCloudClipboard: boolean; enableRttIcon: boolean; enableSoundRequire: boolean; toastLevel: number; wsId: string; groupId: string; textInputEventPrompt: boolean; audioInput: boolean; audioInputAutoStart: boolean; videoInput: boolean; videoInputAutoStart: boolean; liveStreaming: boolean; useSeparateMediaSharePeer: boolean; mobileKeyboardType: number; initResolutionType: number; useWebCodec: boolean; mobileWebMenuType: number; showWebMenu: number; /** * 强制指定云端应用分辨率 * @width * @height */ forceResolution: boolean; /** * 自动同步客户端分辨率时忽略云端桌面分辨率大小限制 */ ignoreCloudDesktopResolution: boolean; /** * 强制横屏模式时使用屏幕宽高判断是否横屏 */ ignoreScreenOrientation: boolean; imeFirstNotice: number; } export declare enum AppliType { DESKTOP = 1, SHARED = 2, PIXEL_STREAMING = 13, VR = 3, VR_STEAM = 5, NV_VR = 6, XR = 7, PXY_AR = 9, NV_AR = 11 } export declare class AppliParams implements IAppliParams { appServer: string; appPort: string; renderSSLServerPort: string; appliType: AppliType; wsProxy: boolean; preferPubOutIp: string; taskid: string; get taskId(): string; appliName: string; width: number; height: number; scaleMode: ScaleMode; logLevel: 'info' | 'warn' | 'error'; noOperationTimeout: number; waterMark: boolean; rttLimit: number; packetLostLimit: number; rttLimitInterval: number; codeRate: number; audioCodeRate: number; frameRate: number; network: 'local' | 'public'; language: string; initCursorMode: number; bgColor: string; fullScreenMode: number; mobileFullScreenMode: number; playerMode: number; userType: number; nickname: string; authCode: string; debugTask: boolean; debugWebServer: string; loadingTimeout: number; shareUrl: boolean; mobileForceLandscape: boolean; mobileVirtualJoystick: boolean; mouseZoomDirection: number; showPlayerList: boolean; preferDecoder: 'auto' | 'vp8' | 'vp9' | 'h264' | 'h265' | 'hevc' | 'av1' | 'av1x'; touchOperateMode: 'touchScreen' | 'mouse' | 'mix'; appliId: string; syncLocalToCloudClipboard: boolean; enableRttIcon: boolean; enableSoundRequire: boolean; toastLevel: number; wsId: string; groupId: string; textInputEventPrompt: boolean; audioInput: boolean; audioInputAutoStart: boolean; videoInput: boolean; videoInputAutoStart: boolean; liveStreaming: boolean; useSeparateMediaSharePeer: boolean; mobileKeyboardType: number; initResolutionType: number; useWebCodec: boolean; mobileWebMenuType: number; showWebMenu: number; forceResolution: boolean; ignoreCloudDesktopResolution: boolean; ignoreScreenOrientation: boolean; imeFirstNotice: number; static copyAndCreate(params?: IAppliParams): AppliParams; static setUpWithSDKConfig(params: IAppliParams, config: ILarkSRConfig): AppliParams; } export declare function CreateAppliParams(): IAppliParams; export declare class AppliParamsUtils { static getScaleMode(init: number | null | undefined): string; static getNetwork(init: number | null | undefined): 'local' | 'public'; static getLogLevel(level: string | null | undefined): 'info' | 'warn'; static getBoolOption(option: string | null | undefined | boolean, emptyValue?: boolean): boolean; static getNumberBoolOption(option: string | null | undefined | number, emptyValue?: boolean): boolean; static getStringOption(option: string | null | undefined, emptyValue?: string): string; static getIntOption(option: string | number | null | undefined, emptyValue?: number): number; static getBgColor(option: string | null | undefined): string; } /** * WARNING 服务器端返回数据随机性较大,统一在该函数里做兼容处理 * 服务器端可能随意修改字段名称或值,需要注意测试 * @param startAppInfo * @returns */ export declare function LoadAppliParamsFromUrl(): IAppliParams; /** * WARNING 服务器端返回数据随机性较大,统一在该函数里做兼容处理 * 服务器端可能随意修改字段名称或值,需要注意测试 * @param startAppInfo * @returns */ export declare function LoadAppliParamsStartAppInfo(startAppInfo: StartAppInfo): IAppliParams;