@tencentcloud/sdk-mcp 1.6.8 → 1.7.1

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 (158) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/README.md +59 -35
  3. package/knowledge/build-index.js +28 -4
  4. package/knowledge/chunker.js +82 -14
  5. package/knowledge/chunking-policy.js +100 -0
  6. package/knowledge/doc-url-resolver.js +70 -19
  7. package/knowledge/frontmatter-meta.js +167 -0
  8. package/knowledge/path-meta.js +28 -6
  9. package/knowledge/search/exact-lookup.js +126 -125
  10. package/knowledge/search/filter-pool.js +12 -29
  11. package/knowledge/search/framework-fallback.js +22 -0
  12. package/knowledge/search/intent-router.js +29 -0
  13. package/knowledge/search/l1-enrich.js +159 -0
  14. package/knowledge/search/query-normalizer.js +63 -3
  15. package/knowledge/search/search-core.js +410 -0
  16. package/knowledge/search/search-knowledge.js +419 -377
  17. package/knowledge/search/search-message.js +88 -0
  18. package/knowledge/search/search-pass.js +428 -0
  19. package/knowledge/search/search-types.js +1 -0
  20. package/knowledge/search/url-row-idf.js +120 -0
  21. package/knowledge/search/url-row-scorer.js +337 -0
  22. package/package.json +3 -1
  23. package/resource/index/manifest.json +1 -1
  24. package/resource/integration/callkit/preset/flutter/integration.md +7 -3
  25. package/resource/integration/callkit/preset/ios/integration.md +1 -0
  26. package/resource/integration/chat/preset/android/integration.md +1 -0
  27. package/resource/integration/chat/preset/flutter/integration.md +111 -10
  28. package/resource/integration/chat/preset/ios/integration.md +1 -0
  29. package/resource/integration/chat/preset/react/integration.md +1 -0
  30. package/resource/integration/chat/preset/uni-app/integration.md +1 -0
  31. package/resource/integration/chat/preset/vue/integration.md +1 -0
  32. package/resource/integration/livekit/preset/live/android/prepare-integration.md +1 -0
  33. package/resource/integration/livekit/preset/live/vue/live-player-desk-integration.md +12 -10
  34. package/resource/integration/livekit/preset/live/vue/live-pusher-integration.md +14 -14
  35. package/resource/integration/roomkit/preset/vue/integration.md +1 -0
  36. package/resource/knowledge/callkit/best-practice/callkit-miniprogram/uniapp-shrink.md +64 -0
  37. package/resource/knowledge/callkit/best-practice/common/call-autoplay-blocked.md +81 -0
  38. package/resource/knowledge/callkit/best-practice/common/call-message-in-chat.md +84 -0
  39. package/resource/knowledge/callkit/best-practice/common/call-vs-calls.md +114 -0
  40. package/resource/knowledge/callkit/best-practice/common/callengine-call-flow.md +128 -0
  41. package/resource/knowledge/callkit/best-practice/common/callengine-log-level.md +72 -0
  42. package/resource/knowledge/callkit/best-practice/common/callkit-get-engine-instance.md +87 -0
  43. package/resource/knowledge/callkit/best-practice/common/callkit-get-roomid.md +83 -0
  44. package/resource/knowledge/callkit/best-practice/common/callkit-limitations.md +37 -0
  45. package/resource/knowledge/callkit/best-practice/common/callkit-user-register-and-kicked.md +103 -0
  46. package/resource/knowledge/callkit/core-sdk/android/answer-call.md +1 -0
  47. package/resource/knowledge/callkit/core-sdk/android/make-call.md +1 -0
  48. package/resource/knowledge/callkit/core-sdk/flutter/answer-call.md +1 -0
  49. package/resource/knowledge/callkit/core-sdk/flutter/make-call.md +1 -0
  50. package/resource/knowledge/callkit/core-sdk/ios/answer-call.md +1 -0
  51. package/resource/knowledge/callkit/core-sdk/ios/make-call.md +1 -0
  52. package/resource/knowledge/callkit/core-sdk/ios/offline-push.md +1 -1
  53. package/resource/knowledge/callkit/core-sdk/uni-app/answer-call.md +1 -0
  54. package/resource/knowledge/callkit/core-sdk/uni-app/make-call.md +1 -0
  55. package/resource/knowledge/callkit/faq/flutter.md +1 -0
  56. package/resource/knowledge/callkit/faq/uniapp-app.md +1 -0
  57. package/resource/knowledge/callkit/preset/react/api.md +1 -150
  58. package/resource/knowledge/callkit/preset/vue/api.md +1 -38
  59. package/resource/knowledge/chat/best-practice/common/avchatroom-message-loss-diagnosis.md +71 -0
  60. package/resource/knowledge/chat/best-practice/common/group-conversation-cleanup-on-system-notice.md +67 -0
  61. package/resource/knowledge/chat/best-practice/common/image-message-url-lifecycle.md +63 -0
  62. package/resource/knowledge/chat/best-practice/common/login-repeat-2025-diagnosis.md +65 -0
  63. package/resource/knowledge/chat/best-practice/common/message-read-report-and-receipt.md +72 -0
  64. package/resource/knowledge/chat/best-practice/common/message-receive-event.md +70 -0
  65. package/resource/knowledge/chat/best-practice/common/message-risk-error-and-render.md +69 -0
  66. package/resource/knowledge/chat/best-practice/common/message-unread-count.md +71 -0
  67. package/resource/knowledge/chat/best-practice/miniprogram/audio-message-send.md +118 -0
  68. package/resource/knowledge/chat/best-practice/miniprogram/login-timeout-2801-diagnosis.md +67 -0
  69. package/resource/knowledge/chat/best-practice/miniprogram/media-upload-fail-diagnosis.md +68 -0
  70. package/resource/knowledge/chat/best-practice/web/audio-message-send.md +123 -0
  71. package/resource/knowledge/chat/preset/android/features/conversation-list.md +1 -0
  72. package/resource/knowledge/chat/preset/android/features/language.md +1 -0
  73. package/resource/knowledge/chat/preset/android/features/message-input.md +1 -0
  74. package/resource/knowledge/chat/preset/android/features/message-list.md +1 -0
  75. package/resource/knowledge/chat/preset/android-view/integration.md +1 -0
  76. package/resource/knowledge/chat/preset/flutter/features/conversation-list.md +1 -0
  77. package/resource/knowledge/chat/preset/flutter/features/message-input.md +1 -0
  78. package/resource/knowledge/chat/preset/flutter/features/message-list.md +1 -0
  79. package/resource/knowledge/chat/preset/ios/features/conversation-list.md +1 -0
  80. package/resource/knowledge/chat/preset/ios/features/message-input.md +1 -0
  81. package/resource/knowledge/chat/preset/ios/features/message-list.md +1 -0
  82. package/resource/knowledge/chat/preset/ios-uikit/integration.md +1 -0
  83. package/resource/knowledge/chat/preset/react/features/conversation-preview.md +1 -0
  84. package/resource/knowledge/chat/preset/react/features/message-input.md +61 -3
  85. package/resource/knowledge/chat/preset/react/features/message-list.md +7 -0
  86. package/resource/knowledge/chat/preset/vue/features/message-input.md +58 -5
  87. package/resource/knowledge/chat/preset/vue/features/message-list.md +7 -0
  88. package/resource/knowledge/chat/urls/product.md +8 -8
  89. package/resource/knowledge/chat/urls/restapi.md +3 -3
  90. package/resource/knowledge/chat/urls/sdk/android.md +5 -5
  91. package/resource/knowledge/chat/urls/sdk/flutter.md +5 -5
  92. package/resource/knowledge/chat/urls/sdk/ios.md +5 -5
  93. package/resource/knowledge/chat/urls/sdk/web.md +8 -8
  94. package/resource/knowledge/chat/urls/webhook.md +11 -17
  95. package/resource/knowledge/livekit/best-practice/android/voice-room-anchor-start.md +124 -0
  96. package/resource/knowledge/livekit/best-practice/common/admin-take-seat.md +73 -0
  97. package/resource/knowledge/livekit/best-practice/common/audience-leave-live.md +81 -0
  98. package/resource/knowledge/livekit/best-practice/common/voice-room-no-audio-troubleshoot.md +100 -0
  99. package/resource/knowledge/livekit/best-practice/common/voice-room-seat-list-change.md +65 -0
  100. package/resource/knowledge/livekit/best-practice/flutter/voice-room-anchor-start.md +126 -0
  101. package/resource/knowledge/livekit/best-practice/ios/voice-room-anchor-start.md +130 -0
  102. package/resource/knowledge/push/config/harmonyos.md +1 -1
  103. package/resource/knowledge/push/config/ios.md +2 -2
  104. package/resource/knowledge/push/config/react-native.md +1 -0
  105. package/resource/knowledge/push/config/unity.md +1 -0
  106. package/resource/knowledge/push/config/unreal-engine.md +1 -0
  107. package/resource/knowledge/push/integration/android.md +17 -16
  108. package/resource/knowledge/push/integration/donut.md +2 -2
  109. package/resource/knowledge/push/integration/flutter.md +4 -3
  110. package/resource/knowledge/push/integration/harmonyos.md +1 -1
  111. package/resource/knowledge/push/integration/ios.md +4 -3
  112. package/resource/knowledge/push/integration/react-native.md +1 -1
  113. package/resource/knowledge/push/integration/uni-app.md +1 -0
  114. package/resource/knowledge/push/integration/unity.md +4 -4
  115. package/resource/knowledge/push/integration/unreal-engine.md +37 -35
  116. package/resource/knowledge/roomkit/best-practice/common/room-ghost-member.md +75 -0
  117. package/resource/knowledge/roomkit/best-practice/common/room-limit-and-multi.md +88 -0
  118. package/resource/knowledge/roomkit/best-practice/common/room-screen-share-preview.md +87 -0
  119. package/resource/knowledge/roomkit/best-practice/common/room-status-after-all-leave.md +73 -0
  120. package/resource/knowledge/roomkit/best-practice/vue/room-uikit-vs-atomicx.md +115 -0
  121. package/resource/knowledge/roomkit/core-sdk/android/call-user-to-room.md +1 -0
  122. package/resource/knowledge/roomkit/core-sdk/android/room-participant-state.md +1 -0
  123. package/resource/knowledge/roomkit/core-sdk/android/room-state.md +1 -0
  124. package/resource/knowledge/roomkit/core-sdk/android/schedule-room.md +1 -0
  125. package/resource/knowledge/roomkit/core-sdk/flutter/call-user-to-room.md +1 -0
  126. package/resource/knowledge/roomkit/core-sdk/flutter/room-participant-state.md +1 -0
  127. package/resource/knowledge/roomkit/core-sdk/flutter/room-state.md +1 -0
  128. package/resource/knowledge/roomkit/core-sdk/flutter/schedule-room.md +1 -0
  129. package/resource/knowledge/roomkit/core-sdk/ios/call-user-to-room.md +1 -0
  130. package/resource/knowledge/roomkit/core-sdk/ios/room-participant-state.md +1 -0
  131. package/resource/knowledge/roomkit/core-sdk/ios/room-state.md +1 -0
  132. package/resource/knowledge/roomkit/core-sdk/ios/schedule-room.md +1 -0
  133. package/resource/knowledge/roomkit/core-sdk/vue/room-view.md +1 -0
  134. package/resource/knowledge/roomkit/preset/react/integration.md +1 -0
  135. package/resource/knowledge/rtcengine/web/plugin/30-advanced-cross-room-link.md +2 -0
  136. package/resource/knowledge/rtcengine/web/plugin/39-advanced-video-decoder.md +2 -0
  137. package/resource/knowledge/trtc/android/TRTCCloud.md +1 -0
  138. package/resource/knowledge/trtc/c++/ITRTCCloud.md +1 -0
  139. package/resource/knowledge/trtc/ios/TRTCCloud.md +1 -0
  140. package/server.js +9 -4
  141. package/streamable-http.js +19 -54
  142. package/tools/common/search_trtc_knowledge.js +24 -12
  143. package/tools/definitions/finalize_answer_def.js +2 -2
  144. package/tools/definitions/integration-boundary.js +2 -1
  145. package/tools/definitions/search_trtc_knowledge_def.js +5 -3
  146. package/utils/fetch-doc-content.js +198 -0
  147. package/utils/preflight-route.js +197 -0
  148. package/utils/report-cls-client.js +1 -1
  149. package/utils/report-es-client.js +1 -1
  150. package/cursor-setting.png +0 -0
  151. package/mcp-server-prompt.png +0 -0
  152. package/resource/knowledge/callkit/best-practice/web/callengine-invitation.md +0 -80
  153. package/resource/knowledge/callkit/best-practice/web/callengine-log-control.md +0 -20
  154. package/resource/knowledge/callkit/best-practice/web/callkit-call-vs-calls.md +0 -116
  155. package/resource/knowledge/callkit/preset/react/uikit-api-reference.md +0 -469
  156. package/resource/knowledge/callkit/preset/vue/uikit-api-reference.md +0 -581
  157. package/resource/knowledge/callkit/preset/web/api.md +0 -79
  158. package/resource/knowledge/chat/best-practice/web/image-message-url-handling.md +0 -16
