@tencentcloud/sdk-mcp 1.6.4 → 1.6.5

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 (299) hide show
  1. package/knowledge/build-index.js +1 -1
  2. package/knowledge/chunker.js +81 -52
  3. package/knowledge/path-meta.js +181 -21
  4. package/knowledge/search/exact-lookup.js +166 -0
  5. package/knowledge/search/filter-pool.js +73 -19
  6. package/knowledge/search/product-scope-intent.js +2 -2
  7. package/knowledge/search/requires-framework.js +1 -1
  8. package/knowledge/search/search-knowledge.js +234 -57
  9. package/package.json +1 -1
  10. package/resource/_schema/feature-aliases.yaml +1 -0
  11. package/resource/integration/callkit/preset/android/integration.md +3 -5
  12. package/resource/integration/callkit/preset/flutter/integration.md +2 -3
  13. package/resource/integration/callkit/preset/ios/integration.md +2 -5
  14. package/resource/integration/callkit/preset/react/integration.md +12 -26
  15. package/resource/integration/callkit/preset/vue/integration.md +17 -33
  16. package/resource/integration/chat/preset/android/integration.md +44 -14
  17. package/resource/integration/chat/preset/flutter/integration.md +54 -13
  18. package/resource/integration/chat/preset/ios/integration.md +42 -6
  19. package/resource/integration/chat/preset/react/integration.md +30 -28
  20. package/resource/integration/chat/preset/uni-app/integration.md +101 -40
  21. package/resource/integration/chat/preset/vue/integration.md +62 -28
  22. package/resource/integration/livekit/preset/live/android/live-audience-integration.md +133 -0
  23. package/resource/integration/livekit/preset/live/android/live-host-integration.md +225 -0
  24. package/resource/integration/livekit/preset/live/android/live-list-integration.md +278 -0
  25. package/resource/integration/livekit/preset/live/android/prepare-integration.md +271 -0
  26. package/resource/integration/livekit/preset/live/ios/live-audience-integration.md +207 -0
  27. package/resource/integration/livekit/preset/live/ios/live-host-integration.md +358 -0
  28. package/resource/integration/livekit/preset/live/ios/live-list-integration.md +246 -0
  29. package/resource/integration/livekit/preset/live/ios/prepare-integration.md +218 -0
  30. package/resource/integration/livekit/preset/live/vue/live-list-integration.md +4 -7
  31. package/resource/integration/livekit/preset/live/vue/live-player-desk-integration.md +5 -12
  32. package/resource/integration/livekit/preset/live/vue/live-player-h5-integration.md +4 -11
  33. package/resource/integration/livekit/preset/live/vue/live-pusher-integration.md +250 -482
  34. package/resource/integration/roomkit/preset/vue/integration.md +399 -106
  35. package/resource/knowledge/callkit/best-practice/web/callengine-invitation.md +80 -0
  36. package/resource/knowledge/callkit/best-practice/web/callengine-log-control.md +20 -0
  37. package/resource/knowledge/callkit/best-practice/web/callkit-call-vs-calls.md +116 -0
  38. package/resource/knowledge/callkit/core-sdk/android/answer-call.md +11 -15
  39. package/resource/knowledge/callkit/core-sdk/android/make-call.md +10 -13
  40. package/resource/knowledge/callkit/core-sdk/android/offline-push.md +2 -4
  41. package/resource/knowledge/callkit/core-sdk/flutter/answer-call.md +10 -17
  42. package/resource/knowledge/callkit/core-sdk/flutter/make-call.md +11 -17
  43. package/resource/knowledge/callkit/core-sdk/flutter/offline-push.md +11 -20
  44. package/resource/knowledge/callkit/core-sdk/ios/answer-call.md +10 -15
  45. package/resource/knowledge/callkit/core-sdk/ios/make-call.md +9 -14
  46. package/resource/knowledge/callkit/core-sdk/ios/offline-push.md +12 -18
  47. package/resource/knowledge/callkit/core-sdk/miniprogram/call-engine.md +390 -0
  48. package/resource/knowledge/callkit/core-sdk/miniprogram/call-event.md +317 -0
  49. package/resource/knowledge/callkit/core-sdk/uni-app/answer-call.md +16 -22
  50. package/resource/knowledge/callkit/core-sdk/uni-app/make-call.md +17 -23
  51. package/resource/knowledge/callkit/core-sdk/web/call-engine.md +39 -0
  52. package/resource/knowledge/callkit/core-sdk/web/call-event.md +341 -0
  53. package/resource/knowledge/callkit/core-sdk/web/callengine-api-overview.md +39 -0
  54. package/resource/knowledge/callkit/faq/android.md +1 -5
  55. package/resource/knowledge/callkit/faq/common.md +10 -12
  56. package/resource/knowledge/callkit/faq/ios.md +5 -7
  57. package/resource/knowledge/callkit/faq/uniapp-app.md +7 -7
  58. package/resource/knowledge/callkit/faq/uniapp-miniprogram.md +9 -12
  59. package/resource/knowledge/callkit/faq/web.md +2 -12
  60. package/resource/knowledge/callkit/preset/android/api.md +5 -8
  61. package/resource/knowledge/callkit/preset/ios/api.md +4 -6
  62. package/resource/knowledge/callkit/preset/miniprogram/api.md +295 -0
  63. package/resource/knowledge/callkit/preset/react/api.md +622 -0
  64. package/resource/knowledge/callkit/preset/react/uikit-api-reference.md +475 -0
  65. package/resource/knowledge/callkit/preset/vue/api.md +622 -0
  66. package/resource/knowledge/callkit/preset/vue/uikit-api-reference.md +587 -0
  67. package/resource/knowledge/callkit/preset/web/api.md +1 -1
  68. package/resource/knowledge/chat/best-practice/web/image-message-url-handling.md +16 -0
  69. package/resource/knowledge/chat/preset/android/features/chat-setting.md +1 -1
  70. package/resource/knowledge/chat/preset/android/features/conversation-list.md +0 -1
  71. package/resource/knowledge/chat/preset/android/features/language.md +2 -4
  72. package/resource/knowledge/chat/preset/android/features/message-input.md +1 -1
  73. package/resource/knowledge/chat/preset/android/features/message-list.md +1 -2
  74. package/resource/knowledge/chat/preset/android/features/search.md +0 -1
  75. package/resource/knowledge/chat/preset/android/features/theme.md +1 -1
  76. package/resource/knowledge/chat/preset/android-view/integration.md +35 -10
  77. package/resource/knowledge/chat/preset/flutter/features/conversation-list.md +0 -1
  78. package/resource/knowledge/chat/preset/flutter/features/language.md +1 -1
  79. package/resource/knowledge/chat/preset/flutter/features/message-list.md +0 -1
  80. package/resource/knowledge/chat/preset/flutter/features/search.md +4 -5
  81. package/resource/knowledge/chat/preset/flutter/features/theme.md +1 -1
  82. package/resource/knowledge/chat/preset/ios/features/chat-setting.md +1 -1
  83. package/resource/knowledge/chat/preset/ios/features/conversation-list.md +0 -1
  84. package/resource/knowledge/chat/preset/ios/features/language.md +2 -5
  85. package/resource/knowledge/chat/preset/ios/features/message-list.md +0 -1
  86. package/resource/knowledge/chat/preset/ios/features/search.md +0 -1
  87. package/resource/knowledge/chat/preset/ios/features/theme.md +1 -1
  88. package/resource/knowledge/chat/preset/ios-uikit/integration.md +57 -166
  89. package/resource/knowledge/chat/preset/react/features/chat-setting.md +0 -1
  90. package/resource/knowledge/chat/preset/react/features/conversation-actions.md +3 -3
  91. package/resource/knowledge/chat/preset/react/features/conversation-list.md +3 -3
  92. package/resource/knowledge/chat/preset/react/features/conversation-preview.md +1 -1
  93. package/resource/knowledge/chat/preset/react/features/message-input.md +2 -3
  94. package/resource/knowledge/chat/preset/react/features/search.md +0 -1
  95. package/resource/knowledge/chat/preset/vue/features/chat-header.md +1 -1
  96. package/resource/knowledge/chat/preset/vue/features/chat-setting.md +3 -4
  97. package/resource/knowledge/chat/preset/vue/features/conversation-list.md +4 -4
  98. package/resource/knowledge/chat/preset/vue/features/conversation-preview.md +1 -1
  99. package/resource/knowledge/chat/preset/vue/features/message-input.md +2 -2
  100. package/resource/knowledge/chat/preset/vue/features/message-list.md +2 -2
  101. package/resource/knowledge/chat/preset/vue/features/search.md +0 -1
  102. package/resource/knowledge/chat/preset/vue/features/theme.md +4 -4
  103. package/resource/knowledge/livekit/core-sdk/api-reference/android/AudioEffectStore.md +0 -7
  104. package/resource/knowledge/livekit/core-sdk/api-reference/android/BarrageStore.md +2 -5
  105. package/resource/knowledge/livekit/core-sdk/api-reference/android/BattleStore.md +12 -15
  106. package/resource/knowledge/livekit/core-sdk/api-reference/android/CameraView.md +0 -1
  107. package/resource/knowledge/livekit/core-sdk/api-reference/android/CoGuestStore.md +0 -5
  108. package/resource/knowledge/livekit/core-sdk/api-reference/android/CoHostStore.md +0 -3
  109. package/resource/knowledge/livekit/core-sdk/api-reference/android/DeviceStore.md +0 -2
  110. package/resource/knowledge/livekit/core-sdk/api-reference/android/GiftStore.md +2 -4
  111. package/resource/knowledge/livekit/core-sdk/api-reference/android/LikeStore.md +0 -2
  112. package/resource/knowledge/livekit/core-sdk/api-reference/android/LiveAudienceStore.md +0 -2
  113. package/resource/knowledge/livekit/core-sdk/api-reference/android/LiveCoreView.md +0 -1
  114. package/resource/knowledge/livekit/core-sdk/api-reference/android/LiveSeatStore.md +2 -4
  115. package/resource/knowledge/livekit/core-sdk/api-reference/android/LoginStore.md +1 -3
  116. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/AudioEffectStore.md +0 -7
  117. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/BarrageStore.md +3 -6
  118. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/BaseBeautyStore.md +0 -1
  119. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/BattleStore.md +12 -15
  120. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/CoGuestStore.md +0 -5
  121. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/CoHostStore.md +0 -3
  122. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/DeviceStore.md +0 -2
  123. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/GiftStore.md +2 -4
  124. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LikeStore.md +0 -2
  125. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LiveAudienceStore.md +0 -2
  126. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LiveCoreView.md +0 -1
  127. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LiveSeatStore.md +2 -4
  128. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LoginStore.md +1 -3
  129. package/resource/knowledge/livekit/core-sdk/api-reference/ios/AudioEffectStore.md +0 -7
  130. package/resource/knowledge/livekit/core-sdk/api-reference/ios/BarrageStore.md +2 -5
  131. package/resource/knowledge/livekit/core-sdk/api-reference/ios/BaseBeautyStore.md +0 -1
  132. package/resource/knowledge/livekit/core-sdk/api-reference/ios/BattleStore.md +3 -6
  133. package/resource/knowledge/livekit/core-sdk/api-reference/ios/CoGuestStore.md +0 -5
  134. package/resource/knowledge/livekit/core-sdk/api-reference/ios/CoHostStore.md +0 -3
  135. package/resource/knowledge/livekit/core-sdk/api-reference/ios/DeviceStore.md +0 -2
  136. package/resource/knowledge/livekit/core-sdk/api-reference/ios/GiftStore.md +2 -4
  137. package/resource/knowledge/livekit/core-sdk/api-reference/ios/LikeStore.md +0 -2
  138. package/resource/knowledge/livekit/core-sdk/api-reference/ios/LiveAudienceStore.md +0 -2
  139. package/resource/knowledge/livekit/core-sdk/api-reference/ios/LiveCoreView.md +0 -1
  140. package/resource/knowledge/livekit/core-sdk/api-reference/ios/LiveSeatStore.md +2 -4
  141. package/resource/knowledge/livekit/core-sdk/api-reference/ios/LoginStore.md +1 -3
  142. package/resource/knowledge/livekit/core-sdk/api-reference/vue/capability-matrix.md +82 -0
  143. package/resource/knowledge/livekit/core-sdk/{voice/android/voice-audio-effect.md → features/android/audio-effect.md} +2 -4
  144. package/resource/knowledge/livekit/core-sdk/{live/android/live-barrage.md → features/android/barrage.md} +1 -1
  145. package/resource/knowledge/livekit/core-sdk/{live/android/live-base-beauty.md → features/android/base-beauty.md} +1 -1
  146. package/resource/knowledge/livekit/core-sdk/{voice/android/voice-gift.md → features/android/gift.md} +2 -3
  147. package/resource/knowledge/livekit/core-sdk/{live/android/live-live-list.md → features/android/live-list.md} +1 -1
  148. package/resource/knowledge/livekit/core-sdk/{live/flutter/live-audio-effect.md → features/flutter/audio-effect.md} +0 -2
  149. package/resource/knowledge/livekit/core-sdk/{voice/flutter/voice-barrage.md → features/flutter/barrage.md} +3 -3
  150. package/resource/knowledge/livekit/core-sdk/{voice/flutter/voice-gift.md → features/flutter/gift.md} +2 -2
  151. package/resource/knowledge/livekit/core-sdk/{voice/flutter/voice-room-list.md → features/flutter/live-list.md} +1 -1
  152. package/resource/knowledge/livekit/core-sdk/{voice/ios/voice-audience-list.md → features/ios/audience-list.md} +1 -1
  153. package/resource/knowledge/livekit/core-sdk/{voice/ios/voice-audio-effect.md → features/ios/audio-effect.md} +1 -3
  154. package/resource/knowledge/livekit/core-sdk/{voice/ios/voice-barrage.md → features/ios/barrage.md} +2 -2
  155. package/resource/knowledge/livekit/core-sdk/{live/ios/live-base-beauty.md → features/ios/base-beauty.md} +1 -1
  156. package/resource/knowledge/livekit/core-sdk/{live/ios/live-gift.md → features/ios/gift.md} +8 -9
  157. package/resource/knowledge/livekit/core-sdk/{live/ios/live-live-list.md → features/ios/live-list.md} +2 -2
  158. package/resource/knowledge/livekit/core-sdk/{voice/uni-app/voice-audio-effect.md → features/uni-app/audio-effect.md} +2 -3
  159. package/resource/knowledge/livekit/core-sdk/{voice/uni-app/voice-barrage.md → features/uni-app/barrage.md} +2 -2
  160. package/resource/knowledge/livekit/core-sdk/features/uni-app/base-beauty.md +145 -0
  161. package/resource/knowledge/livekit/core-sdk/{voice/uni-app/voice-gift.md → features/uni-app/gift.md} +6 -7
  162. package/resource/knowledge/livekit/core-sdk/{voice/uni-app/voice-room-list.md → features/uni-app/live-list.md} +1 -1
  163. package/resource/knowledge/livekit/core-sdk/live/android/{live-co-guest-interaction.md → co-guest-interaction.md} +2 -3
  164. package/resource/knowledge/livekit/core-sdk/live/android/{live-host-interaction.md → host-interaction.md} +2 -4
  165. package/resource/knowledge/livekit/core-sdk/live/android/{live-integration.md → integration.md} +6 -9
  166. package/resource/knowledge/livekit/core-sdk/live/flutter/{live-host-interaction.md → host-interaction.md} +1 -3
  167. package/resource/knowledge/livekit/core-sdk/live/flutter/{live-integration.md → integration.md} +1 -6
  168. package/resource/knowledge/livekit/core-sdk/live/ios/{live-co-guest-interaction.md → co-guest-interaction.md} +2 -3
  169. package/resource/knowledge/livekit/core-sdk/live/ios/{live-host-interaction.md → host-interaction.md} +3 -5
  170. package/resource/knowledge/livekit/core-sdk/live/ios/{live-integration.md → integration.md} +7 -10
  171. package/resource/knowledge/livekit/core-sdk/live/uni-app/co-guest-interaction.md +561 -0
  172. package/resource/knowledge/livekit/core-sdk/live/uni-app/host-interaction.md +323 -0
  173. package/resource/knowledge/livekit/core-sdk/live/uni-app/integration.md +312 -0
  174. package/resource/knowledge/livekit/core-sdk/voice/android/{voice-co-guest-interaction.md → co-guest-interaction.md} +3 -3
  175. package/resource/knowledge/livekit/core-sdk/voice/android/{voice-host-interaction.md → host-interaction.md} +2 -4
  176. package/resource/knowledge/livekit/core-sdk/voice/android/{voice-integration.md → integration.md} +11 -14
  177. package/resource/knowledge/livekit/core-sdk/voice/flutter/{voice-co-guest-interaction.md → co-guest-interaction.md} +0 -1
  178. package/resource/knowledge/livekit/core-sdk/voice/flutter/{voice-integration.md → integration.md} +1 -4
  179. package/resource/knowledge/livekit/core-sdk/voice/ios/{voice-co-guest-interaction.md → co-guest-interaction.md} +3 -3
  180. package/resource/knowledge/livekit/core-sdk/voice/ios/{voice-host-interaction.md → host-interaction.md} +2 -4
  181. package/resource/knowledge/livekit/core-sdk/voice/ios/{voice-integration.md → integration.md} +7 -10
  182. package/resource/knowledge/livekit/core-sdk/voice/uni-app/{voice-co-guest-interaction.md → co-guest-interaction.md} +6 -6
  183. package/resource/knowledge/livekit/core-sdk/voice/uni-app/{voice-integration.md → integration.md} +6 -7
  184. package/resource/knowledge/livekit/preset/live/vue/features/barrage.md +2 -3
  185. package/resource/knowledge/livekit/preset/live/vue/features/live-audience-list.md +1 -1
  186. package/resource/knowledge/livekit/preset/live/vue/features/live-view.md +1 -1
  187. package/resource/knowledge/push/api-reference/android.md +337 -0
  188. package/resource/knowledge/push/api-reference/donut.md +190 -0
  189. package/resource/knowledge/push/api-reference/flutter.md +176 -0
  190. package/resource/knowledge/push/api-reference/harmonyos.md +140 -0
  191. package/resource/knowledge/push/api-reference/ios.md +537 -0
  192. package/resource/knowledge/push/api-reference/react-native.md +154 -0
  193. package/resource/knowledge/push/api-reference/uni-app.md +148 -0
  194. package/resource/knowledge/push/api-reference/unity.md +119 -0
  195. package/resource/knowledge/push/api-reference/unreal-engine.md +123 -0
  196. package/resource/knowledge/push/config/android/fcm.md +1 -8
  197. package/resource/knowledge/push/config/android/honor.md +3 -7
  198. package/resource/knowledge/push/config/android/huawei.md +0 -5
  199. package/resource/knowledge/push/config/android/meizu.md +0 -5
  200. package/resource/knowledge/push/config/android/oppo.md +0 -4
  201. package/resource/knowledge/push/config/android/vivo.md +0 -4
  202. package/resource/knowledge/push/config/android/xiaomi.md +0 -2
  203. package/resource/knowledge/push/config/donut.md +33 -46
  204. package/resource/knowledge/push/config/harmonyos.md +6 -9
  205. package/resource/knowledge/push/config/ios.md +2 -9
  206. package/resource/knowledge/push/config/react-native.md +17 -25
  207. package/resource/knowledge/push/config/unity.md +16 -24
  208. package/resource/knowledge/push/config/unreal-engine.md +16 -24
  209. package/resource/knowledge/push/integration/android.md +21 -21
  210. package/resource/knowledge/push/integration/donut.md +24 -34
  211. package/resource/knowledge/push/integration/flutter.md +12 -1
  212. package/resource/knowledge/push/integration/harmonyos.md +2 -1
  213. package/resource/knowledge/push/integration/ios.md +16 -10
  214. package/resource/knowledge/push/integration/react-native.md +10 -14
  215. package/resource/knowledge/push/integration/uni-app.md +10 -6
  216. package/resource/knowledge/push/integration/unity.md +19 -22
  217. package/resource/knowledge/push/integration/unreal-engine.md +7 -9
  218. package/resource/knowledge/push/overview/prepare.md +2 -2
  219. package/resource/knowledge/roomkit/core-sdk/android/capability-matrix.md +46 -0
  220. package/resource/knowledge/roomkit/core-sdk/android/unsupported-features.md +82 -0
  221. package/resource/knowledge/roomkit/core-sdk/flutter/capability-matrix.md +46 -0
  222. package/resource/knowledge/roomkit/core-sdk/flutter/room-participant-state.md +1 -1
  223. package/resource/knowledge/roomkit/core-sdk/flutter/unsupported-features.md +82 -0
  224. package/resource/knowledge/roomkit/core-sdk/ios/capability-matrix.md +46 -0
  225. package/resource/knowledge/roomkit/core-sdk/ios/room-state.md +1 -1
  226. package/resource/knowledge/roomkit/core-sdk/ios/unsupported-features.md +82 -0
  227. package/resource/knowledge/roomkit/core-sdk/vue/call-user-to-room.md +1 -1
  228. package/resource/knowledge/roomkit/core-sdk/vue/device-state.md +0 -4
  229. package/resource/knowledge/roomkit/core-sdk/vue/free-beauty-panel.md +2 -5
  230. package/resource/knowledge/roomkit/core-sdk/vue/room-chat.md +0 -3
  231. package/resource/knowledge/roomkit/core-sdk/vue/room-participant-state.md +0 -2
  232. package/resource/knowledge/roomkit/core-sdk/vue/room-state.md +2 -6
  233. package/resource/knowledge/roomkit/core-sdk/vue/room-view.md +0 -1
  234. package/resource/knowledge/roomkit/core-sdk/vue/schedule-room.md +1 -1
  235. package/resource/knowledge/roomkit/core-sdk/vue/screen-share.md +2 -4
  236. package/resource/knowledge/roomkit/core-sdk/vue/virtual-background.md +2 -3
  237. package/resource/knowledge/roomkit/preset/android/integration.md +14 -16
  238. package/resource/knowledge/roomkit/preset/flutter/integration.md +9 -17
  239. package/resource/knowledge/roomkit/preset/ios/integration.md +9 -17
  240. package/resource/knowledge/roomkit/preset/react/integration.md +0 -4
  241. package/resource/knowledge/trtc/android/TRTCCloud.md +97 -180
  242. package/resource/knowledge/trtc/android/TRTCCloudDef.md +20 -20
  243. package/resource/knowledge/trtc/android/TRTCCloudListener.md +43 -77
  244. package/resource/knowledge/trtc/android/TRTCStatistics.md +1 -1
  245. package/resource/knowledge/trtc/android/TXAudioEffectManager.md +4 -24
  246. package/resource/knowledge/trtc/android/TXDeviceManager.md +2 -2
  247. package/resource/knowledge/trtc/android/TXLiteAVCode.md +1 -1
  248. package/resource/knowledge/trtc/c++/ITRTCCloud.md +96 -189
  249. package/resource/knowledge/trtc/c++/ITRTCStatistics.md +1 -1
  250. package/resource/knowledge/trtc/c++/ITXAudioEffectManager.md +1 -21
  251. package/resource/knowledge/trtc/c++/ITXDeviceManager.md +4 -6
  252. package/resource/knowledge/trtc/c++/TRTCCloudCallback.md +42 -76
  253. package/resource/knowledge/trtc/c++/TRTCTypeDef.md +18 -19
  254. package/resource/knowledge/trtc/c++/TXLiteAVCode.md +1 -1
  255. package/resource/knowledge/trtc/ios/TRTCCloud.md +95 -181
  256. package/resource/knowledge/trtc/ios/TRTCCloudDelegate.md +43 -78
  257. package/resource/knowledge/trtc/ios/TRTCStatistics.md +1 -1
  258. package/resource/knowledge/trtc/ios/TXAudioEffectManager.md +1 -20
  259. package/resource/knowledge/trtc/ios/TXDeviceManager.md +4 -6
  260. package/resource/knowledge/trtc/ios/TXLiteAVCode.md +1 -1
  261. package/resource/knowledge/trtc/ios/TXLiveSDKTypeDef.md +20 -20
  262. package/server.js +2 -2
  263. package/tools/common/finalize_answer.js +1 -1
  264. package/tools/common/present_framework_choice.js +2 -2
  265. package/tools/common/search_trtc_knowledge.js +3 -3
  266. package/tools/common/submit_feedback.js +1 -1
  267. package/tools/definitions/get_native_live_uikit_integration_def.js +60 -0
  268. package/tools/definitions/get_native_livekit_core_integration_def.js +1 -1
  269. package/tools/definitions/present_framework_choice_def.js +2 -2
  270. package/tools/definitions/search_trtc_knowledge_def.js +5 -5
  271. package/tools/index.js +2 -0
  272. package/tools/live/get_native_live_uikit_integration.js +69 -0
  273. package/tools/live/get_native_livekit_core_integration.js +6 -6
  274. package/utils/report-cls-client.js +1 -1
  275. package/utils/report-es-client.js +1 -1
  276. package/resource/index/component-slugs.json +0 -1
  277. package/resource/index/doc-source-urls.json +0 -1
  278. package/resource/index/manifest.json +0 -1
  279. package/resource/knowledge/livekit/core-sdk/live/android/live-audio-effect.md +0 -229
  280. package/resource/knowledge/livekit/core-sdk/live/android/live-gift.md +0 -459
  281. package/resource/knowledge/livekit/core-sdk/live/flutter/live-barrage.md +0 -506
  282. package/resource/knowledge/livekit/core-sdk/live/flutter/live-gift.md +0 -427
  283. package/resource/knowledge/livekit/core-sdk/live/flutter/live-live-list.md +0 -726
  284. package/resource/knowledge/livekit/core-sdk/live/ios/live-audience-list.md +0 -265
  285. package/resource/knowledge/livekit/core-sdk/live/ios/live-audio-effect.md +0 -214
  286. package/resource/knowledge/livekit/core-sdk/live/ios/live-barrage.md +0 -427
  287. package/resource/knowledge/livekit/core-sdk/voice/android/voice-audience-list.md +0 -272
  288. package/resource/knowledge/livekit/core-sdk/voice/android/voice-barrage.md +0 -486
  289. package/resource/knowledge/livekit/core-sdk/voice/android/voice-room-list.md +0 -523
  290. package/resource/knowledge/livekit/core-sdk/voice/flutter/voice-audience-list.md +0 -262
  291. package/resource/knowledge/livekit/core-sdk/voice/flutter/voice-audio-effect.md +0 -600
  292. package/resource/knowledge/livekit/core-sdk/voice/ios/voice-gift.md +0 -411
  293. package/resource/knowledge/livekit/core-sdk/voice/ios/voice-room-list.md +0 -404
  294. /package/resource/knowledge/livekit/core-sdk/api-reference/{web → vue}/index.md +0 -0
  295. /package/resource/knowledge/livekit/core-sdk/{live/android/live-audience-list.md → features/android/audience-list.md} +0 -0
  296. /package/resource/knowledge/livekit/core-sdk/{live/flutter/live-audience-list.md → features/flutter/audience-list.md} +0 -0
  297. /package/resource/knowledge/livekit/core-sdk/{live/flutter/live-base-beauty.md → features/flutter/base-beauty.md} +0 -0
  298. /package/resource/knowledge/livekit/core-sdk/{voice/uni-app/voice-audience-list.md → features/uni-app/audience-list.md} +0 -0
  299. /package/resource/knowledge/livekit/core-sdk/live/flutter/{live-co-guest-interaction.md → co-guest-interaction.md} +0 -0
