larksr_websdk 3.2.330 → 3.2.332

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.
@@ -208,5 +208,10 @@ interface ILarkSRConfig {
208
208
  * zh-CN 中文 en 英文
209
209
  */
210
210
  language?: string;
211
+ /**
212
+ * 点对点连接成功,但未接收到视频流或未播放成功超时时间。自动播放模式下超时会弹出提示按钮。
213
+ * 默认 20S
214
+ */
215
+ playTimeout?: number;
211
216
  }
212
217
  ```
@@ -0,0 +1,286 @@
1
+ # 事件码
2
+
3
+ 在 `LarkEvent = 'larkevent'`, `ERROR = 'error'`, `INFO = 'info'` 这三个事件中附加 code 字段,具体值即下面 LarkEventType。
4
+ 在 LarkEvent 事件中可能会抛出所有的事件码。
5
+
6
+ LarkEventType 事件码还用于 iframe poster 使用方式时的监听事件码。iframe 嵌入客户端并使用事件码参考 demo: [larkwebclient-iframe-demos](https://github.com/pingxingyun/larkwebclient-iframe-demos)
7
+
8
+ ```typescript
9
+ //
10
+ // 客户端统一事件代码。
11
+ //
12
+ export enum LarkEventType {
13
+ // 网页客户端载入成功(3.1.8.1添加)
14
+ LK_WEB_CLIENT_LOAD_SUCCESS = 1,
15
+ // 进入应用接口调用
16
+ LK_TASK_CREATE_SUCCESS = 10,
17
+ LK_TASK_CREATE_FAILED = 11,
18
+ // 渲染资源不足
19
+ LK_RESOURCE_NOT_ENOUGH = 12,
20
+ // 同步应用中
21
+ LK_TASK_SYNC_APP = 20,
22
+ // 同步 task 失败(3.1.8.1添加)
23
+ LK_TASK_SYNC_APP_FAILED = 21,
24
+ //
25
+ // 连接应用服务器事件。直连渲染服务器时抛出
26
+ // 消息来源:websocket 连接事件
27
+ //
28
+ // 连接渲染服务器成功
29
+ LK_RENDER_SERVER_CONNECTED = 100,
30
+ // 连接渲染服务器失败
31
+ LK_RENDER_SERVER_FAILED = 101,
32
+ // 与渲染服务器连接关闭
33
+ LK_RENDER_SERVER_CLOSE = 102,
34
+ // 与渲染服务器连接出错
35
+ LK_RENDER_SERVER_ERROR = 103,
36
+
37
+ //
38
+ // 连接 websocket 代理服务器事件
39
+ // 消息来源:websocekt proxy 连接事件
40
+ //
41
+ // 连接代理服务器成功
42
+ LK_PROXY_SERVER_CONNECTED = 200,
43
+ // 连接代理服务器失败
44
+ LK_PROXY_SERVER_FAILED = 201,
45
+ // 与代理服务器连接关闭
46
+ LK_PROXY_SERVER_CLOSE = 202,
47
+ // 与代理服务器连接出错
48
+ LK_PROXY_SERVER_ERROR = 203,
49
+
50
+ //
51
+ // 版本检测
52
+ // 消息来源:服务端协议返回 ToClientMessage->VersionCheckResponse
53
+ //
54
+ // 版本检测成功
55
+ LK_VERSION_CHECK_SUCCESS = 300,
56
+ // 版本检测失败
57
+ LK_VERSION_CHECK_FAILED = 301,
58
+
59
+ //
60
+ // task 检测
61
+ // 消息来源: 服务端协议返回 ToClientMessage->TaskResponse
62
+ //
63
+ // 请求 Task 成功
64
+ LK_TASK_SUCCESS = 400,
65
+ // 未发现 Task
66
+ LK_TASK_NOTFOUND = 401,
67
+ // 服务器端错误
68
+ LK_TASK_SERVER_ERROR = 402,
69
+ // 应用参数错误
70
+ LK_TASK_APP_WRONGPARAM = 403,
71
+ // Task 获取成功,但是没有可分配的显卡
72
+ LK_TASK_NO_GPU_RESOURCE = 404,
73
+
74
+ //
75
+ // 启动流媒体
76
+ // 消息来源: 服务端协议返回 ToClientMessage->StartStreamResponse
77
+ //
78
+ // 启动流媒体成功
79
+ LK_START_STREAM_SUCCESS = 500,
80
+ // 启动流媒体出错
81
+ LK_START_STREAM_PROCESS_START_FAILED = 501,
82
+ // 启动流媒体超时
83
+ LK_START_STREAM_PROCESS_START_TIMEOUT = 502,
84
+ // 启动流媒体未串流
85
+ LK_START_STREAM_NOT_STREAMING = 503,
86
+ // 启动流媒体编码错误
87
+ LK_START_STREAM_ENCODER_ERROR = 504,
88
+
89
+ //
90
+ // RTC 事件
91
+ // 消息来源:webrtc 连接事件和 ToClientMessage->WebrtcError
92
+ //
93
+ // RTC 连接成功
94
+ LK_RTC_EVENT_PEERCONNECTION_CONNECTED = 600,
95
+ // RTC 连接关闭
96
+ LK_RTC_EVENT_PEERCONNECTION_CLOSED = 601,
97
+ // RTC 连接出错
98
+ LK_RTC_EVENT_PEERCONNECTION_ERROR = 602,
99
+ // RTC 创建出错,一般为 浏览器不支持 webrtc
100
+ // 3.2.0.14 新增
101
+ LK_RTC_EVENT_PEERCONNECTION_CREATE_FAILED = 603,
102
+ // RTC 状态上报(rtt 码率等) 3.1.1.8 新增
103
+ LK_RTC_EVENT_PEERCONNECTION_STATE = 610,
104
+ // RTC 重连 3.1.6.2 新增
105
+ LK_RTC_EVENT_PEERCONNECTION_RETRY = 611,
106
+
107
+ //
108
+ // 加载视频流
109
+ // 消息来源:浏览器或原生组件 3.1.6.2 修复
110
+ //
111
+ LK_VIDEO_LOADED = 700,
112
+ // 视频播放自动播放失败,请求手动触发 (3.1.8.2)
113
+ LK_VIDEO_PLAY_FAILED = 701,
114
+ // 获取到云端视频流但未开始播放 (3.1.8.3)
115
+ LK_GOT_REMOTE_STREAM = 710,
116
+ // 获取到云端视频流但未开始播放 (3.2.13.0)
117
+ LK_VIDEO_PLAY_SUCCSS = 711,
118
+
119
+ //
120
+ // 服务端主动退出
121
+ // 消息来源:后台协议 NotifyClientLogout
122
+ //
123
+ LK_NOTIFY_CLIENT_LOGOUT_PLAYER_LOGOUT = 800,
124
+ // 一人操作多人看房主退出
125
+ LK_NOTIFY_CLIENT_LOGOUT_TASKOWNER_LOGOUT = 801,
126
+
127
+ //
128
+ // 服务端推送云端应用事件
129
+ // 消息来源:后台协议 AppProcessNotification
130
+ //
131
+ LK_APP_PROCESS_NOTIFI_APP_QUIT = 900,
132
+ // 无操作超时(3.1.8.1添加)
133
+ LK_NO_OPERATION_TIMEOUT = 901,
134
+ // 载入作超时(3.1.8.8添加)
135
+ LK_LOADING_TIMEOUT = 902,
136
+ // 云端应用大小变换
137
+ // 3.1.1.8 新增
138
+ LK_APP_RESIZE = 910,
139
+ // 云端应用鼠标模式变化
140
+ // 3.1.1.8 新增
141
+ LK_APP_MOUSE_MODE = 911,
142
+ // 获取到玩家列表
143
+ // 3.1.1.10 新增
144
+ LK_APP_PLAER_LIST = 912,
145
+ // APP 请求输入文字
146
+ LK_APP_REQUEST_TEXT = 913,
147
+ // sdk new
148
+ // 云端鼠标样式
149
+ LK_APP_CURSOR_STYLE = 914,
150
+ // 用户主动点击关闭按钮
151
+ LK_USER_REQUEST_QUIT = 920,
152
+ // 本地网页的 resize 事件
153
+ LK_UI_RESIZE = 930,
154
+
155
+ //
156
+ // XR 相关事件
157
+ //
158
+ // 启动VR流媒体启动成功
159
+ LK_STARTVRSTREAM_SUCCESS = 1000,
160
+ // 启动VR流媒体过程失败
161
+ LK_STARTVRSTREAM_START_PROCESS_FAILED = 1001,
162
+ // 启动VR流媒体驱动超时
163
+ LK_STARTVRSTREAM_START_DRIVER_RUNTIME_TIMEOUT = 1002,
164
+ // 启动VR流媒体 udp 端口出错
165
+ LK_STARTVRSTREAM_START_DRIVER_RUNTIME_UDPPORT_ERROR = 1003,
166
+ // 启动VR流媒体 udp 编码出错
167
+ LK_STARTVRSTREAM_START_DRIVER_RUNTIME_ENCODER_ERROR = 1004,
168
+
169
+ //
170
+ // ui相关事件通知
171
+ //
172
+ // 警告框弹出(3.1.8.1添加)
173
+ LK_WEBCLIENT_NOTIFY_ALERT = 1100,
174
+ // 确认框弹出(3.1.8.1添加)
175
+ LK_WEBCLIENT_NOTIFY_CONFIRM = 1101,
176
+ //
177
+ LK_WEBCLIENT_TOAST_MSG = 1102,
178
+
179
+ // 用户操作触发事件
180
+ // 用户截图 (3.1.8.3)
181
+ LK_USER_CAPTURE_FRAME = 2000,
182
+ // 用户截图并附带数据 (3.1.8.8)
183
+ LK_USER_CAPTURE_FRAME_WITH_EXTRA_DATA = 2001,
184
+
185
+ // 外部请求截图 (3.1.8.3)
186
+ LK_REQUEST_CAPTURE_FRAME = 3000,
187
+ // 外部请求截图并附带数据 (3.1.8.8)
188
+ LK_REQUEST_CAPTURE_FRAME_WITH_EXTRA_DATA = 3001,
189
+
190
+ //
191
+ // iframe 外部发送给 web 客户端消息
192
+ //
193
+ // 操作
194
+ // 鼠标操作
195
+ LK_IFRAME_POSTER_OPERATE_MOUSE_MOVE = 10000,
196
+ LK_IFRAME_POSTER_OPERATE_MOUSE_DOWN = 10001,
197
+ LK_IFRAME_POSTER_OPERATE_MOUSE_UP = 10002,
198
+ LK_IFRAME_POSTER_OPERATE_MOUSE_WHEEL = 10003,
199
+ // 键盘操作
200
+ LK_IFRAME_POSTER_OPERATE_KEY_DOWN = 10010,
201
+ LK_IFRAME_POSTER_OPERATE_KEY_UP = 10011,
202
+ // 触摸操作
203
+ LK_IFRAME_POSTER_OPERATE_TOUCH_DOWN = 10020,
204
+ LK_IFRAME_POSTER_OPERATE_TOUCH_MOVE = 10021,
205
+ LK_IFRAME_POSTER_OPERATE_TOUCH_UP = 10022,
206
+ // 摇杆操作
207
+ LK_IFRAME_POSTER_OPERATE_GAMEPAD_BUTTON_DOWN = 10030,
208
+ LK_IFRAME_POSTER_OPERATE_GAMEPAD_BUTTON_UP = 10031,
209
+ LK_IFRAME_POSTER_OPERATE_GAMEPAD_TRIGGER_VALUE = 10032,
210
+ LK_IFRAME_POSTER_OPERATE_GAMEPAD_JOYSTICK_STATES = 10033,
211
+ // 麦克风操作打开或关闭默认麦克风
212
+ LK_IFRAME_POSTER_OPENAUDIO_INPUT = 10040,
213
+ LK_IFRAME_POSTER_CLOSE_AUDIO_INPUT = 10041,
214
+
215
+ // 功能
216
+ // 设置鼠标模式,锁定模式和非锁定模式
217
+ LK_IFRAME_POSTER_FUNC_MOUSE_MODE = 10100,
218
+ // 设置缩放模式
219
+ LK_IFRAME_POSTER_FUNC_SCALE_MODE = 10101,
220
+ // 重新启动云端应用(3.1.8.1添加)
221
+ LK_IFRAME_POSTER_FUNC_RESTART_CLOUD_APP = 10102,
222
+ // 微信浏览器加载成功事件 (3.1.8.1添加)
223
+ LK_IFRAME_POSTER_FUNC_WX_JS_BRIDGE_READY = 10103,
224
+ // 请求播放视频 (当视频组件播放失败需要用户触发
225
+ // 但禁用客户端内部 alert 时调用)
226
+ LK_IFRAME_POSTER_FUNC_REQUEST_PLAY_VIDEO = 10104,
227
+
228
+ // 控制 ui
229
+ // 是否显示桌面端控制栏
230
+ LK_IFRAME_POSTER_UI_CONTROLLER_BAR = 10200,
231
+ // 是否显示玩家列表
232
+ LK_IFRAME_POSTER_UI_PLAYER_LIST = 10201,
233
+ // 是否显示分享模式下分享 url
234
+ LK_IFRAME_POSTER_UI_PLAYER_SHARE_URL = 10202,
235
+ // 是否显示手机端控制球
236
+ LK_IFRAME_POSTER_UI_MOBILE_CONTROL_BALL = 10203,
237
+ // 是否显示手机端摇杆
238
+ LK_IFRMAE_POSTER_UI_MOBILE_JOYSTICK = 10204,
239
+ // 是否显示手机端虚拟键盘
240
+ LK_IFRAME_POSTER_UI_MOBILE_VIRTUAL_KEYBOARD = 10205,
241
+ // 是否显示手机端虚拟鼠标
242
+ LK_IFRAME_POSTER_UI_MOBILE_VIRTUAL_MOUSE = 10206,
243
+ // 是否显示手机端菜单
244
+ LK_IFRAME_POSTER_UI_MOBILE_MENU = 10207,
245
+ // 是否手机端强制横屏
246
+ LK_IFRAME_POSTER_UI_MOBILE_FORCE_LANDSCAPE = 10208,
247
+ // 是否显示触摸点
248
+ LK_IFRAME_POSTER_UI_MOBILE_TOUCH_POINT = 10209,
249
+ // 设置 Toast 显示级别(3.1.8.1添加)
250
+ LK_IFRAME_POSTER_UI_TOAST_LEVEL = 10210,
251
+ // 设置 Alert 是否显示(3.1.8.1添加)
252
+ LK_IFRAME_POSTER_UI_ALERT = 10211,
253
+ // 设置 Confirm 是否显示(3.1.8.1添加)
254
+ LK_IFRAME_POSTER_UI_CONFIRM = 10212,
255
+
256
+
257
+ //
258
+ // iframe 外部接收 web 客户端消息 from datachannel
259
+ //
260
+ LK_DATA_CHANNEL_ESTABLISHED = 20000,
261
+ LK_DATA_CHANNEL_RETYING = 20001,
262
+ LK_DATA_CHANNEL_CLOSE = 20002,
263
+ LK_DATA_CHANNEL_ERROR = 20003,
264
+ LK_DATA_CHANNEL_BINARY_MESSAGE = 20004,
265
+ LK_DATA_CHANNEL_TEXT_MESSAGE = 20005,
266
+ //
267
+ // iframe 外部发送给 web 客户端 to datachannel
268
+ //
269
+ LK_RE_CONNECT_DATA_CHANNEL = 20100,
270
+ LK_CLOSE_DATA_CHANNEL = 20101,
271
+ LK_DATA_CHANNEL_SEND_TEXT = 20102,
272
+ LK_DATA_CHANNEL_SEND_BINARY = 20103,
273
+ //
274
+ // iframe 外部接收 web 客户端消息 from datachannel-renderserver
275
+ //
276
+ LK_DATA_CHANNEL_RENDERSERVER_OPEN = 20200,
277
+ LK_DATA_CHANNEL_RENDERSERVER_CLOSE = 20201,
278
+ LK_DATA_CHANNEL_RENDERSERVER_BINARY_MESSAGE = 20202,
279
+ LK_DATA_CHANNEL_RENDERSERVER_TEXT_MESSAGE = 20203,
280
+ //
281
+ // iframe 外部发送给 web 客户端 to datachannel
282
+ //
283
+ LK_DATA_CHANNEL_RENDERSERVER_SEND_TEXT = 20300,
284
+ LK_DATA_CHANNEL_RENDERSERVER_SEND_BINARY = 20301,
285
+ }
286
+ ```
@@ -14,6 +14,17 @@ larksr.on('connect', function(e) {
14
14
  });
15
15
  ```