@@ -1,116 +0,0 @@
1
- ---
2
- product: 'Call'
3
- tech_stack: 'callkit'
4
- framework: 'web'
5
- doc_kind: 'best_practice'
6
- title: 'TUICallKit Web 发起音视频通话:call 与 calls、参数格式与示例'
7
- keywords: ['TUICallKit 发起音视频通', 'call 和 calls 方法的区别', 'userIDList 参数应该怎么传', 'type 参数 1 和 2 分别代表什么', 'TUICallKit vue', 'TUICallKit React']
8
- ---
9
-
10
- ## 最佳实践(结论优先)
11
- 1. Web TUICallKit **v4.x 必须使用 `calls`** 发起单聊/多人通话;`call`、`groupCall` 仅适用于 v4.0.0 以前版本, v4.0.0 起已不支持。
12
- 2. 发起通话前必须先完成 `init`,否则会出现调用失败或状态异常。
13
- 3. `type` 推荐使用 `CallMediaType` 枚举常量,不建议继续使用数字字面量(1/2)作为主写法。
14
- 4. `userIDList` 必须传数组(单聊也传单元素数组);需要和 Chat 群联动时再传 `chatGroupID`。
15
-
16
- ### 初始化示例(v4.x,React)
17
- ``` javascript
18
- import { TUICallKitAPI } from "@trtc/calls-uikit-react";
19
-
20
- TUICallKitAPI.init({ SDKAppID, userID, userSig });
21
- ```
22
-
23
- ### 旧版本初始化示例(v4.0.0 以前)
24
- ``` javascript
25
- import { TUICallKitServer } from "@tencentcloud/call-uikit-react";
26
-
27
- TUICallKitServer.init({ SDKAppID, userID, userSig });
28
- ```
29
-
30
- ## 常见误区(反例)
31
- - 在 v4.x 里继续调用 `call` / `groupCall`。
32
- - 把单聊写成 `userID` 字段而不是 `userIDList`。
33
- - `roomID` 与 `strRoomID` 混用(两者互斥,且不互通)。
34
- - `type` 长期使用数字字面量而非 `CallMediaType` 枚举常量。
35
-
36
- ## v4.x calls 接口的使用示例
37
- 发起单人或多人通话。
38
- ``` javascript
39
- try {
40
- await TUICallKitAPI.calls({
41
- userIDList: ['jack', 'tom'],
42
- type: CallMediaType.VIDEO_CALL
43
- });
44
- } catch (error: any) {
45
- console.error(`[TUICallKit] Failed to call the groupCall API. Reason:${error}`);
46
- }
47
- ```
48
-
49
- 参数如下表所示:
50
- | 参数 | 类型 | 是否必填 | 含义 |
51
- | --- | --- | --- | --- |
52
- | userIDList | Array<String> | 是 | 被呼叫的用户列表。 |
53
- | type | CallMediaType| 是 | 通话的媒体类型。<br>兼容旧版本:语音通话(type = 1)、视频通话(type = 2)。 |
54
- | chatGroupID | String | 是 | 与 Chat 结合使用时, Chat 群组的群 ID。 |
55
- | roomID | Number | 否 | 数字房间号,范围 [1, 2147483647]。 |
56
- | strRoomID | String | 否 | 字符串房间号。<strong>v3.3.1+ 支持</strong><br>1. roomID 与 strRoomID 是互斥的,若您选用 strRoomID,则 roomID 需要填写为 0。若两者都填,SDK 将优先选用 roomID。<br>2. 不要混用 roomID 和 strRoomID,因为它们之间是不互通的,例如数字 123 和字符串 "123" 是两个完全不同的房间。 |
57
- | timeout | Number | 否 | 通话超时时间,默认:30s,单位:秒。设置范围:10s ~ 600s。如果传入0,默认30s。 |
58
- | userData | String | 否 | 发起通话时自定义扩展字段,被呼叫用户在 ON_CALL_RECEIVED 事件中有该参数。 |
59
- | <a href="https://cloud.tencent.com/document/product/647/81015#offlinePushInfo">offlinePushInfo</a> | Object | 否 | 自定义离线消息推送参数。 |
60
-
61
- ### CallMediaType 通话类型
62
- |CallMediaType 类型|描述|
63
- |---------|---------|
64
- |CallMediaType.AUDIO|语音通话。|
65
- |CallMediaType.VIDEO|视频通话。|
66
-
67
- ## 低版本(v2.x/v3.x)`call` 和 `groupCall` 接口使用示例
68
-
69
- ### call 发起单人通话
70
- ``` javascript
71
- import { TUICallKitServer, TUICallType } from '@tencentcloud/call-uikit-react';
72
- try {
73
- await TUICallKitServer.call({
74
- userID: 'mike', // username being called
75
- type: TUICallType.VIDEO_CALL,
76
- });
77
- } catch (error: any) {
78
- console.error(`[TUICallKit] Call failed. Reason: ${error}`);
79
- }
80
- ```
81
-
82
- 参数如下表所示:
83
- | 参数 | 类型 | 是否必填 | 含义 |
84
- | --- | --- | --- | --- |
85
- | userID | String | 是 | 被呼叫的用户 ID。 |
86
- | type | TUICallType | 是 | 通话的媒体类型。<br>兼容旧版本:语音通话(type = 1)、视频通话(type = 2)。 |
87
- | roomID | Number | 否 | 数字房间号,范围 [1, 2147483647]。 |
88
- | strRoomID | String | 否 | 字符串房间号。<strong>v3.3.1+ 支持</strong><br>1. roomID 与 strRoomID 是互斥的,若您选用 strRoomID,则 roomID 需要填写为 0。若两者都填,SDK 将优先选用 roomID。<br>2. 不要混用 roomID 和 strRoomID,因为它们之间是不互通的,例如数字 123 和字符串 "123" 是两个完全不同的房间。 |
89
- | timeout | Number | 否 | 通话超时时间,默认:30s,单位:秒。设置范围:10s ~ 600s。如果传入0,默认30s。 |
90
- | userData | String | 否 | 发起通话时自定义扩展字段,被呼叫用户在 ON_CALL_RECEIVED 事件中有该参数。 |
91
- | offlinePushInfo | Object | 否 | 自定义离线消息推送参数。 |
92
-
93
- ### groupCall 发起多人通话
94
- ``` javascript
95
- try {
96
- await TUICallKitServer.groupCall({
97
- userIDList: ['jack', 'tom'],
98
- groupID: "xxx",
99
- type: TUICallType.VIDEO_CALL
100
- });
101
- } catch (error: any) {
102
- console.error(`[TUICallKit] Failed to call the groupCall API. Reason:${error}`);
103
- }
104
- ```
105
-
106
- 参数如下表所示:
107
- | 参数 | 类型 | 是否必填 | 含义 |
108
- | --- | --- | --- | --- |
109
- | userIDList| Array<String> | 是 | 被呼叫的用户 ID。 |
110
- | type | TUICallType | 是 | 通话的媒体类型。<br>兼容旧版本:语音通话(type = 1)、视频通话(type = 2)。 |
111
- | groupID | String | 是 | 通话群组 ID,groupID 的创建可参见。 |
112
- | roomID | Number | 否 | 数字房间号,范围 [1, 2147483647]。 |
113
- | strRoomID | String | 否 | 字符串房间号。<strong>v3.3.1+ 支持</strong><br>1. roomID 与 strRoomID 是互斥的,若您选用 strRoomID,则 roomID 需要填写为 0。若两者都填,SDK 将优先选用 roomID。<br>2. 不要混用 roomID 和 strRoomID,因为它们之间是不互通的,例如数字 123 和字符串 "123" 是两个完全不同的房间。 |
114
- | timeout | Number | 否 | 通话超时时间,默认:30s,单位:秒。设置范围:10s ~ 600s。如果传入0,默认30s。 |
115
- | userData | String | 否 | 发起通话时自定义扩展字段,被呼叫用户在 ON_CALL_RECEIVED 事件中有该参数。 |
116
- | offlinePushInfo | Object | 否 | 自定义离线消息推送参数。 |
@@ -1,469 +0,0 @@
1
- TUICallKit 是音视频通话组件的**含 UI 接口**,使用 TUICallKit API,您可以通过简单接口快速实现一个类微信的音视频通话场景;更详细的接入步骤。
2
-
3
- > 为提供更优质的音视频通信能力, TUICallKit npm 包 [@trtc/calls-uikit-react](https://www.npmjs.com/package/@trtc/calls-uikit-react) 在 4.0.0 版本进行了重大升级。
4
- >
5
-
6
- ## API 概览
7
-
8
- |<br>API|描述|
9
- |---------|---------|
10
- |[<TUICallKit />](https://cloud.tencent.com/document/product/647/81015#TUICallKit)|TUICallKit 通话 UI 组件。|
11
- |[init](https://cloud.tencent.com/document/product/647/81015#init)|初始化 TUICallKit 组件实例。|
12
- |[calls](https://cloud.tencent.com/document/product/647/81015#calls)|发起单人或多人通话。|
13
- |[join](https://cloud.tencent.com/document/product/647/81015#join)|主动加入通话。|
14
- |[setCallingBell](https://cloud.tencent.com/document/product/647/81015#setCallingBell)|设置自定义来电铃音。|
15
- |setLogLevel|设置日志级别。|
16
- |[setSelfInfo](https://cloud.tencent.com/document/product/647/81015#setSelfInfo)|设置用户昵称和头像。|
17
- |[enableMuteMode](https://cloud.tencent.com/document/product/647/81015#enableMuteMode)|开启/关闭来电铃声。|
18
- |[enableFloatWindow](https://cloud.tencent.com/document/product/647/81015#enableFloatWindow)|开启/关闭悬浮窗功能。|
19
- |[enableVirtualBackground](https://cloud.tencent.com/document/product/647/81015#enableVirtualBackground)|开启/关闭模糊背景的功能按钮。|
20
- |[setLanguage](https://cloud.tencent.com/document/product/647/81015#setLanguage)|设置 TUICallKit 组件通话语言。|
21
- |[hideFeatureButton](https://cloud.tencent.com/document/product/647/81015#hideFeatureButton)|隐藏按钮。|
22
- |[setLocalViewBackgroundImage](https://cloud.tencent.com/document/product/647/81015#setLocalViewBackgroundImage)|设置本地用户通话界面背景图。|
23
- |[setRemoteViewBackgroundImage](https://cloud.tencent.com/document/product/647/81015#setRemoteViewBackgroundImage)|设置远端用户通话界面背景图。|
24
- |[setLayoutMode](https://cloud.tencent.com/document/product/647/81015#setLayoutMode)|设置通话界面布局模式。|
25
- |[setCameraDefaultState](https://cloud.tencent.com/document/product/647/81015#setCameraDefaultState)|设置摄像头是否默认打开。|
26
- |[destroyed](https://cloud.tencent.com/document/product/647/81015#destroyed)|销毁 TUICallKit 组件实例。|
27
- |[getTUICallEngineInstance](https://cloud.tencent.com/document/product/647/81015#getTUICallEngineInstance)|获取 TUICallEngine 实例。|
28
-
29
- ## <`TUICallKit />` 组件
30
-
31
- ### 属性概览
32
-
33
- |属性|描述|类型|是否必填|默认值|支持 Vue|支持 React|
34
- |---------|---------|---------|---------|---------|---------|---------|
35
- |allowedMinimized|是否允许悬浮窗|boolean|否|false|<br>√<br>|√|
36
- |allowedFullScreen|是否允许通话界面全屏|boolean|否|true|√|√|
37
- |[videoDisplayMode](https://cloud.tencent.com/document/product/647/81015#videoDisplayMode)|通话界面显示模式|VideoDisplayMode|否|VideoDisplayMode.COVER|√|√|
38
- |[videoResolution](https://cloud.tencent.com/document/product/647/81015#videoResolution)|通话分辨率|VideoResolution|否|VideoResolution.RESOLUTION_720P|√|√|
39
- |beforeCalling|拨打电话前与收到通话邀请前会执行此函数|function(type, error)|否|-|√|√|
40
- |afterCalling|结束通话后会执行此函数|function()|否|-|√|√|
41
- |<br>onMinimized|组件切换最小化状态时会执行此函数,[STATUS 值说明](https://cloud.tencent.com/document/product/647/81015#STATUS)|function(oldStatus, newStatus)|否|-|√|√|
42
- |<br>kickedOut|组件抛出的事件,当前登录用户被踢出登录时会触发该事件,通话也会自动结束|function()|否|-|√|×|
43
- |<br>statusChanged|组件抛出的事件,当通话状态发生变化时,会触发该事件,通话状态种类详见,[STATUS 值说明](https://cloud.tencent.com/document/product/647/81015#STATUS)|function({oldStatus, newStatus})|否|-|√|×|
44
-
45
- ### 示例代码
46
-
47
- 【React】
48
- ``` bash
49
- import { TUICallKit, VideoDisplayMode, VideoResolution } from "@trtc/calls-uikit-react";
50
-
51
- <TUICallKit
52
- videoDisplayMode={VideoDisplayMode.CONTAIN}
53
- videoResolution={VideoResolution.RESOLUTION_1080P}
54
- beforeCalling={handleBeforeCalling}
55
- afterCalling={handleAfterCalling}
56
- />
57
-
58
- function handleBeforeCalling(type: string, error: any) {
59
- console.log("[TUICallkit Demo] handleBeforeCalling:", type, error);
60
- }
61
- function handleAfterCalling() {
62
- console.log("[TUICallkit Demo] handleAfterCalling");
63
- }
64
- ```
65
-
66
- ## TUICallKitAPI API 详情
67
-
68
- 【React】
69
- ``` javascript
70
- import { TUICallKitAPI } from "@trtc/calls-uikit-react";
71
- ```
72
-
73
- ### init
74
-
75
- 初始化 TUICallKit。
76
- ``` javascript
77
- try {
78
- await TUICallKitAPI.init({ SDKAppID, userID, userSig });
79
- // If you already have a tim instance in your project, you need to pass it in here.
80
- // await TUICallKitAPI.init({ tim, SDKAppID, userID, userSig});
81
- console.log("[TUICallKit] init succeeds.");
82
- } catch (error: any) {
83
- console.error(`[TUICallKit] init failed. Reason: ${error}`);
84
- }
85
- ```
86
-
87
- 参数如下表所示:
88
- | 参数 | 类型 | 是否必填 | 含义 |
89
- | --- | --- | --- | --- |
90
- | SDKAppID | Number | 是 | 应用的 SDKAppID,您可以在实时音视频控制台中找到您的 SDKAppID,具体。 |
91
- | userID | String | 是 | 即用户名,只允许包含英文字母(a-z 和 A-Z)、数字(0-9)、连词符(-)和下划线(_)。<br><strong>注意:</strong>不支持同一个 userID 在两台不同的设备上同时进入同一个房间通话,否则会相互干扰。 |
92
- | userSig | String | 是 | 使用 SecretKey 对 SDKAppID、UserID 等信息进行加密,就可以得到 userSig。<br>它是一个鉴权用的票据,用于腾讯云识别当前用户是否能够使用 TRTC 的服务,获取方式请参见 <a href="https://cloud.tencent.com/document/product/647/17275">UserSig</a>。 |
93
- | tim | TencentCloudChat | 否 | tim 是 <a href="https://www.npmjs.com/package/@tencentcloud/chat">TencentCloudChat</a> SDK 的实例。 |
94
-
95
- ### calls
96
-
97
- 发起单人或多人通话。
98
- ``` javascript
99
- try {
100
- await TUICallKitAPI.calls({
101
- userIDList: ['jack', 'tom'],
102
- type: CallMediaType.VIDEO_CALL
103
- });
104
- } catch (error: any) {
105
- console.error(`[TUICallKit] Failed to call the groupCall API. Reason:${error}`);
106
- }
107
- ```
108
-
109
- 参数如下表所示:
110
- | 参数 | 类型 | 是否必填 | 含义 |
111
- | --- | --- | --- | --- |
112
- | userIDList | Array<String> | 是 | 被呼叫的用户列表。 |
113
- | type | <a href="https://cloud.tencent.com/document/product/647/81015#TUICallType">CallMediaType</a> | 是 | 通话的媒体类型,参数值说明参见 <a href="https://cloud.tencent.com/document/product/647/81015#TUICallType">CallMediaType 通话类型</a>。<br>兼容旧版本:语音通话(type = 1)、视频通话(type = 2)。 |
114
- | chatGroupID | String | 是 | 与 Chat 结合使用时, Chat 群组的群 ID。 |
115
- | roomID | Number | 否 | 数字房间号,范围 [1, 2147483647]。 |
116
- | strRoomID | String | 否 | 字符串房间号。<strong>v3.3.1+ 支持</strong><br>1. roomID 与 strRoomID 是互斥的,若您选用 strRoomID,则 roomID 需要填写为 0。若两者都填,SDK 将优先选用 roomID。<br>2. 不要混用 roomID 和 strRoomID,因为它们之间是不互通的,例如数字 123 和字符串 "123" 是两个完全不同的房间。 |
117
- | timeout | Number | 否 | 通话超时时间,默认:30s,单位:秒。设置范围:10s ~ 600s。如果传入0,默认30s。 |
118
- | userData | String | 否 | 发起通话时自定义扩展字段,被呼叫用户在 ON_CALL_RECEIVED 事件中有该参数。 |
119
- | <a href="https://cloud.tencent.com/document/product/647/81015#offlinePushInfo">offlinePushInfo</a> | Object | 否 | 自定义离线消息推送参数。 |
120
-
121
- ### join
122
-
123
- 加入群组中已有的音视频通话。
124
- ``` javascript
125
- try {
126
- await TUICallKitAPI.join({callId: xx});
127
- } catch (error: any) {
128
- console.error(`[TUICallKit] Failed to call the join API. Reason: ${error}`);
129
- }
130
- ```
131
-
132
- 参数列表:
133
-
134
- |参数|类型|是否必填|含义|
135
- |---------|---------|---------|---------|
136
- |callId|String|是|此次通话的唯一 ID。|
137
-
138
- ### setLanguage
139
-
140
- 设置语言,目前支持:中文、英文、日文。
141
- ``` javascript
142
- TUICallKitAPI.setLanguage("zh-cn"); // "en" | "zh-cn" | "ja_JP"
143
- ```
144
-
145
- 参数如下表所示:
146
-
147
- |参数|类型|是否必填|含义|
148
- |---------|---------|---------|---------|
149
- |lang|String|是|语言类型`en`、`zh-cn` 和 `ja_JP`。|
150
-
151
- ### setSelfInfo
152
-
153
- 设置当前用户昵称和头像。
154
-
155
- > **通话中使用该接口修改用户信息,UI 不会立即更新,需要等到下次通话才能看到变化**。
156
- >
157
-
158
- ``` javascript
159
- try {
160
- await TUICallKitAPI.setSelfInfo({ nickName: "xxx", avatar: "http://xxx" });
161
- } catch (error: any) {
162
- console.error(`[TUICallKit] Failed to call the setSelfInfo API. Reason: ${error}`;
163
- }
164
- ```
165
-
166
- 参数如下表所示:
167
-
168
- |**参数**|**类型**|**是否必填**|**含义**|
169
- |---------|---------|---------|---------|
170
- |nickName|String|是|自己的昵称。|
171
- |avatar|String|是|自己头像地址。|
172
-
173
- ### setCallingBell
174
- - 自定义用户的来电铃音。
175
-
176
- - 仅限传入本地 MP3 格式的文件地址,需要确保该文件目录是应用可以访问的。
177
-
178
- - 使用 import 方式引入铃声文件。
179
-
180
- - 如需恢复默认铃声,`filePath` 传空即可。
181
-
182
- ``` javascript
183
- try {
184
- await TUICallKitAPI.setCallingBell(filePath?: string)
185
- } catch (error: any) {
186
- console.error(`[TUICallKit] Failed to call the setCallingBell API. Reason: ${error}`);
187
- }
188
- ```
189
-
190
- 参数如下表所示:
191
-
192
- |参数|类型|是否必填|含义|
193
- |---------|---------|---------|---------|
194
- |filePath|String|是|铃声文件地址。|
195
-
196
- ### setLogLevel
197
-
198
- 设置日志级别,低于 level 的日志将不会输出。
199
- ``` javascript
200
- TUICallKitAPI.setLogLevel(level)
201
- ```
202
-
203
- 参数如下表所示:
204
- | 参数 | 值 | 含义 |
205
- | --- | --- | --- |
206
- | level | 0 | 普通级别,日志量较多,接入时建议使用。 |
207
- | 1 | release 级别,SDK 输出关键信息,生产环境时建议使用。 | |
208
- | 2 | 告警级别,SDK 只输出告警和错误级别的日志。 | |
209
- | 3 | 错误级别,SDK 只输出错误级别的日志。 | |
210
- | 4 | 无日志级别,SDK 将不打印任何日志。 | |
211
-
212
- ### enableFloatWindow
213
-
214
- 开启/关闭悬浮窗功能。默认为 false,通话界面左上角的悬浮窗按钮隐藏,设置为 true 后显示。
215
- ``` javascript
216
- try {
217
- await TUICallKitAPI.enableFloatWindow(enable: Boolean)
218
- } catch (error: any) {
219
- console.error(`[TUICallKit] Failed to call the enableFloatWindow API. Reason: ${error}`);
220
- }
221
- ```
222
-
223
- ### enableMuteMode
224
-
225
- 开启/关闭来电铃声。
226
-
227
- 默认为`false`,开启后,收到通话请求,不会播放来电铃声。
228
- ``` javascript
229
- try {
230
- await TUICallKitAPI.enableMuteMode(enable: boolean)
231
- } catch (error: any) {
232
- console.error(`[TUICallKit] Failed to call the enableMuteMode API. Reason: ${error}`);
233
- }
234
- ```
235
-
236
- 参数如下表所示:
237
-
238
- |参数|类型|是否必填|含义|
239
- |---------|---------|---------|---------|
240
- |enable|Boolean|是|开启/关闭来电铃声。默认 false。|
241
-
242
- ### enableVirtualBackground
243
-
244
- 开启/关闭模糊背景功能。如果想设置图片背景模糊参见 [Web](https://cloud.tencent.com/document/product/647/106071)。通过调用接口,您可以在 UI 上显示模糊背景的功能按钮,点击按钮可直接启用模糊背景功能。
245
- ``` javascript
246
- import { TUICallKitAPI } from "@trtc/calls-uikit-react";
247
- const enable = true;
248
- TUICallKitAPI.enableVirtualBackground(enable);
249
- ```
250
-
251
- 参数列表:
252
- | 参数 | 类型 | 是否必填 | 含义 |
253
- | --- | --- | --- | --- |
254
- | enable | boolean | 是 | - enable = true 显示模糊背景按钮。<br>- enable = false 不显示模糊背景按钮。 |
255
-
256
- ### destroyed
257
-
258
- 销毁 TUICallKit 实例。
259
-
260
- 该方法不会自动退出`tim`,需要手动退出`tim.logout();`。
261
- ``` javascript
262
- try {
263
- await TUICallKitAPI.destroyed();
264
- } catch (error: any) {
265
- alert(`[TUICallKit] Failed to call the destroyed API. Reason: ${error}`);
266
- }
267
- ```
268
-
269
- ### hideFeatureButton
270
-
271
- 隐藏功能按钮,目前仅支持 摄像头,麦克风和切换前后置按钮。
272
-
273
- 【React】
274
- ``` javascript
275
- import { TUICallKitAPI, FeatureButton } from "@trtc/calls-uikit-react";
276
-
277
- TUICallKitAPI.hideFeatureButton(FeatureButton.Camera);
278
- ```
279
-
280
- 参数列表:
281
-
282
- |参数|类型|是否必填|含义|
283
- |---------|---------|---------|---------|
284
- |buttonName|[FeatureButton](https://cloud.tencent.com/document/product/647/81015#FeatureButton)|是|按钮名称。|
285
-
286
- ### setLocalViewBackgroundImage
287
-
288
- 设置本地用户通话背景。
289
- ``` typescript
290
- TUICallKitAPI.setLocalViewBackgroundImage('http://xxx.png');
291
- ```
292
-
293
- 参数列表:
294
-
295
- |参数|类型|是否必填|含义|
296
- |---------|---------|---------|---------|
297
- |url|String|是|图片地址(支持本地路径和网络地址)。|
298
-
299
- ### setRemoteViewBackgroundImage
300
-
301
- 设置远端用户通话背景。
302
- ``` javascript
303
- const userId = 'xxx';
304
- const url = 'http://xxx.png';
305
- TUICallKitAPI.setRemoteViewBackgroundImage(userId, url);
306
- ```
307
-
308
- 参数列表:
309
-
310
- |参数|类型|是否必填|含义|
311
- |---------|---------|---------|---------|
312
- |userId|String|是|远端用户 userId,设置为 '*' 表示对所有远端用户生效。|
313
- |url|String|是|图片地址(支持本地路径和网络地址)。|
314
-
315
- ### setLayoutMode
316
-
317
- 设置通话界面布局模式。
318
-
319
- 【React】
320
- ``` javascript
321
- import { TUICallKitAPI, LayoutMode } from "@trtc/calls-uikit-react";
322
- TUICallKitAPI.setLayoutMode(LayoutMode.LocalInLargeView);
323
- ```
324
-
325
- 参数列表:
326
-
327
- |参数|类型|是否必填|含义|
328
- |---------|---------|---------|---------|
329
- |layoutMode|[LayoutMode](https://cloud.tencent.com/document/product/647/81015#LayoutMode)|是|用户流的布局模式。|
330
-
331
- ### setCameraDefaultState
332
-
333
- 设置摄像头是否默认打开。
334
- ``` javascript
335
- TUICallKitAPI.setCameraDefaultState(true);
336
- ```
337
-
338
- 参数列表:
339
-
340
- |参数|类型|是否必填|含义|
341
- |---------|---------|---------|---------|
342
- |isOpen|boolean|是|是否开启摄像头。|
343
-
344
- ### getTUICallEngineInstance
345
-
346
- 获取 TUICallEngine 实例。
347
- ``` javascript
348
- TUICallKitAPI.getTUICallEngineInstance();
349
- ```
350
-
351
- ## TUICallKit 类型定义
352
-
353
- ### videoDisplayMode
354
-
355
- 画面显示模式 `videoDisplayMode` 属性有三个值:
356
- - `VideoDisplayMode.CONTAIN`
357
-
358
- - `VideoDisplayMode.COVER`
359
-
360
- - `VideoDisplayMode.FILL`,默认值是`VideoDisplayMode.COVER`。
361
-
362
- | 属性 | 值 | 描述 |
363
- | --- | --- | --- |
364
- | videoDisplayMode | VideoDisplayMode.CONTAIN | - 优先保证视频内容全部显示。<br>- 视频尺寸等比缩放,直至视频窗口的一边与视窗边框对齐。<br>- 如果视频尺寸与显示视窗尺寸不一致,在保持长宽比的前提下,将视频进行缩放后填满视窗,缩放后的视频四周会有一圈黑边。 |
365
- | VideoDisplayMode.COVER | - 优先保证视窗被填满。<br>- 视频尺寸等比缩放,直至整个视窗被视频填满。<br>- 如果视频长宽与显示窗口不同,则视频流会按照显示视窗的比例进行周边裁剪或图像拉伸后填满视窗。 | |
366
- | VideoDisplayMode.FILL | - 保证视窗被填满的同时保证视频内容全部显示,但是不保证视频尺寸比例不变。<br>- 视频的宽高会被拉伸至和视窗尺寸一致。 | |
367
-
368
- ### videoResolution
369
-
370
- 分辨率 `videoResolution` 有三个值:
371
- - `VideoResolution.RESOLUTION_360P`,**V4.5.1+ 支持**。
372
-
373
- - `VideoResolution.RESOLUTION_540P`,**V4.5.1+ 支持**。原来 `VideoResolution.RESOLUTION_480P`不再支持。
374
-
375
- - `VideoResolution.RESOLUTION_720P`,默认值是`VideoResolution.RESOLUTION_720P`。
376
-
377
- - `VideoResolution.RESOLUTION_1080P`
378
-
379
- **分辨率说明:**
380
-
381
- |视频 Profile|分辨率(宽 × 高)|帧率(fps)|码率(kbps)|
382
- |---------|---------|---------|---------|
383
- |360p|640*360|15|800|
384
- |540p|960 × 540|15|900|
385
- |720p|1280 × 720|15|1500|
386
- |1080p|1920 × 1080|15|2000|
387
-
388
- **常见问题:**
389
-
390
- - iOS 13&14不支持编码高于 720p 的视频,建议在这两个系统版本限制最高采集 720P。参见 [iOS Safari 已知问题 case 12](https://web.sdk.qcloud.com/trtc/webrtc/doc/zh-cn/tutorial-02-info-webrtc-issues.html#h2-4)。
391
-
392
- - Firefox 不支持自定义视频帧率(默认为 30fps)。
393
-
394
- - 受系统性能占用,摄像头采集能力和浏览器限制等因素的影响,视频分辨率、帧率、码率的实际值不一定能够完全匹配设定值,在这种情况下,浏览器会自动调整 Profile 尽可能匹配设定值。
395
-
396
- ### STATUS
397
-
398
- |属性值|描述|
399
- |---------|---------|
400
- |STATUS.IDLE|闲置状态。|
401
- |STATUS.BE_INVITED|收到通话邀请。|
402
- |STATUS.DIALING_C2C|正在 1v1 呼叫。|
403
- |STATUS.DIALING_GROUP|正在群组呼叫。|
404
- |STATUS.CALLING_C2C_AUDIO|正在 1v1 语音通话。|
405
- |STATUS.CALLING_C2C_VIDEO|正在 1v1 视频通话。|
406
- |STATUS.CALLING_GROUP_AUDIO|正在群组语音通话。|
407
- |STATUS.CALLING_GROUP_VIDEO|正在群组视频通话。|
408
-
409
- ### **CallMediaType**
410
-
411
- |CallMediaType 类型|描述|
412
- |---------|---------|
413
- |CallMediaType.AUDIO|语音通话。|
414
- |CallMediaType.VIDEO|视频通话。|
415
-
416
- ### **offlinePushInfo**
417
-
418
- |参数|类型|是否必填|含义|
419
- |---------|---------|---------|---------|
420
- |offlinePushInfo.title|String|否|离线推送标题(选填)|
421
- |offlinePushInfo.description|String|否|离线推送内容(选填)|
422
- |offlinePushInfo.androidOPPOChannelID|String|否|离线推送设置 OPPO 手机 8.0 系统及以上的渠道 ID(选填)|
423
- |offlinePushInfo.extension|String|否|离线推送透传内容,可以用于设置 Android [Notification 模式](https://cloud.tencent.com/document/product/647/81015#Android Notification) 和 [VoIP 模式](https://cloud.tencent.com/document/product/647/81015#Android VoIP)。**默认:**Notification 模式,会是系统的通知;VoIP 模式是需要传字段。|
424
- |offlinePushInfo.ignoreIOSBadge|Boolean|否|离线推送忽略 badge 计数(仅对 iOS 生效), 如果设置为 true,在 iOS 接收端,这条消息不会使 App 的应用图标未读计数增加。|
425
- |offlinePushInfo.iOSSound|String|否|离线推送声音设置(仅对 iOS 生效)。|
426
- |offlinePushInfo.androidSound|String|否|离线推送声音设置(仅对 Android 生效)。|
427
- |offlinePushInfo.androidVIVOClassification|Number|否|VIVO 推送消息分类。|
428
- |offlinePushInfo.androidXiaoMiChannelID|String|否|小米手机 8.0 系统及以上的渠道 ID。|
429
- |offlinePushInfo.androidFCMChannelID|String|否|FCM 通道手机 8.0 系统及以上的渠道 ID。|
430
- |offlinePushInfo.androidHuaWeiCategory|String|否|华为推送消息分类。|
431
- |offlinePushInfo.isDisablePush|Boolean|否|是否关闭推送(默认开启推送)。|
432
- |offlinePushInfo.iOSPushType|Number|否|iOS 离线推送类型。0-普通推送;1-VoIP推送。默认:0。|
433
-
434
- #### Android Notification 模式
435
- ``` javascript
436
- const extension = {
437
- timPushFeatures: {
438
- fcmPushType: 0, // 0, VoIP; 1, notification
439
- }
440
- };
441
- offlinePushInfo.extension = JSON.stringify(extension);
442
- ```
443
-
444
- #### Android VoIP 模式
445
- ``` javascript
446
- const extension = {
447
- timPushFeatures: {
448
- fcmPushType: 0, // 0, data; 1, notification
449
- fcmNotificationType: 1, // 0, TIMPush implementation; 1, business implementation after transparent transmission
450
- }
451
- };
452
- offlinePushInfo.extension = JSON.stringify(extension);
453
- ```
454
-
455
- ### FeatureButton
456
-
457
- |FeatureButton 类型|描述|
458
- |---------|---------|
459
- |FeatureButton.Camera|摄像头按钮。|
460
- |FeatureButton.Microphone|麦克风按钮。|
461
- |FeatureButton.SwitchCamera|切换前后置摄像头按钮。|
462
- |FeatureButton.InviteUser|邀请他人按钮。|
463
-
464
- ### LayoutMode
465
-
466
- |LayoutMode 类型|描述|
467
- |---------|---------|
468
- |LayoutMode.LocalInLargeView|本地用户在大窗显示。|
469
- |LayoutMode.RemoteInLargeView|远端用户在大窗显示。|