larksr_websdk 3.2.402 → 3.2.404

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.
Files changed (55) hide show
  1. package/dist/doc/en/config.md +228 -0
  2. package/dist/doc/en/dev.md +84 -0
  3. package/dist/doc/en/event_codes.md +286 -0
  4. package/dist/doc/en/events.md +229 -0
  5. package/dist/doc/en/functions.md +603 -0
  6. package/dist/doc/en/index.md +115 -0
  7. package/dist/doc/en/member_variables.md +407 -0
  8. package/dist/doc/en/multi_media_3_2_401.md +84 -0
  9. package/dist/doc/en/sdkid_encryption.md +40 -0
  10. package/dist/doc/en/update.md +462 -0
  11. package/dist/doc/zh_CN/config.md +243 -0
  12. package/dist/doc/zh_CN/event_codes.md +286 -0
  13. package/dist/doc/zh_CN/events.md +229 -0
  14. package/dist/doc/zh_CN/functions.md +658 -0
  15. package/dist/doc/zh_CN/index.md +84 -0
  16. package/dist/doc/zh_CN/member_variables.md +431 -0
  17. package/dist/doc/zh_CN/multi_media_3_2_401.md +84 -0
  18. package/dist/doc/zh_CN/sdkid_encryption.md +40 -0
  19. package/dist/doc/zh_CN/update.md +579 -0
  20. package/dist/larksr-web-sdk.min.js +1 -1
  21. package/dist/types/api.d.ts +1 -0
  22. package/dist/types/appli_params.d.ts +9 -6
  23. package/dist/types/config.d.ts +0 -1
  24. package/dist/types/lark/Worker.d.ts +3 -0
  25. package/dist/types/lark/application.d.ts +7 -2
  26. package/dist/types/lark/custom.d.ts +7 -0
  27. package/dist/types/lark/peer_connection.d.ts +3 -2
  28. package/dist/types/lark/webcodec.d.ts +40 -0
  29. package/dist/types/lark/webcodecs.generated.d.ts +417 -0
  30. package/dist/types/lark/websocket_channel.d.ts +1 -0
  31. package/dist/types/lark/websocket_proxy.d.ts +2 -0
  32. package/dist/types/larksr.d.ts +19 -7
  33. package/dist/types/protobuf/cloudlark.d.ts +9674 -0
  34. package/dist/types/screen_state.d.ts +8 -3
  35. package/dist/types/utils/ios-inner-height.d.ts +4 -0
  36. package/dist/types/utils/lock_pointer.d.ts +2 -1
  37. package/dist/types/utils/scale_mode.d.ts +44 -0
  38. package/package.json +72 -71
  39. package/types/api.d.ts +1 -0
  40. package/types/appli_params.d.ts +9 -6
  41. package/types/config.d.ts +0 -1
  42. package/types/lark/Worker.d.ts +3 -0
  43. package/types/lark/application.d.ts +7 -2
  44. package/types/lark/custom.d.ts +7 -0
  45. package/types/lark/peer_connection.d.ts +3 -2
  46. package/types/lark/webcodec.d.ts +40 -0
  47. package/types/lark/webcodecs.generated.d.ts +417 -0
  48. package/types/lark/websocket_channel.d.ts +1 -0
  49. package/types/lark/websocket_proxy.d.ts +2 -0
  50. package/types/larksr.d.ts +19 -7
  51. package/types/protobuf/cloudlark.d.ts +9674 -0
  52. package/types/screen_state.d.ts +8 -3
  53. package/types/utils/ios-inner-height.d.ts +4 -0
  54. package/types/utils/lock_pointer.d.ts +2 -1
  55. package/types/utils/scale_mode.d.ts +44 -0