@@ -0,0 +1,561 @@
1
+ **AtomicXCore** 提供了 [CoGuestState](https://liteav.sdk.qcloud.com/doc/product/tuikit/atomic-x/uni-app/zh/v1.0/api/index.html#module-CoGuestState) 模块,专门用于管理观众连麦的完整业务流程。您无需关心复杂的状态同步和信令交互,只需调用几个简单的方法,即可为您的直播添加强大的观众与主播音视频互动功能。
2
+
3
+ ## 核心场景
4
+
5
+ `CoGuestState` 支持以下两种最主流的连麦场景:
6
+ - **观众申请上麦**:观众主动发起连麦请求,主播在收到请求后进行同意或拒绝。
7
+
8
+ - **主播邀请上麦**:主播可以主动向直播间内的任意一位观众发起连麦邀请。
9
+
10
+ ## 实现步骤
11
+
12
+ ### 步骤1:组件集成
13
+
14
+ 请参考 开播与观看(uni-app) 集成 **AtomicXCore**,并完成 **LiveCoreView** 的接入。
15
+
16
+ ### 步骤2:实现观众申请上麦
17
+
18
+ #### 观众端实现
19
+
20
+ 作为观众,您的核心任务是**发起申请、接收结果**和**主动下麦**。
21
+ 1. **发起连麦申请**
22
+
23
+ 当用户点击界面上的"申请连麦"按钮时,调用 `applyForSeat` 方法。
24
+
25
+ ``` typescript
26
+ import { useCoGuestState } from "@/uni_modules/tuikit-atomic-x/state/CoGuestState";
27
+
28
+ const liveID = "xxx" // 您当前加入直播间的 liveID
29
+
30
+ //通过 liveID 获取 CoGuestState 的实例
31
+ const { applyForSeat } = useCoGuestState(liveID);
32
+
33
+ // 用户点击“申请连麦”
34
+ const handleRequestToConnect = () => {
35
+ applyForSeat({
36
+ liveID,
37
+ seatIndex: -1, // 申请的麦位,申请上麦传 -1, 随机分配麦位
38
+ timeout: 30, // 请求超时时间,例如 30s
39
+ })
40
+ }
41
+ ```
42
+ 2. **监听主播的响应**
43
+
44
+ 通过 `addCoGuestGuestListener` 订阅 `onGuestApplicationResponded` 事件,您可以接收到主播的处理结果。
45
+
46
+ ``` typescript
47
+ import { onMounted } from 'vue';
48
+ import { useCoGuestState } from "@/uni_modules/tuikit-atomic-x/state/CoGuestState";
49
+ import { useDeviceState } from "@/uni_modules/tuikit-atomic-x/state/DeviceState";
50
+ const liveID = "xxx" // 您当前加入直播间的 liveID
51
+ const { addCoGuestGuestListener } = useCoGuestState(liveID);
52
+ const { openLocalMicrophone, openLocalCamera } = useDeviceState(liveID);
53
+
54
+ // 在页面初始化时订阅事件
55
+ onMounted(() => {
56
+ addCoGuestGuestListener(liveID, 'onGuestApplicationResponded', handleGuestApplicationResponded)
57
+ })
58
+
59
+ const handleGuestApplicationResponded = (event) => {
60
+ const res = JSON.parse(event)
61
+ if(res.isAccept){
62
+ console.log('上麦申请被同意')
63
+ // 1.打开麦克风
64
+ openLocalMicrophone()
65
+ openLocalCamera({isFront: true })
66
+ // 2. 在此更新 UI,例如变更申请按钮状态,显示为连麦中
67
+ } else {
68
+ console.log('上麦申请被拒绝')
69
+ // 弹窗提示用户申请被拒绝
70
+ }
71
+ }
72
+ ```
73
+ 3. **主动下麦**
74
+
75
+ 当连麦观众想结束互动时,调用 `disconnect` 方法即可返回普通观众状态。
76
+
77
+ ``` typescript
78
+ import { useCoGuestState } from "@/uni_modules/tuikit-atomic-x/state/CoGuestState";
79
+ const liveID = "xxx" // 您当前加入直播间的 liveID
80
+ const { disconnect } = useCoGuestState(liveID);
81
+
82
+ // 用户点击“下麦”按钮
83
+ const leaveSeat = () => {
84
+ disconnect({
85
+ liveID,
86
+ success: () => {
87
+ console.log('下麦成功')
88
+ },
89
+ fail: (error) => {
90
+ console.log('下麦失败', error)
91
+ }
92
+ })
93
+ }
94
+ ```
95
+ 4. **(可选) 取消申请**
96
+
97
+ 如果观众在主播处理前想撤回申请,可以调用 `cancelApplication`。
98
+
99
+ ``` typescript
100
+ import { useCoGuestState } from "@/uni_modules/tuikit-atomic-x/state/CoGuestState";
101
+ const liveID = "xxx" // 您当前加入的直播间的 liveID
102
+ const { cancelApplication } = useCoGuestState(liveID);
103
+
104
+ // 用户在等待时,点击“取消申请”
105
+ const handleCancelRequest = () => {
106
+ cancelApplication({
107
+ liveID,
108
+ success: () => {
109
+ console.log('取消申请成功')
110
+ },
111
+ fail: (error) => {
112
+ console.log('取消申请失败', error)
113
+ }
114
+ })
115
+ }
116
+ ```
117
+
118
+ #### 主播端实现
119
+
120
+ 作为主播,您的核心任务是**接收申请、展示申请列表**和**处理申请**。
121
+ 1. **监听新的连麦申请**
122
+
123
+ 通过 `CoGuestHostListener` 订阅 `onGuestApplicationReceived` 事件后,您可以在有新观众申请时立即收到通知,并给出提示。
124
+
125
+ ``` typescript
126
+ import { onMounted } from 'vue';
127
+ import { useCoGuestState } from "@/uni_modules/tuikit-atomic-x/state/CoGuestState";
128
+ const liveID = "xxx" // 您当前直播间的 liveID
129
+ const { addCoGuestHostListener } = useCoGuestState(liveID);
130
+
131
+ // 在页面初始化时订阅事件
132
+ onMounted(() => {
133
+ addCoGuestHostListener(liveID, 'onGuestApplicationReceived', handleGuestApplicationReceived)
134
+ })
135
+
136
+ const handleGuestApplicationReceived = (event) => {
137
+ const res = JSON.parse(event)
138
+ console.log('收到观众的连麦申请')
139
+ // 在此更新 UI,例如在"申请列表"按钮上显示红点
140
+ }
141
+ ```
142
+ 2. **展示申请列表**
143
+
144
+ `CoGuestState` 会实时维护当前的申请者列表,数据本身是响应式数据,您可以直接在 UI 上使用。
145
+
146
+ ``` typescript
147
+ <template>
148
+ // 在这里绘制您的 “申请者列表” UI
149
+ <view v-for="audience in applicants" :key="audience?.userID">
150
+ <text>{{ audience.userName }}</text>
151
+ <text>{{ audience.userID }}</text>
152
+ </view>
153
+ </template>
154
+ <script setup>
155
+ import { useCoGuestState } from "@/uni_modules/tuikit-atomic-x/state/CoGuestState";
156
+ const liveID = "xxxx" // 您当前直播间的 liveID
157
+ const { applicants } = useCoGuestState(liveID);
158
+ </script>
159
+ ```
160
+ 3. **处理连麦申请**
161
+
162
+ 当您在列表中选择一位观众并点击"同意"或"拒绝"时,调用相应的方法。
163
+
164
+ ``` typescript
165
+ import { useCoGuestState } from "@/uni_modules/tuikit-atomic-x/state/CoGuestState";
166
+ const liveID = "xxx" // 您当前直播间的 liveID
167
+ const { acceptApplication, rejectApplication } = useCoGuestState(liveID);
168
+
169
+ // 主播点击“同意”按钮,传入申请者的 userID
170
+ const handleAccept = (userID: string) => {
171
+ acceptApplication({
172
+ liveID,
173
+ userID,
174
+ success: () => {
175
+ console.log('同意上麦申请成功')
176
+ },
177
+ fail: (error) => {
178
+ console.log('同意上麦申请失败', error)
179
+ }
180
+
181
+ })
182
+ }
183
+
184
+ // 主播点击“拒绝”按钮,传入申请者的 userID
185
+ const handleReject = (userID: string) => {
186
+ rejectApplication({
187
+ liveID,
188
+ userID,
189
+ success: () => {
190
+ console.log('拒绝上麦申请成功')
191
+ },
192
+ fail: (error) => {
193
+ console.log('拒绝上麦申请失败', error)
194
+ }
195
+ })
196
+ }
197
+ ```
198
+
199
+ ### 步骤3:实现主播邀请上麦
200
+
201
+ #### 主播端实现
202
+ 1. **向观众发起邀请**
203
+
204
+ 当主播在观众列表中选择某人并点击"邀请连麦"时,调用 `inviteToSeat` 方法。
205
+
206
+ ``` typescript
207
+ import { useCoGuestState } from "@/uni_modules/tuikit-atomic-x/state/CoGuestState";
208
+ const liveID = "xxx" // 您当前直播间的 liveID
209
+ const { inviteToSeat } = useCoGuestState(liveID);
210
+
211
+ // 主播选择观众并发起邀请
212
+ const handleInviteToSeat = (userID: string) => {
213
+ inviteToSeat({
214
+ liveID,
215
+ userID,
216
+ seatIndex: -1, // 邀请的麦位,传 -1, 随机分配麦位
217
+ timeout: 30, // 超时时间
218
+ success: () => {
219
+ console.log('已向观众发送上麦邀请成功,请等待回应...')
220
+ },
221
+ fail: (error) => {
222
+ console.log('向观众发送上麦邀请失败', error)
223
+ }
224
+ })
225
+ }
226
+ ```
227
+ 2. **监听观众的回应**
228
+
229
+ 通过 `CoGuestHostListener` 订阅 `onHostInvitationResponded` 事件。
230
+
231
+ ``` typescript
232
+ import { onMounted } from 'vue';
233
+ import { useCoGuestState } from "@/uni_modules/tuikit-atomic-x/state/CoGuestState";
234
+ const liveID = "xxx" // 您当前直播间的 liveID
235
+ const { addCoGuestHostListener } = useCoGuestState(liveID);
236
+
237
+ // 在页面初始化时订阅事件
238
+ onMounted(() => {
239
+ addCoGuestHostListener(liveID, 'onHostInvitationResponded', handleHostInvitationResponded)
240
+ })
241
+
242
+ const handleHostInvitationResponded = (event) => {
243
+ const res = JSON.parse(event)
244
+ if(res.isAccept){
245
+ console.log('观众接受了您的邀请')
246
+ } else {
247
+ console.log('观众拒绝了您的邀请')
248
+ }
249
+ }
250
+ ```
251
+
252
+ #### 观众端实现
253
+ 1. **接收主播的邀请**
254
+
255
+ 通过 `addCoGuestGuestListener` 订阅 `onHostInvitationReceived` 事件。
256
+
257
+ ``` typescript
258
+ import { onMounted } from 'vue';
259
+ import { useCoGuestState } from "@/uni_modules/tuikit-atomic-x/state/CoGuestState";
260
+ const liveID = "xxx" // 您当前加入直播间的 liveID
261
+ const { addCoGuestGuestListener } = useCoGuestState(liveID);
262
+
263
+ // 在页面初始化时订阅事件
264
+ onMounted(() => {
265
+ addCoGuestGuestListener(liveID, 'onHostInvitationReceived', handleHostInvitationReceived)
266
+ })
267
+
268
+ const handleHostInvitationReceived = (event) => {
269
+ // 在此弹出一个对话框,让用户选择“接受”或“拒绝”
270
+ }
271
+ ```
272
+ 2. **响应邀请**
273
+
274
+ 当用户在弹出的对话框中做出选择后,调用相应的方法。
275
+
276
+ ``` typescript
277
+ import { useCoGuestState } from "@/uni_modules/tuikit-atomic-x/state/CoGuestState";
278
+ import { useDeviceState } from "@/uni_modules/tuikit-atomic-x/state/DeviceState";
279
+ const { addCoGuestGuestListener, acceptInvitation, rejectInvitation } = useCoGuestState(liveID);
280
+ const { openLocalMicrophone, openLocalCamera } = useDeviceState(liveID);
281
+ const liveID = "xxx" // 您当前加入直播间的 liveID
282
+ const inviterID = ref(''); // 1. 定义 ref 存储 inviterID
283
+ onMounted(() => {
284
+ addCoGuestGuestListener(liveID, 'onHostInvitationReceived', handleHostInvitationReceived)
285
+ })
286
+
287
+ const handleHostInvitationReceived = (event) => {
288
+ const res = JSON.parse(event);
289
+ inviterID.value = res.inviter.userID;
290
+ }
291
+
292
+ // 用户点击“接受”
293
+ const handleAccept = () => {
294
+ if (!inviterID.value) {
295
+ console.error('无法接受邀请,未找到邀请者ID');
296
+ return;
297
+ }
298
+ acceptInvitation({
299
+ liveID,
300
+ inviterID: inviterID.value, // 3. 使用存储的 inviterID
301
+ success: () => {
302
+ openLocalMicrophone()
303
+ openLocalCamera({isFront: true})
304
+ },
305
+ fail: (error) => {
306
+ console.log('接受邀请失败', error)
307
+ }
308
+ })
309
+ }
310
+ ```
311
+
312
+ ### 运行效果
313
+
314
+ 当您集成以上功能实现后,请分别使用两个观众与主播进行连麦操作,观众 A 同时打开摄像头和麦克风,观众 B 只打开麦克风,运行效果如下,您可以参考下一章节 完善 UI 细节 来定制您想要的 UI 逻辑。
315
+
316
+ ## 完善 UI 细节
317
+
318
+ 您可以通过修改源码的方式,在观众连麦的视频流画面上添加自定义视图,用于显示昵称、头像等信息,或在他们关闭摄像头时提供占位图,以优化视觉体验。
319
+
320
+ ### 实现视频流画面的昵称显示
321
+
322
+ #### **实现效果**
323
+
324
+ #### **实现方式**
325
+ - **步骤 1**:创建自定义 UI 覆盖层组件 (`ParticipantOverlay.vue`)
326
+
327
+ 这个组件是我们的“UI 贴纸”,它只负责根据数据渲染 UI,不关心视频。
328
+
329
+ - 在您的 `components` 目录下,创建一个新文件 `ParticipantOverlay.vue`。
330
+
331
+ - 将以下代码复制到文件中。
332
+
333
+ ``` typescript
334
+ <template>
335
+ <view class="overlay-container">
336
+ <!-- 遍历 seatList,为每个麦位成员创建独立的UI容器 -->
337
+ <view
338
+ v-for="participant in seatList"
339
+ :key="participant.userInfo.userID"
340
+ class="participant-ui-container"
341
+ :style="getParticipantStyle(participant)"
342
+ >
343
+ <!-- 条件渲染:根据摄像头状态显示不同UI -->
344
+ <!-- 1. 当摄像头关闭时,显示居中的头像和昵称 -->
345
+ <view v-if="participant.userInfo.cameraStatus === 'OFF'" class="avatar-placeholder">
346
+ <image class="avatar-image" :src="participant.userInfo.userAvatar || '/static/default-avatar.png'" mode="aspectFill"></image>
347
+ <text class="avatar-name">{{ participant.userInfo.userName || participant.userInfo.userID }}</text>
348
+ </view>
349
+ <!-- 2. 当摄像头开启时,显示左下角的昵称条 -->
350
+ <view v-if="participant.userInfo.cameraStatus === 'ON'" class="nickname-bar">
351
+ <text class="nickname-text">{{ participant.userInfo.userName || participant.userInfo.userID }}</text>
352
+ </view>
353
+ </view>
354
+ </view>
355
+ </template>
356
+ <script setup>
357
+ import { computed } from 'vue';
358
+ // 1. 接收来自父组件的核心数据:seatList 和 scale
359
+ const props = defineProps({
360
+ seatList: {
361
+ type: Array,
362
+ default: () => []
363
+ },
364
+ scale: {
365
+ type: Object,
366
+ default: () => ({ scaleX: 1, scaleY: 1 })
367
+ }
368
+ });
369
+
370
+ // 2. 定义一个方法来计算每个成员UI容器的精确位置和大小
371
+ const getParticipantStyle = (participant) => {
372
+ if (!participant || !participant.region) return {};
373
+ return {
374
+ position: 'absolute',
375
+ left: `${participant.region.x * props.scale.scaleX}px`,
376
+ top: `${participant.region.y * props.scale.scaleY}px`,
377
+ width: `${participant.region.w * props.scale.scaleX}px`,
378
+ height: `${participant.region.h * props.scale.scaleY}px`,
379
+ };
380
+ };
381
+ </script>
382
+
383
+ <style scoped>
384
+ .overlay-container {
385
+ pointer-events: none;
386
+ }
387
+
388
+ .participant-ui-container {
389
+ overflow: hidden;
390
+ }
391
+ .avatar-placeholder {
392
+ display: flex;
393
+ flex-direction: column;
394
+ justify-content: center;
395
+ align-items: center;
396
+ background-color: #2E323A;
397
+ }
398
+ .avatar-image {
399
+ width: 160rpx;
400
+ height: 160rpx;
401
+ border-radius: 80rpx;
402
+ }
403
+ .avatar-name {
404
+ margin-top: 20rpx;
405
+ font-size: 28rpx;
406
+ color: #FFFFFF;
407
+ }
408
+ .nickname-bar {
409
+ position: absolute;
410
+ left: 10rpx;
411
+ bottom: 10rpx;
412
+ background-color: rgba(0, 0, 0, 0.5);
413
+ padding: 4rpx 16rpx;
414
+ border-radius: 20rpx;
415
+ }
416
+ .nickname-text {
417
+ color: #FFFFFF;
418
+ font-size: 24rpx;
419
+ }
420
+ </style>
421
+ ```
422
+ - **步骤 2**:在直播间页面中组合所有组件
423
+
424
+ 这是将视频层和 `UI` 层“叠”在一起的关键步骤,同时需要解决 `nvue` 的布局问题。
425
+
426
+ - 打开您的直播间页面文件
427
+
428
+ - 按照以下结构和样式进行修改。
429
+
430
+ ``` typescript
431
+ <template>
432
+ <view class="page-container">
433
+ <view class="live-container">
434
+ <!-- 底层:视频渲染层 -->
435
+ <LiveCoreView
436
+ :liveID="xxx" // 对应直播间的 liveID
437
+ :viewType="xxx" // 主播端: PUSH_VIEW, 观众端: PLAY_VIEW
438
+ class="video-layer"
439
+ />
440
+ <!-- 上层:自定义UI覆盖层 -->
441
+ <ParticipantOverlay
442
+ :seatList="seatList"
443
+ :scale="scale"
444
+ class="ui-layer"
445
+ />
446
+ </view>
447
+ <!-- 页面的其他UI,如底部的操作栏 -->
448
+ <!-- <view class="bottom-controls">...</view> -->
449
+ </view>
450
+ </template>
451
+
452
+ <script setup>
453
+ import { ref, onMounted } from 'vue';
454
+ import ParticipantOverlay from '@/components/ParticipantOverlay.vue';
455
+ import { useLiveSeatState } from '@/uni_modules/tuikit-atomic-x/state/LiveSeatState';
456
+ const liveID = 'xxx' // 当前直播间的 liveID
457
+ const { seatList } = useLiveSeatState(liveID);
458
+ const scale = ref({ scaleX: 1, scaleY: 1 });
459
+
460
+ onMounted(() => {
461
+ // 在此获取并设置正确的 scale 值。
462
+ // 这是保证UI对齐的关键。请根据您的项目实际逻辑实现。
463
+ // 示例:
464
+ const { windowWidth } = uni.getSystemInfoSync();
465
+ const designWidth = 750; // rpx 设计稿宽度
466
+ scale.value.scaleX = windowWidth / designWidth;
467
+ scale.value.scaleY = scale.value.scaleX;
468
+ });
469
+ </script>
470
+
471
+ <style scoped>
472
+ .page-container {
473
+ flex: 1;
474
+ background-color: #000;
475
+ }
476
+
477
+ .live-container {
478
+ flex: 1;
479
+ position: relative;
480
+ }
481
+ .video-layer,
482
+ .ui-layer {
483
+ position: absolute;
484
+ top: 0;
485
+ left: 0;
486
+ right: 0;
487
+ bottom: 0;
488
+ }
489
+
490
+ .video-layer {
491
+ z-index: 1;
492
+ }
493
+
494
+ .ui-layer {
495
+ z-index: 2;
496
+ }
497
+ </style>
498
+ ```
499
+
500
+ ## API 文档
501
+
502
+ 关于 [CoGuestState](https://liteav.sdk.qcloud.com/doc/product/tuikit/atomic-x/uni-app/zh/v1.0/api/index.html#module-CoGuestState) 及其相关类的所有公开接口、属性和方法的详细信息,请您参阅 AtomicXCore 框架的官方 API 文档。本指南使用到的相关 State 如下:
503
+
504
+ |**State**|**功能描述**|**API 文档**|
505
+ |---------|---------|---------|
506
+ |DeviceState|音视频设备控制:麦克风(开关 / 音量)、摄像头(开关 / 切换 / 画质)、屏幕共享,设备状态实时监听。|[API 文档](https://liteav.sdk.qcloud.com/doc/product/tuikit/atomic-x/uni-app/zh/v1.0/api/index.html#module-DeviceState)|
507
+ |CoGuestState|观众连麦管理:连麦申请 / 邀请 / 同意 / 拒绝,连麦成员权限控制(麦克风 / 摄像头),状态同步。|[API 文档](https://liteav.sdk.qcloud.com/doc/product/tuikit/atomic-x/uni-app/zh/v1.0/api/index.html#module-CoGuestState)|
508
+ |LiveSeatState|麦位信息管理:麦位列表管理、麦序管理。|[API 文档](https://liteav.sdk.qcloud.com/doc/product/tuikit/atomic-x/uni-app/zh/v1.0/api/index.html#module-LiveSeatState)|
509
+
510
+ ## 常见问题
511
+
512
+ ### 组件设置宽高不生效
513
+ - 问题描述: 将 `LiveCoreView` 或其父容器的 `width` 和 `height` 设置为 100% 后,组件没有按预期铺满整个屏幕或指定区域,甚至完全不显示。
514
+
515
+ - 原因分析: 文档明确指出,`LiveCoreView` 是原生组件,必须在 `nvue` 页面中使用。`nvue` 的布局引擎(`Weex`)与网页的 `CSS` 布局规则不同,它不支持百分比宽高,除非其父容器有一个由 `flexbox` 或具体数值计算出的明确尺寸。如果父容器的高度是“自适应”的,那么 `height: 100%` 就没有参考基准,从而失效。
516
+
517
+ - 解决方案:
518
+
519
+ - 使用 `Flex` 布局:从页面的最外层根 `<view>` 开始,使用 `flex: 1` 样式,让容器逐层向下“撑满”可用空间。
520
+
521
+ - 使用绝对定位:对于需要覆盖的层(例如 `LiveCoreView` 和自定义的 `ParticipantOverlay`),将其父容器设置为 `position: relative` 和 `flex: 1`,然后将这些覆盖层设置为 `position: absolute` 并配合 `top: 0; left: 0; right: 0; bottom: 0;`,让它们从四个方向贴紧父容器边缘,这是在 `nvue` 中实现“占满”效果最可靠的方法。
522
+
523
+ ### 自定义的昵称/头像 UI 与视频画面位置错乱
524
+ - 问题描述: 按照“完善 `UI` 细节”章节添加了 `ParticipantOverlay` 组件后,显示的昵称条或头像占位图没有精确地覆盖在对应的视频小窗上,存在偏移或尺寸不匹配。
525
+
526
+ - 原因分析: UI 的精准对齐依赖于 `scale` 这个缩放比例对象。`ParticipantOverlay` 组件内部通过 `participant.region.x * props.scale.scaleX` 来计算每个 `UI` 元素的位置。如果 `scale` 对象的值不正确或没有传递给组件,计算出的位置自然会是错误的。
527
+
528
+ - 解决方案:
529
+
530
+ - 确保 `scale` 值正确计算:必须在父页面中正确计算 `scale` 值。通常的计算方式是:`scaleX = 屏幕实际宽度 / 设计稿宽度。`
531
+
532
+ - 确保 `scale` 值正确传递:将计算好的 `scale` 对象传递给 `<ParticipantOverlay>` 组件。
533
+
534
+ ### 连麦功能无响应(申请/邀请/接受/拒绝均失败)
535
+ - 问题描述: 调用 `applyForSeat`, `acceptApplication`, `inviteToSeat` 等 `CoGuestState` 提供的方法后,没有任何效果,也没有收到预期的回调。
536
+
537
+ - 原因分析: `CoGuestState` 的所有功能都与特定的直播间绑定。最常见的原因是初始化 `CoGuestState` 实例或调用其方法时,传入的 `liveID` 不正确、为 `null` 或与当前用户实际所在的直播间不符。
538
+
539
+ - 解决方案:
540
+
541
+ - 校验 `liveID`:确保在调用 `useCoGuestState(liveID)` 和所有相关方法(例如 `applyForSeat({ liveID, ... })`)时,使用的 `liveID` 是当前直播间真实且有效的 `ID`。
542
+
543
+ - 保持 `liveID` 一致:在整个页面的生命周期中,所有与 `CoGuestState` 相关的操作都必须使用同一个 `liveID`。
544
+
545
+ ### 无法接收到连麦相关的事件通知
546
+ - 问题描述: 观众端收不到主播的邀请(`onHostInvitationReceived`),或者主播端收不到观众的申请(`onGuestApplicationReceived`)。
547
+
548
+ - 原因分析: 没有正确注册相应的事件监听器。`CoGuestState` 通过监听器模式来分发事件,如果忘记添加监听器,应用将无法对连麦事件做出反应。
549
+
550
+ - 解决方案: 确保在页面初始化时(例如在 `onMounted` 钩子中),根据角色(主播/观众)调用相应的方法来注册监听器:
551
+
552
+ - 主播端:调用 `addCoGuestHostListener` 来监听 `onGuestApplicationReceived`、`onHostInvitationResponded` 等事件。
553
+
554
+ - 观众端:调用 `addCoGuestGuestListener` 来监听 `onGuestApplicationResponded`、`onHostInvitationReceived` 等事件。
555
+
556
+ ### 连麦成功后,对方看不到我的画面或听不到我的声音
557
+ - 问题描述: 作为观众,上麦申请被主播同意后,虽然麦位列表中有我,但我的视频画面没有出现,或者麦克风图标显示为关闭状态。
558
+
559
+ - 原因分析: 连麦成功(即进入麦位列表)和推流(即打开摄像头/麦克风)是两个独立的操作。`CoGuestState` 只负责将用户“搬上”麦位,但不会自动打开用户的媒体设备。
560
+
561
+ - 解决方案: 在确认上麦成功的逻辑回调中(例如 `onGuestApplicationResponded` 回调中 `isAccept` 为 `true` 时,或调用 `acceptInvitation` 的 `success` 回调时),必须手动调用 `DeviceState` 提供的方法来开启媒体设备。