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
TypeScript
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;