16
16
 
17
+ 或者使用导出枚举值
18
+
19
+ ```javascript
20
+ larksr.on(LarkSRClientEvent.TASK_CREATE_SUCCESS, (e) => {
21
+ console.log("LarkSRClientEvent TASK_CREATE_SUCCESS", e);
22
+ });
23
+ ```
24
+
25
+ 其中 `LarkEvent = 'larkevent'`, `ERROR = 'error'`, `INFO = 'info'` 这三个事件中附加 code 字段,code 字段附加事件码:[event_codes](./event_codes.md)
26
+ [event_codes](./event_codes.md) 中的事件 code 值,在 LarkEvent 事件中都会抛出。
27
+
17
28
  ## 完整事件定义
18
29
 
19
30
  ```javascript
@@ -153,6 +164,30 @@ declare const enum LarkSRClientEvent {
153
164
  LarkEvent = "larkevent",
154
165
  /**
155
166
  * 发生错误时抛出
167
+ * type: error
168
+ * message: 错误消息
169
+ * code: 可能的错误码如下, 错误码的具体定义 @see [./event_codes]
170
+ * // 连接服务器的websocket代理关闭
171
+ * LK_RENDER_SERVER_CLOSE : 102
172
+ * // 连接代理服务器的websocket关闭
173
+ * LK_PROXY_SERVER_CLOSE : 202
174
+ * // 检测版本失败,服务器和客户端的版本匹配。目前只有3.1和3.2大版本不匹配情况
175
+ * LK_VERSION_CHECK_FAILED : 301
176
+ * // 服务器返回创建Task失败
177
+ * TASK_NOTFOUND-TASK_NO_GPU_RESOURCE : 401-404
178
+ * // 服务端启动流媒体失败
179
+ * LK_START_STREAM_PROCESS_START-FAILED-LK_START_STREAM_ENCODER_ERROR : 501-504
180
+ * // RTC 连接关闭
181
+ * LK_RTC_EVENT_PEERCONNECTION_CLOSED : 601
182
+ * // RTC 连接出错
183
+ * LK_RTC_EVENT_PEERCONNECTION_ERROR : 602
184
+ * // RTC 创建出错,一般为 浏览器不支持 webrtc
185
+ * LK_RTC_EVENT_PEERCONNECTION_CREATE_FAILED : 603
186
+ * // 服务器主动要求客户端退出
187
+ * LK_NOTIFY_CLIENT_LOGOUT_PLAYER_LOGOUT : 800
188
+ * // 一人操作多人看房主退出
189
+ * LK_NOTIFY_CLIENT_LOGOUT_TASKOWNER_LOGOUT : 801
190
+ *
156
191
  */
157
192
  ERROR = "error",
158
193
  /**
package/dist/doc/index.md CHANGED
@@ -77,6 +77,7 @@ client.connect({
77
77
  ### [参数配置](./config.md)
78
78
  ### [LarkSR 对象方法](./functions.md)
79
79
  ### [LarkSR 事件](./events.md)
80
+ ### [LarkSR 事件码](./event_codes.md)
80
81
  ### [LarkSR 对象成员](./member_variables.md)
81
82
  ### [SDK ID 加密](./sdkid_encryption.md)
82
83
  ### [SDK 更新](./update.md)
@@ -158,6 +158,20 @@ export enum APP_STATE {
158
158
  }
159
159
  ```
