larksr_websdk 3.2.33 → 3.2.36

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -12,10 +12,24 @@ LarkSR 对象成员方法主要分为以下三类
12
12
  */
13
13
  initSDKAuthCode(id: string): Promise<void>;
14
14
  /**
15
- * 开始云渲染流程
16
- * @returns 是否成功。主要校验授权码是否成功
15
+ * 连接云端渲染资源
16
+ * @params appID 云端资源的 ID
17
+ * @returns Promise 调用接口并校验授权通过返回成功并自动开始连接
17
18
  */
18
- start(): Promise<void>;
19
+ connect(params: {
20
+ appliId: string;
21
+ playerMode?: number;
22
+ userType?: number;
23
+ roomCode?: string;
24
+ taskId?: string;
25
+ clientMac?: string;
26
+ groupId?: string;
27
+ regionId?: string;
28
+ targetServerIp?: string;
29
+ appKey?: string;
30
+ timestamp?: string;
31
+ signature?: string;
32
+ }): Promise<void>;
19
33
  /**
20
34
  * 重新开始云渲染流程
21
35
  */
@@ -24,6 +38,10 @@ restart(): void;
24
38
  * 重新启动云端应用
25
39
  */
26
40
  restartApp(): void;
41
+ /**
42
+ * 主动关闭连接
43
+ */
44
+ close(): void;
27
45
  ```
28
46
 
29
47
  ## 输入输出相关方法,包括鼠标,键盘,手柄,触摸
@@ -42,9 +60,180 @@ inputText(text: string): void;
42
60
  /**
43
61
  * 操作相关事件
44
62
  * 所有事件坐标相对于云端应用,不相对于网页
63
+ * CloudLark.IClientInput 是所有操作指令接口对象的合集
64
+ * 可以单独使用下面 moseMove 等接口
45
65
  * @param input 操作指令
46
66
  */
47
67
  sendInput(input: CloudLark.IClientInput): void;
68
+ /**
69
+ * 向云端发送鼠标移动事件
70
+ * 事件坐标相对于云端应用,不相对于网页
71
+ * 计算方式可以参考 https://github.com/pingxingyun/lark_sr_websdk_demos 例子中 v_cursor.vue getVMouseTouchPosition 方法
72
+ * 原理是通过 LarkSR 对象的成员 screenState.operateScale 获取相对的缩放,
73
+ * 本地坐标 X larksr.screenState.operateScale.scaleX / scaleY 即可得到相对云端的坐标
74
+ *
75
+ * @param PosX 相对云端鼠标 X 点坐标
76
+ * @param PosY 相对云端鼠标 Y 点坐标
77
+ * @param DeltaX 相对云端鼠标 X 轴移动距离
78
+ * @param DeltaY 相对云端鼠标 X 轴移动距离
79
+ */
80
+ mouseMove(PosX: number, PosY: number, DeltaX: number, DeltaY: number): void;
81
+ /**
82
+ * 向云端发送鼠标移动事件
83
+ * 事件坐标相对于云端应用,不相对于网页
84
+ * 计算方式可以参考 https://github.com/pingxingyun/lark_sr_websdk_demos 例子中 v_cursor.vue getVMouseTouchPosition 方法
85
+ * 原理是通过 LarkSR 对象的成员 screenState.operateScale 获取相对的缩放,
86
+ * 本地坐标 X larksr.screenState.operateScale.scaleX / scaleY 即可得到相对云端的坐标
87
+ *
88
+ * @param PosX 相对云端鼠标 X 点坐标
89
+ * @param PosY 相对云端鼠标 Y 点坐标
90
+ * @param DeltaX 相对云端鼠标 X 轴移动距离
91
+ * @param DeltaY 相对云端鼠标 X 轴移动距离
92
+ */
93
+ moseMove(PosX: number, PosY: number, DeltaX: number, DeltaY: number): void;
94
+ /**
95
+ * 向云端发送鼠标单击事件
96
+ * X Y 坐标计算方式同 mouseMove
97
+ *
98
+ * @param PosX 相对云端鼠标 X 点坐标
99
+ * @param PosY 相对云端鼠标 Y 点坐标
100
+ * @param key LEFT = 0,RIGHT = 1, MIDDLE = 2
101
+ */
102
+ mouseTap(PosX: number, PosY: number, key: CloudLark.MouseKey): void;
103
+ /**
104
+ * 向云端发送鼠标按下事件
105
+ * X Y 坐标计算方式同 mouseMove
106
+ *
107
+ * @param PosX 相对云端鼠标 X 点坐标
108
+ * @param PosY 相对云端鼠标 Y 点坐标
109
+ * @param key LEFT = 0,RIGHT = 1, MIDDLE = 2
110
+ */
111
+ mouseDown(PosX: number, PosY: number, key: CloudLark.MouseKey): void;
112
+ /**
113
+ * 向云端发送鼠标抬起事件
114
+ * X Y 坐标计算方式同 mouseMove
115
+ *
116
+ * @param PosX 相对云端鼠标 X 点坐标
117
+ * @param PosY 相对云端鼠标 Y 点坐标
118
+ * @param key LEFT = 0,RIGHT = 1, MIDDLE = 2
119
+ */
120
+ mouseUp(PosX: number, PosY: number, key: CloudLark.MouseKey): void;
121
+ /**
122
+ * 向云端发送鼠标滚轮事件
123
+ * X Y 坐标计算方式同 mouseMove
124
+ *
125
+ * @param PosX 相对云端鼠标 X 点坐标
126
+ * @param PosY 相对云端鼠标 Y 点坐标
127
+ * @param Delata 120/-120 鼠标滚轮滚动的数值
128
+ */
129
+ mouseWheel(PosX: number, PosY: number, Delata: number): void;
130
+ /**
131
+ * 向云端发送键盘按键按下事件
132
+ * @param key KeyboardEvent.code 字段,具体内容参考 Chrome https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/code/code_values
133
+ * @param isRepeat KeyboardEvent.repeat 字段,参考https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/repeat
134
+ * @returns 是否发送成功,如果key参数传递错误可能发送失败
135
+ */
136
+ keyDown(key: string, isRepeat: boolean): void;
137
+ /**
138
+ * 向云端发送键盘按键抬起事件
139
+ * @param key KeyboardEvent.code 字段,具体内容参考 Chrome https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/code/code_values
140
+ * @returns 是否发送成功,如果key参数传递错误可能发送失败
141
+ */
142
+ keyUp(key: string): void;
143
+ /**
144
+ * 手柄接口消息按照 windows xbox 360 手柄标准定义,即包含 xbox 360 手柄的功能,如按钮,摇杆,扳机键。windows 上最多支持4个手柄,
145
+ * 当前版本服务端只处理1个手柄,后续会放开多个手柄的支持。接口中发送的按键值为对应的 windows 中定义的按键值。
146
+ * 向云端发送手柄按钮按下事件
147
+ * 參考 js 中获取手柄事件,参考 https://developer.mozilla.org/zh-CN/docs/Web/API/Gamepad_API/Using_the_Gamepad_API
148
+ * @param userIndex 手柄的索引,硬件设备索引 0-3. 第一个连接的手柄为0,第二个为1,以此类推。
149
+ * @param button 按鍵 @see https://docs.microsoft.com/en-us/windows/win32/api/xinput/ns-xinput-xinput_gamepad
150
+ * export const enum XINPUT_BUTTONS {
151
+ * XINPUT_GAMEPAD_DPAD_UP = 0x0001,
152
+ * XINPUT_GAMEPAD_DPAD_DOWN = 0x0002,
153
+ * XINPUT_GAMEPAD_DPAD_LEFT = 0x0004,
154
+ * XINPUT_GAMEPAD_DPAD_RIGHT = 0x0008,
155
+ * XINPUT_GAMEPAD_START = 0x0010,
156
+ * XINPUT_GAMEPAD_BACK = 0x0020,
157
+ * XINPUT_GAMEPAD_LEFT_THUMB = 0x0040,
158
+ * XINPUT_GAMEPAD_RIGHT_THUMB = 0x0080,
159
+ * XINPUT_GAMEPAD_LEFT_SHOULDER = 0x0100,
160
+ * XINPUT_GAMEPAD_RIGHT_SHOULDER = 0x0200,
161
+ * XINPUT_GAMEPAD_A = 0x1000,
162
+ * XINPUT_GAMEPAD_B = 0x2000,
163
+ * XINPUT_GAMEPAD_X = 0x4000,
164
+ * XINPUT_GAMEPAD_Y = 0x8000,
165
+ * XINPUT_UNKNOWN = -1,
166
+ * }
167
+ * @param isRepeat 是否重复按下
168
+ * @returns
169
+ */
170
+ gamepadButtonDown(userIndex: number, button: number, isRepeat: boolean): void;
171
+ /**
172
+ * 向云端发送手柄按钮抬起事件
173
+ * 參考 https://developer.mozilla.org/zh-CN/docs/Web/API/Gamepad_API/Using_the_Gamepad_API
174
+ * @param userIndex 手柄的索引
175
+ * @param button 按鍵
176
+ * @returns
177
+ */
178
+ gamepadButtonUp(userIndex: number, button: number): void;
179
+ /**
180
+ * 向云端发送手柄按trigger键事件
181
+ * 參考 https://developer.mozilla.org/zh-CN/docs/Web/API/Gamepad_API/Using_the_Gamepad_API
182
+ * @param userIndex 手柄的索引
183
+ * @param isleft 是否是左trigger
184
+ * @param value trigger的值 扳机键的值 0-255
185
+ * @returns
186
+ */
187
+ gamepadTrigger(userIndex: number, isleft: boolean, value: number): void;
188
+ /**
189
+ * 向云端发送手柄按摇杆的值,即 axes 值
190
+ * win MAX
191
+ * |
192
+ * MIN-------------MAX
193
+ * |
194
+ * MIN
195
+ * js 中获取硬件手柄參考 https://developer.mozilla.org/zh-CN/docs/Web/API/Gamepad_API/Using_the_Gamepad_API
196
+ * @param userIndex 手柄的索引
197
+ * @param thumblx 左摇杆 X 值,-32767 到 32767
198
+ * @param thumbly 左摇杆 Y 值,-32767 到 32767
199
+ * @param thumbrx 右摇杆 X 值,-32767 到 32767
200
+ * @param thumbry 右摇杆 Y 值,-32767 到 32767
201
+ * @returns
202
+ */
203
+ joystick(userIndex: number, thumblx: number, thumbly: number, thumbrx: number, thumbry: number): void;
204
+ /**
205
+ * 向云端发送触摸按下事件
206
+ * 坐标位置与 mouseMove 相同,相对与云端的鼠标移动位置
207
+ * @param id 手指的id
208
+ * @param x 相对云端的x轴坐标
209
+ * @param y 相对云端的y轴坐标
210
+ * @returns
211
+ */
212
+ touchDown(id: number, x: number, y: number): void;
213
+ /**
214
+ * 向云端发送触摸移动事件
215
+ * 坐标位置与 mouseMove 相同,相对与云端的鼠标移动位置
216
+ * @param id 手指的id
217
+ * @param x 相对云端的x轴坐标
218
+ * @param y 相对云端的y轴坐标
219
+ * @returns
220
+ */
221
+ touchMove(id: number, x: number, y: number): void;
222
+ /**
223
+ * 向云端发送触摸抬起事件
224
+ * 坐标位置与 mouseMove 相同,相对与云端的鼠标移动位置
225
+ * @param id 手指的id
226
+ * @param x 相对云端的x轴坐标
227
+ * @param y 相对云端的y轴坐标
228
+ * @returns
229
+ */
230
+ touchUp(id: number, x: number, y: number): void;
231
+ /**
232
+ * 字符串转换为输入的鼠标按键值
233
+ * @param button 'left' | 'mid' | 'right'
234
+ * @returns LEFT = 0,RIGHT = 1,MIDDLE = 2
235
+ */
236
+ getMouseButtonType(button: 'left' | 'mid' | 'right'): CloudLark.MouseKey;
48
237
  ```
