interface StreamFrameType { frame: number; clipPath: string; metaData: string; serverTime?: number; DIR?: number; mediaSrc?: string; // 临时 marker?: string; } interface StreamMetaType { frame: number; metaData: string; } interface NewUserStatesType { userId: string; playerState: PlayerStateType; renderInfo: RenderInfoType; event: string | null; relation: number; } interface PlayerStateType { roomTypeId: string; person: number; avatarId: string; skinId: string; roomId: string; isHost: boolean; isFollowHost: boolean; skinDataVersion: string; avatarComponents: string; nickName: string; movingMode: number; attitude: string; areaName: string; pathName: string; pathId: string; avatarSize: number; extra: string; prioritySync: boolean; player: { position: Point; angle: Angle; }; camera: { position: Point; angle: Angle; }; cameraCenter: Point; } interface RenderInfoType { renderType: number; videoFrame: null | string; cameraStateType: number; isMoving: number; needIfr: number; isVideo: number; stillFrame: number; isRotating: number; isFollowing: number; clientPanoTitlesBitmap: any[]; clientPanoTreceId: string; prefetchVideoId: string; noMedia: boolean; } interface StreamReplyType { traceIds: string[]; vehicle: string; mediaSrc?: string; newUserStates: NewUserStatesType[]; actionResponses: any[]; getStateType: number; code: number; msg: string; marker?: string; } // interface NewUserStatesType{ // } interface StreamPushResponse { frame: number; done: boolean; }