160
160
 
161
+ 可通过事件 `APPSTATE_CHANGE = 'appstatechange'` 监听 APP_STATE 的变化
162
+
163
+ ```javascript
164
+ // create code
165
+ ...
166
+
167
+ // 监听连接成功事件
168
+ larksr.on('appstatechange', function(e) {
169
+ console.log("appstatechange", e);
170
+ });
171
+ ```
172
+
173
+ ## 云端画面是否准备好
174
+
161
175
  ```javascript
162
176
  // 云端画面是否准备好,准备好后才可以发送输入事件
163
177
  larksr.remoteScreenReady
@@ -194,6 +208,14 @@ larksr.screenState.isLocalRenderMouse;
194
208
  larksr.screenState.isLockMosue;
195
209
  ```
196
210
 
211
+ 监听 screenState 的状态改变,事件码为 `0`。当 SDK 内部或者外部触发了 `screenState.resize()` 之后调用。
212
+
213
+ ```javascript
214
+ larksr.screenState.on(0, () => {
215
+ console.log("screen state resize", larksr.screenState.screenOrientation);
216
+ });
217
+ ```
218
+
197
219
  ## 操作类实例
198
220
 
199
221
  ```javascript
@@ -395,3 +395,39 @@ larksr.on('resourcenotenough', function(e) {
395
395
  console.log("LarkSRClientEvent RESOURCE_NOT_ENOUGH", e);
396
396
  });
397
397
  ```