49
238
 
50
239
  ## 数据通道扩展,向云端应用数据通道发送数据
@@ -64,6 +253,45 @@ sendTextToDataChannel(text: string): void;
64
253
  sendBinaryToDataChannel(binary: Uint8Array): void;
65
254
  ```
66
255
 
256
+ ## 智能语音相关接口
257
+
258
+ ```typescript
259
+ /**
260
+ * 开始智能语音对话文本输入
261
+ * 应在只能语音为开始状态下开始输入
262
+ * @param text 输入的文本
263
+ * @returns 返回对话 ID
264
+ */
265
+ aiDmTextInput(text: string): number;
266
+ /**
267
+ * 开始智能语音对话语音输入,自动请求录音权限
268
+ * 应在只能语音为开始状态下开始输入
269
+ * @returns 成功返回对话id,失败返回异常
270
+ */
271
+ startAiDmVoiceInput(): Promise<number>;
272
+ /**
273
+ * 停止智能语音输入,通知语音引擎当前用户输入对话结束
274
+ * @returns 返回当前对话的id
275
+ */
276
+ stopAiDmVoiceInput(): number;
277
+ ```
278
+
279
+ LarkSR 添加如下事件来获取智能语音服务状态:
280
+
281
+ ```typescript
282
+ larksr.on('aivoicestatus', (e) => {
283
+ // 智能语音服务状态
284
+ });
285
+
286
+ larksr.on('aivoiceasrresult', (e) => {
287
+ // 智能语音转文字识别结果
288
+ });
289
+
290
+ larksr.on('aivoicedmresult', (e) => {
291
+ // 智能语音对话结果
292
+ });
293
+ ```
294
+
67
295
  ## 其他
68
296
 
69
297
  ```typescript