@@ -0,0 +1,658 @@
1
+ # LarkSR 对象成员方法
2
+
3
+ LarkSR 对象成员方法主要分为以下三类
4
+
5
+ ## 控制流程方法,包括启动,关闭,重启,注册授权码等。
6
+
7
+ ```typescript
8
+ /**
9
+ * 单独设置服务器地址,作用同 config 中的 serverAddress 字段
10
+ * 在进入应用之前都可以更新。
11
+ * @param serverAddress 服务器地址,如 http://192.168.0.55:8181/
12
+ */
13
+ updateServerAddress(serverAddress: string): void;
14
+ /**
15
+ *
16
+ * @param id sdk id 初始化sdkid
17
+ * @returns
18
+ */
19
+ initSDKAuthCode(id: string): Promise<void>;
20
+ /**
21
+ * 使用平行云托管平台时,使用 connectWithPxyHost 连接云端应用
22
+ * 托管平台 https://www.pingxingyun.com/console/#/
23
+ * @param params 同 connect 方法
24
+ * @return 同 connect 方法
25
+ */
26
+ connectWithPxyHost(params: {
27
+ appliId: string;
28
+ playerMode?: number;
29
+ userType?: number;
30
+ roomCode?: string; // LarkXR 3.2.21废弃
31
+ authCode?: string; // LarkXR 3.2.21新增
32
+ taskId?: string;
33
+ regionId?: string;
34
+ groupId?: string;
35
+ }): Promise<void>;
36
+ /**
37
+ * 连接云端渲染资源
38
+ * @params appID 云端资源的 ID
39
+ * @returns Promise 调用接口并校验授权通过返回成功并自动开始连接
40
+ * Promise 返回的错误对象:
41
+ * {
42
+ // type 0 渲染资源不足导致的错误,1 其他错误, 可用 type == 0 判断是否是渲染资源不足类型的错误
43
+ type: 0,
44
+
45
+ // 渲染资源不足时的事件类型,其他情况可能不返回,比如网络错误
46
+ eventType?:LarkSRClientEvent.RESOURCE_NOT_ENOUGH,
47
+
48
+ // 服务端返回的错误码,服务端请求正确返回时存在。需要注意渲染资源不足类型的错误码。
49
+ // 可用 type == 0 判断是否是渲染资源不足类型的错误,再用 code 进行细节处理,或者只用 type == 0 进行处理。
50
+ // 813=当前应用的运行数量已达到最大值:{0},请稍后再试
51
+ // 814=同一appKey下的应用运行数量达到最大值:{0},请稍后再试
52
+ // 815=应用运行数量已达到最大授权并发数量,请稍后再试
53
+ // 816=VR应用运行数量已达到最大授权并发数量,请稍后再试
54
+ // 817=渲染资源不足,请稍后再试
55
+ // 820=暂无活跃的GPU节点
56
+ // 821=节点资源使用率已达到设置的阈值
57
+ // 823=单节点运行应用数量已达到单节点最大授权并发数量,请稍后再试
58
+ code?: 817,
59
+
60
+ // 错误信息
61
+ message:? "",
62
+ }
63
+ *
64
+ */
65
+ connect(params: {
66
+ appliId: string;
67
+ playerMode?: number;
68
+ userType?: number;
69
+ roomCode?: string; // LarkXR 3.2.21废弃
70
+ authCode?: string; // LarkXR 3.2.21新增
71
+ taskId?: string;
72
+ clientMac?: string;
73
+ groupId?: string;
74
+ regionId?: string;
75
+ targetServerIp?: string;
76
+ appKey?: string;
77
+ timestamp?: string;
78
+ signature?: string;
79
+ } | any): Promise<void>;
80
+ /**
81
+ * 重新开始云渲染流程
82
+ */
83
+ restart(): void;
84
+ /**
85
+ * 重新启动云端应用
86
+ */
87
+ restartApp(): void;
88
+ /**
89
+ * 主动关闭连接
90
+ */
91
+ close(): void;
92
+ ```
93
+
94
+ ## 输入输出相关方法,包括鼠标,键盘,手柄,触摸
95
+
96
+ ```typescript
97
+ /**
98
+ * 切换当前操作者
99
+ * @param uid 用户id
100
+ */
101
+ changeOperater(uid: number): void;
102
+ /**
103
+ * 向云端应用发送文字。当云端应用出现输入框时,可以将本地文本填写进去.
104
+ * @param text 文字
105
+ */
106
+ inputText(text: string): void;
107
+ /**
108
+ * 操作相关事件
109
+ * 所有事件坐标相对于云端应用,不相对于网页
110
+ * CloudLark.IClientInput 是所有操作指令接口对象的合集
111
+ * 可以单独使用下面 moseMove 等接口
112
+ * @param input 操作指令
113
+ */
114
+ sendInput(input: CloudLark.IClientInput): void;
115
+ /**
116
+ * 向云端发送鼠标移动事件
117
+ * 事件坐标相对于云端应用,不相对于网页
118
+ * 计算方式可以参考 https://github.com/pingxingyun/lark_sr_websdk_demos 例子中 v_cursor.vue getVMouseTouchPosition 方法
119
+ * 原理是通过 LarkSR 对象的成员 screenState.operateScale 获取相对的缩放,
120
+ * 本地坐标 X larksr.screenState.operateScale.scaleX / scaleY 即可得到相对云端的坐标
121
+ *
122
+ * @param PosX 相对云端鼠标 X 点坐标
123
+ * @param PosY 相对云端鼠标 Y 点坐标
124
+ * @param DeltaX 相对云端鼠标 X 轴移动距离
125
+ * @param DeltaY 相对云端鼠标 X 轴移动距离
126
+ */
127
+ mouseMove(PosX: number, PosY: number, DeltaX: number, DeltaY: number): void;
128
+ /**
129
+ * 向云端发送鼠标移动事件
130
+ * 事件坐标相对于云端应用,不相对于网页
131
+ * 计算方式可以参考 https://github.com/pingxingyun/lark_sr_websdk_demos 例子中 v_cursor.vue getVMouseTouchPosition 方法
132
+ * 原理是通过 LarkSR 对象的成员 screenState.operateScale 获取相对的缩放,
133
+ * 本地坐标 X larksr.screenState.operateScale.scaleX / scaleY 即可得到相对云端的坐标
134
+ *
135
+ * @param PosX 相对云端鼠标 X 点坐标
136
+ * @param PosY 相对云端鼠标 Y 点坐标
137
+ * @param DeltaX 相对云端鼠标 X 轴移动距离
138
+ * @param DeltaY 相对云端鼠标 X 轴移动距离
139
+ */
140
+ moseMove(PosX: number, PosY: number, DeltaX: number, DeltaY: number): void;
141
+ /**
142
+ * 向云端发送鼠标单击事件
143
+ * X Y 坐标计算方式同 mouseMove
144
+ *
145
+ * @param PosX 相对云端鼠标 X 点坐标
146
+ * @param PosY 相对云端鼠标 Y 点坐标
147
+ * @param key LEFT = 0,RIGHT = 1, MIDDLE = 2
148
+ */
149
+ mouseTap(PosX: number, PosY: number, key: CloudLark.MouseKey): void;
150
+ /**
151
+ * 向云端发送鼠标按下事件
152
+ * X Y 坐标计算方式同 mouseMove
153
+ *
154
+ * @param PosX 相对云端鼠标 X 点坐标
155
+ * @param PosY 相对云端鼠标 Y 点坐标
156
+ * @param key LEFT = 0,RIGHT = 1, MIDDLE = 2
157
+ */
158
+ mouseDown(PosX: number, PosY: number, key: CloudLark.MouseKey): void;
159
+ /**
160
+ * 向云端发送鼠标抬起事件
161
+ * X Y 坐标计算方式同 mouseMove
162
+ *
163
+ * @param PosX 相对云端鼠标 X 点坐标
164
+ * @param PosY 相对云端鼠标 Y 点坐标
165
+ * @param key LEFT = 0,RIGHT = 1, MIDDLE = 2
166
+ */
167
+ mouseUp(PosX: number, PosY: number, key: CloudLark.MouseKey): void;
168
+ /**
169
+ * 向云端发送鼠标滚轮事件
170
+ * X Y 坐标计算方式同 mouseMove
171
+ *
172
+ * @param PosX 相对云端鼠标 X 点坐标
173
+ * @param PosY 相对云端鼠标 Y 点坐标
174
+ * @param Delata 120/-120 鼠标滚轮滚动的数值
175
+ */
176
+ mouseWheel(PosX: number, PosY: number, Delata: number): void;
177
+ /**
178
+ * 向云端发送键盘按键按下事件
179
+ * @param key KeyboardEvent.code 字段,具体内容参考 Chrome https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/code/code_values
180
+ * @param isRepeat KeyboardEvent.repeat 字段,参考https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/repeat
181
+ * @returns 是否发送成功,如果key参数传递错误可能发送失败
182
+ */
183
+ keyDown(key: string, isRepeat: boolean): void;
184
+ /**
185
+ * 向云端发送键盘按键抬起事件
186
+ * @param key KeyboardEvent.code 字段,具体内容参考 Chrome https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/code/code_values
187
+ * @returns 是否发送成功,如果key参数传递错误可能发送失败
188
+ */
189
+ keyUp(key: string): void;
190
+ /**
191
+ * 手柄接口消息按照 windows xbox 360 手柄标准定义,即包含 xbox 360 手柄的功能,如按钮,摇杆,扳机键。windows 上最多支持4个手柄,
192
+ * 当前版本服务端只处理1个手柄,后续会放开多个手柄的支持。接口中发送的按键值为对应的 windows 中定义的按键值。
193
+ * 向云端发送手柄按钮按下事件
194
+ * 參考 js 中获取手柄事件,参考 https://developer.mozilla.org/zh-CN/docs/Web/API/Gamepad_API/Using_the_Gamepad_API
195
+ * @param userIndex 手柄的索引,硬件设备索引 0-3. 第一个连接的手柄为0,第二个为1,以此类推。
196
+ * @param button 按鍵 @see https://docs.microsoft.com/en-us/windows/win32/api/xinput/ns-xinput-xinput_gamepad
197
+ * export const enum XINPUT_BUTTONS {
198
+ * XINPUT_GAMEPAD_DPAD_UP = 0x0001,
199
+ * XINPUT_GAMEPAD_DPAD_DOWN = 0x0002,
200
+ * XINPUT_GAMEPAD_DPAD_LEFT = 0x0004,
201
+ * XINPUT_GAMEPAD_DPAD_RIGHT = 0x0008,
202
+ * XINPUT_GAMEPAD_START = 0x0010,
203
+ * XINPUT_GAMEPAD_BACK = 0x0020,
204
+ * XINPUT_GAMEPAD_LEFT_THUMB = 0x0040,
205
+ * XINPUT_GAMEPAD_RIGHT_THUMB = 0x0080,
206
+ * XINPUT_GAMEPAD_LEFT_SHOULDER = 0x0100,
207
+ * XINPUT_GAMEPAD_RIGHT_SHOULDER = 0x0200,
208
+ * XINPUT_GAMEPAD_A = 0x1000,
209
+ * XINPUT_GAMEPAD_B = 0x2000,
210
+ * XINPUT_GAMEPAD_X = 0x4000,
211
+ * XINPUT_GAMEPAD_Y = 0x8000,
212
+ * XINPUT_UNKNOWN = -1,
213
+ * }
214
+ * @param isRepeat 是否重复按下
215
+ * @returns
216
+ */
217
+ gamepadButtonDown(userIndex: number, button: number, isRepeat: boolean): void;
218
+ /**
219
+ * 向云端发送手柄按钮抬起事件
220
+ * 參考 https://developer.mozilla.org/zh-CN/docs/Web/API/Gamepad_API/Using_the_Gamepad_API
221
+ * @param userIndex 手柄的索引
222
+ * @param button 按鍵
223
+ * @returns
224
+ */
225
+ gamepadButtonUp(userIndex: number, button: number): void;
226
+ /**
227
+ * 向云端发送手柄按trigger键事件
228
+ * 參考 https://developer.mozilla.org/zh-CN/docs/Web/API/Gamepad_API/Using_the_Gamepad_API
229
+ * @param userIndex 手柄的索引
230
+ * @param isleft 是否是左trigger
231
+ * @param value trigger的值 扳机键的值 0-255
232
+ * @returns
233
+ */
234
+ gamepadTrigger(userIndex: number, isleft: boolean, value: number): void;
235
+ /**
236
+ * 向云端发送手柄按摇杆的值,即 axes 值
237
+ * win MAX
238
+ * |
239
+ * MIN-------------MAX
240
+ * |
241
+ * MIN
242
+ * js 中获取硬件手柄參考 https://developer.mozilla.org/zh-CN/docs/Web/API/Gamepad_API/Using_the_Gamepad_API
243
+ * @param userIndex 手柄的索引
244
+ * @param thumblx 左摇杆 X 值,-32767 到 32767
245
+ * @param thumbly 左摇杆 Y 值,-32767 到 32767
246
+ * @param thumbrx 右摇杆 X 值,-32767 到 32767
247
+ * @param thumbry 右摇杆 Y 值,-32767 到 32767
248
+ * @returns
249
+ */
250
+ joystick(userIndex: number, thumblx: number, thumbly: number, thumbrx: number, thumbry: number): void;
251
+ /**
252
+ * 向云端发送触摸按下事件
253
+ * 坐标位置与 mouseMove 相同,相对与云端的鼠标移动位置
254
+ * @param id 手指的id
255
+ * @param x 相对云端的x轴坐标
256
+ * @param y 相对云端的y轴坐标
257
+ * @returns
258
+ */
259
+ touchDown(id: number, x: number, y: number): void;
260
+ /**
261
+ * 向云端发送触摸移动事件
262
+ * 坐标位置与 mouseMove 相同,相对与云端的鼠标移动位置
263
+ * @param id 手指的id
264
+ * @param x 相对云端的x轴坐标
265
+ * @param y 相对云端的y轴坐标
266
+ * @returns
267
+ */
268
+ touchMove(id: number, x: number, y: number): void;
269
+ /**
270
+ * 向云端发送触摸抬起事件
271
+ * 坐标位置与 mouseMove 相同,相对与云端的鼠标移动位置
272
+ * @param id 手指的id
273
+ * @param x 相对云端的x轴坐标
274
+ * @param y 相对云端的y轴坐标
275
+ * @returns
276
+ */
277
+ touchUp(id: number, x: number, y: number): void;
278
+ /**
279
+ * 字符串转换为输入的鼠标按键值
280
+ * @param button 'left' | 'mid' | 'right'
281
+ * @returns LEFT = 0,RIGHT = 1,MIDDLE = 2
282
+ */
283
+ getMouseButtonType(button: 'left' | 'mid' | 'right'): CloudLark.MouseKey;
284
+ ```
285
+
286
+ ## 数据通道扩展,向云端应用数据通道发送数据
287
+
288
+ ```typescript
289
+ /**
290
+ * 发送文字消息给数据通道
291
+ * 注意 云端应用要继承数据通道功能
292
+ * > V3.2.314 版本对应服务器版本和数据通道版本为 3.2.5.1 及以上
293
+ * @param text 文字
294
+ */
295
+ sendTextToDataChannel(text: string): void;
296
+ /**
297
+ * 发送字节消息给数据通道
298
+ * 注意 云端应用要继承数据通道功能
299
+ * @param binary 字节消息
300
+ */
301
+ sendBinaryToDataChannel(binary: Uint8Array): void;
302
+ ```
303
+
304
+ ## 智能语音相关接口
305
+
306
+ ```typescript
307
+ /**
308
+ * 开始智能语音对话文本输入
309
+ * 应在只能语音为开始状态下开始输入
310
+ * @param text 输入的文本
311
+ * @returns 返回对话 ID
312
+ */
313
+ aiDmTextInput(text: string): number;
314
+ /**
315
+ * 开始智能语音对话语音输入,自动请求录音权限
316
+ * 应在只能语音为开始状态下开始输入
317
+ * @returns 成功返回对话id,失败返回异常
318
+ */
319
+ startAiDmVoiceInput(): Promise<number>;
320
+ /**
321
+ * 停止智能语音输入,通知语音引擎当前用户输入对话结束
322
+ * @returns 返回当前对话的id
323
+ */
324
+ stopAiDmVoiceInput(): number;
325
+ ```
326
+
327
+ LarkSR 添加如下事件来获取智能语音服务状态:
328
+
329
+ ```typescript
330
+ larksr.on('aivoicestatus', (e) => {
331
+ // 智能语音服务状态
332
+ });
333
+
334
+ larksr.on('aivoiceasrresult', (e) => {
335
+ // 智能语音转文字识别结果
336
+ });
337
+
338
+ larksr.on('aivoicedmresult', (e) => {
339
+ // 智能语音对话结果
340
+ });
341
+ ```
342
+
343
+ ## 麦克风输入接口
344
+
345
+ 客户端打开后云端应用可直接通过读取声卡上的麦克风接收到音频。
346
+
347
+ > 该功能匹配的服务端版本最低为 V3.2.51
348
+ > 使用该功能要注意在后台开启语音输入功能
349
+ > 注意要在连接成功之后打开媒体设备。即 `mediaPlayed` 之后调用才有效
350
+
351
+ ```typescript
352
+ /**
353
+ * 打开一个音频设备,要注意浏览器限制在 https 或者 localhost 下才能打开音频
354
+ * @param deviceId 音频设备id,如果不传将打开默认设备。@see getConnectedAudioinputDevices
355
+ * @returns
356
+ */
357
+ openAudio(deviceId?: string);
358
+ /**
359
+ * 关闭当前的音频设备
360
+ * @returns
361
+ */
362
+ closeAudio(): boolean | undefined;
363
+ /**
364
+ * 暂停发送音频
365
+ * @returns
366
+ */
367
+ pauseAudioSending(): any;
368
+ /**
369
+ * 恢复发送音频
370
+ * @returns
371
+ */
372
+ resumeAudioSending(): any;
373
+ /**
374
+ * 返回已连接的音频设备列表,设备列表中的设备的 deviceId 可用来打开某个音频设备
375
+ * @returns
376
+ */
377
+ getConnectedAudioinputDevices(): Promise<MediaDeviceInfo[] | undefined>;
378
+ /**
379
+ * 设置当前已开启的音频track是否启用状态
380
+ * @param enable 是否启用
381
+ * @returns
382
+ */
383
+ setAudioEnable(enable: boolean): void | undefined;
384
+
385
+ /**
386
+ * 请求浏览器打开媒体并且打开上传到服务器通道。
387
+ * 要注意的是在服务器连接成功之后请求打开
388
+ * @param constraints 参考 navigator.mediaDevices.getUserMedia(constraints)
389
+ * @param reset 是否重制媒体通道。true 的情况下重制整个 peerconnection
390
+ * @returns 打开的通道的绑定信息。管理媒体通道如关闭暂停或恢复使用。
391
+ */
392
+ openUserMedia(constraints?: MediaStreamConstraints, reset?: boolean): Promise<any>;
393
+ ```
394
+
395
+ larksr 配置项自动打开麦克风配置,在`new LarkSR({ ... 此处省略其他配置 ... audioInputAutoStart: true})` 时传入,
396
+
397
+ > 手动传入的 `audioInputAutoStart` 优先级高于后台配置
398
+
399
+ ```javascript
400
+ /**
401
+ * 当启用音频输入功能,是否自动连入音频设备。
402
+ * 默认关闭。
403
+ * 需要注意默认打开的是系统中默认的音频设备。
404
+ */
405
+ audioInputAutoStart?: boolean;
406
+ ```
407
+
408
+ 获取当前打开音频设备的状态, 如 `larksr.audioPaused`
409
+
410
+ ```javascript
411
+ /**
412
+ * 当前打开的音频设备 ID,如果打开时没指定为空
413
+ */
414
+ get audioDeviceId(): string | null | undefined;
415
+ /**
416
+ * 当前打开音频的track对象,未打开状态为空
417
+ */
418
+ get audioTrack(): MediaStreamTrack | null | undefined;
419
+ /**
420
+ * 音频通道是否暂停
421
+ */
422
+ get audioPaused(): boolean | undefined;
423
+ ```
424
+
425
+ ## 视频输入接口
426
+
427
+ 客户端打开后云端应用可直接通过读取服务端的摄像头读取视频数据。
428
+
429
+ > 该功能匹配的服务端版本最低为 V3.2.61
430
+ > 使用该功能要注意在后台应用管理中开启视频输入功能
431
+ > 注意要在连接成功之后打开媒体设备。即 `mediaPlayed` 之后调用才有效
432
+
433
+ ```typescript
434
+ /**
435
+ * 打开一个视频设备,要注意浏览器限制在 https 或者 localhost 下才能打开视频
436
+ * @param audio boolean 是否同时开启音频
437
+ * @param cameraId 视频设备id,如果不传将打开默认设备。@see getConnectedVideoinputDevices
438
+ * @param width 限制打开设备的宽
439
+ * @param height 限制打开设备的高
440
+ * @returns Promise
441
+ */
442
+ openVideo(audio?: boolean, cameraId?: string, width?: number, height?: number): Promise<any>;
443
+ /**
444
+ * 打开摄像头设备
445
+ * @param cameraId 摄像头设备ID,@see getConnectedVideoinputDevices
446
+ * @param minWidth 限制打开设备的宽
447
+ * @param minHeight 限制打开设备的高
448
+ * @returns @see openUserMedia
449
+ */
450
+ openCamera(cameraId: string, minWidth?: number, minHeight?: number): Promise<any>;
451
+ /**
452
+ * 打开默认媒体设备,要注意浏览器限制在 https 或者 localhost 下
453
+ * 如果需要指定特殊的媒体设备请单独使用 @see openAudio @see openVideo
454
+ * @param video 是否包含视频
455
+ * @param audio 是否包含音频
456
+ * @returns Promise
457
+ */
458
+ openDefaultMedia(video?: boolean, audio?: boolean)>;
459
+ /**
460
+ * 返回已连接的视频设备
461
+ * @returns Promise<MediaDeviceInfo[]>
462
+ */
463
+ getConnectedVideoinputDevices();
464
+ /**
465
+ * 设置当前已开启的视频track是否启用状态
466
+ * @param enable 是否启用
467
+ * @returns void
468
+ */
469
+ setVideoEnable(enable: boolean);
470
+
471
+ /**
472
+ * 暂停发送视频
473
+ * @returns
474
+ */
475
+ pauseVideoSending(): any;
476
+ /**
477
+ * 恢复发送视频
478
+ * @returns
479
+ */
480
+ resumeVideoSending(): any;
481
+
482
+ /**
483
+ * 关闭当前已打开的视频设备
484
+ * @returns
485
+ */
486
+ closeVideo(): any;
487
+ /**
488
+ * 关闭当前已打开的共享设备如共享的标签页等
489
+ * @returns
490
+ */
491
+ closeShare(): any;
492
+ /**
493
+ * 请求浏览器打开媒体并且打开上传到服务器通道。
494
+ * 要注意的是在服务器连接成功之后请求打开
495
+ * @param constraints 参考 navigator.mediaDevices.getUserMedia(constraints)
496
+ * @param reset 是否重制媒体通道。true 的情况下重制整个 peerconnection
497
+ * @returns 打开的通道的绑定信息。管理媒体通道如关闭暂停或恢复使用。
498
+ */
499
+ openUserMedia(constraints?: MediaStreamConstraints, reset?: boolean): Promise<any>;
500
+ ```
501
+
502
+ larksr 配置项自动打开视频输入配置,在`new LarkSR({ ... 此处省略其他配置 ... videoInputAutoStart: true})` 时传入
503
+
504
+ > 手动传入的 `videoInputAutoStart` 优先级高于后台配置
505
+
506
+ ```javascript
507
+ /**
508
+ * 当启用视频输入功能,是否自动连入视频设备。
509
+ * 默认关闭。
510
+ * 需要注意默认打开的是系统中默认的视频设备。
511
+ */
512
+ videoInputAutoStart?: boolean;
513
+ ```
514
+
515
+ 获取当前打开视频设备的状态,如 `larksr.videoPaused`
516
+
517
+ ```javascript
518
+ /**
519
+ * 当前打开视频设备 ID,如果打开时没指定特设备id为空
520
+ */
521
+ get videoDeviceId(): string | null | undefined;
522
+ /**
523
+ * 当前打开视频track对象,未打开状态为空
524
+ */
525
+ get videoTrack(): MediaStreamTrack | null | undefined;
526
+ /**
527
+ * 视频通道是否暂停
528
+ */
529
+ get videoPaused(): boolean | undefined;
530
+ ```
531
+
532
+ ## 云端直播推流功能
533
+
534
+ > 服务端 3.2.7.0 添加, 要注意使用云端直播推流功能要在后台应用管理中开启该功能
535
+
536
+ ```javascript
537
+ /**
538
+ * 启动云端推流功能
539
+ * @param params {
540
+ * // rtmp push url 必须填
541
+ * path: "",
542
+ * //rtmp push key
543
+ * key: "",
544
+ * // 推流的宽
545
+ * width: 1280,
546
+ * // 推流的高
547
+ * height: 720,
548
+ * framerate: 30,
549
+ * // kbps
550
+ * bitrate: 1024 * 2,
551
+ * // 是否支持断线重连
552
+ * reconnect: true,
553
+ * //最大重连次数
554
+ * reconnectRetries: 3,
555
+ * //是否串流麦克风(语音输入支持的情况)
556
+ * voice: audioInput,
557
+ * }
558
+ * @returns Promise
559
+ */
560
+ StartCloudLiveStreaming(params: CloudLark.IRtmp_Start): Promise<void> | undefined;
561
+ /**
562
+ * 关闭云端推流功能
563
+ * @returns
564
+ */
565
+ StopLiveStreaming(): void | undefined;
566
+ ```
567
+
568
+ 云端直播的相关状态参考 `RTMP_STREAM_STATE` 和 `RTMP_STREAM_ERROR` 两个事件
569
+
570
+ ```javascript
571
+ /**
572
+ * 服务端 3.2.7.0 添加
573
+ * rtmp 直播推流状态
574
+ */
575
+ RTMP_STREAM_STATE = "rtmpstreamstate",
576
+ /**
577
+ * 服务端 3.2.7.0 添加
578
+ * rtmp 直播推流出错
579
+ */
580
+ RTMP_STREAM_ERROR = "rtmpstreamerror"
581
+ ```
582
+
583
+ ## 鸟瞰模式
584
+
585
+ ```typescript
586
+ /**
587
+ * 开始鸟瞰模式
588
+ */
589
+ startAerialview(viewbox: {
590
+ x: number;
591
+ y: number;
592
+ width: number;
593
+ height: number;
594
+ }, interval: number | undefined, thumbnailWidth: 120, thumbnailHeight: 120): void;
595
+ /**
596
+ * 更新鸟瞰模式区域
597
+ */
598
+ updateAerialview(viewbox: {
599
+ x: number;
600
+ y: number;
601
+ width: number;
602
+ height: number;
603
+ }): void;
604
+ /**
605
+ * 停止鸟瞰模式区域
606
+ */
607
+ stopAerialview(): void;
608
+ ```
609
+
610
+ ## 调整参数
611
+
612
+ ```typescript
613
+ /**
614
+ * 动态设置码率 单位 kbps
615
+ * @param bitrateKbps
616
+ */
617
+ setVideoBitrateKbps(bitrateKbps: number): void;
618
+ /**
619
+ * 动态设置帧率
620
+ */
621
+ setVideoFps(fps: number): void;
622
+ /**
623
+ * 动态设置云端 debug 窗口
624
+ */
625
+ setCloudDebugLayout(open: boolean): void;
626
+ /**
627
+ * 重启云端应用
628
+ */
629
+ restartCloudApp(): void;
630
+ /**
631
+ * 设置云端应用大小
632
+ */
633
+ setCloudAppSize(width: number, height: number): void;
634
+ ```
635
+
636
+ ## 其他
637
+
638
+ ```typescript
639
+ /**
640
+ * 采集一帧图像
641
+ * @params data: any 抛出采集事件时抛出的附加data,比如采集的时间戳
642
+ * @params option: { width: number, height: number } 截图的宽高,如果未设置则使用云端应用窗口的宽高
643
+ * @return { data: any, base64: base64string } 返回传入的 data 和采集的 base64 字符串
644
+ */
645
+ captrueFrame(data: any, option?: { width: number; height: number;})
646
+
647
+ /**
648
+ * 设置是否强制横屏显示内容.
649
+ * handelRootElementSize 必须设置为 true 才有作用。
650
+ * 要注意强制横屏模式下网页的坐标系xy和视觉上相反,如果通过外部输入 input 事件。要注意调整
651
+ * @param force 是否强制横屏
652
+ */
653
+ setMobileForceLandScape(force: boolean): void;
654
+ /**
655
+ * 从DOM种删除渲染组件,注意删除渲染组件之后将无法再次进入应用,所有状态将失效,不可恢复,只能重新new LarkSR
656
+ */
657
+ destroy(): void;
658
+ ```