398
+
399
+ ## V3.2.331
400
+
401
+ 1. 优化自动播放模式下播放按钮出现时机,添加载入超时设置 `new LarkSR({ ... 此处省略其他配置 ... playTimeout: 20 })`
402
+ 2. 修复不支持 WebRTC 情况下未抛出错误事件的问题。对应错误码为 603, `error` 事件可能的错误码如下:
403
+
404
+ ```javascript
405
+ /**
406
+ * 发生错误时抛出
407
+ * type: error
408
+ * message: 错误消息
409
+ * code: 可能的错误码如下, 错误码的具体定义 @see [./event_codes]
410
+ * // 连接服务器的websocket代理关闭
411
+ * LK_RENDER_SERVER_CLOSE : 102
412
+ * // 连接代理服务器的websocket关闭
413
+ * LK_PROXY_SERVER_CLOSE : 202
414
+ * // 检测版本失败,服务器和客户端的版本匹配。目前只有3.1和3.2大版本不匹配情况
415
+ * LK_VERSION_CHECK_FAILED : 301
416
+ * // 服务器返回创建Task失败
417
+ * TASK_NOTFOUND-TASK_NO_GPU_RESOURCE : 401-404
418
+ * // 服务端启动流媒体失败
419
+ * LK_START_STREAM_PROCESS_START-FAILED-LK_START_STREAM_ENCODER_ERROR : 501-504
420
+ * // RTC 连接关闭
421
+ * LK_RTC_EVENT_PEERCONNECTION_CLOSED : 601
422
+ * // RTC 连接出错
423
+ * LK_RTC_EVENT_PEERCONNECTION_ERROR : 602
424
+ * // RTC 创建出错,一般为 浏览器不支持 webrtc
425
+ * LK_RTC_EVENT_PEERCONNECTION_CREATE_FAILED : 603
426
+ * // 服务器主动要求客户端退出
427
+ * LK_NOTIFY_CLIENT_LOGOUT_PLAYER_LOGOUT : 800
428
+ * // 一人操作多人看房主退出
429
+ * LK_NOTIFY_CLIENT_LOGOUT_TASKOWNER_LOGOUT : 801
430
+ *
431
+ */
432
+ ERROR = 'error',
433
+ ```