@tencent-rtc/mcp 1.6.4 → 1.6.6

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 (251) hide show
  1. package/knowledge/chunker.js +83 -54
  2. package/knowledge/path-meta.js +179 -26
  3. package/knowledge/search/exact-lookup.js +168 -10
  4. package/knowledge/search/filter-pool.js +73 -19
  5. package/knowledge/search/product-scope-intent.js +2 -2
  6. package/knowledge/search/requires-framework.js +2 -2
  7. package/knowledge/search/search-knowledge.js +247 -61
  8. package/package.json +1 -1
  9. package/resource/index/manifest.json +1 -1
  10. package/resource/integration/callkit/preset/android/integration.md +2 -4
  11. package/resource/integration/callkit/preset/flutter/integration.md +4 -5
  12. package/resource/integration/callkit/preset/ios/integration.md +1 -4
  13. package/resource/integration/callkit/preset/react/integration.md +13 -20
  14. package/resource/integration/callkit/preset/vue/integration.md +14 -21
  15. package/resource/integration/chat/preset/android/integration.md +6 -9
  16. package/resource/integration/chat/preset/flutter/integration.md +9 -12
  17. package/resource/integration/chat/preset/ios/integration.md +2 -4
  18. package/resource/integration/chat/preset/react/integration.md +0 -10
  19. package/resource/integration/livekit/preset/live/android/live-audience-integration.md +129 -0
  20. package/resource/integration/livekit/preset/live/android/live-host-integration.md +219 -0
  21. package/resource/integration/livekit/preset/live/android/live-list-integration.md +261 -0
  22. package/resource/integration/livekit/preset/live/android/prepare-integration.md +254 -0
  23. package/resource/integration/livekit/preset/live/ios/live-audience-integration.md +202 -0
  24. package/resource/integration/livekit/preset/live/ios/live-host-integration.md +369 -0
  25. package/resource/integration/livekit/preset/live/ios/live-list-integration.md +229 -0
  26. package/resource/integration/livekit/preset/live/ios/prepare-integration.md +204 -0
  27. package/resource/integration/livekit/preset/live/vue/live-list-integration.md +0 -3
  28. package/resource/integration/livekit/preset/live/vue/live-player-desk-integration.md +0 -5
  29. package/resource/integration/livekit/preset/live/vue/live-player-h5-integration.md +0 -6
  30. package/resource/integration/livekit/preset/live/vue/live-pusher-integration.md +5 -10
  31. package/resource/integration/roomkit/preset/vue/integration.md +0 -4
  32. package/resource/knowledge/callkit/best-practice/web/callengine-invitation.md +80 -0
  33. package/resource/knowledge/callkit/best-practice/web/callengine-log-control.md +24 -0
  34. package/resource/knowledge/callkit/best-practice/web/callkit-call-vs-calls.md +116 -0
  35. package/resource/knowledge/callkit/core-sdk/android/answer-call.md +7 -8
  36. package/resource/knowledge/callkit/core-sdk/android/make-call.md +5 -7
  37. package/resource/knowledge/callkit/core-sdk/android/offline-push.md +3 -5
  38. package/resource/knowledge/callkit/core-sdk/flutter/answer-call.md +2 -6
  39. package/resource/knowledge/callkit/core-sdk/flutter/make-call.md +2 -6
  40. package/resource/knowledge/callkit/core-sdk/flutter/offline-push.md +4 -9
  41. package/resource/knowledge/callkit/core-sdk/ios/answer-call.md +1 -4
  42. package/resource/knowledge/callkit/core-sdk/ios/make-call.md +8 -11
  43. package/resource/knowledge/callkit/core-sdk/ios/offline-push.md +17 -23
  44. package/resource/knowledge/callkit/core-sdk/web/call-engine.md +33 -0
  45. package/resource/knowledge/callkit/core-sdk/web/call-event.md +327 -0
  46. package/resource/knowledge/callkit/core-sdk/web/callengine-api-overview.md +33 -0
  47. package/resource/knowledge/callkit/faq/android.md +0 -2
  48. package/resource/knowledge/callkit/faq/error-code.md +0 -2
  49. package/resource/knowledge/callkit/faq/flutter.md +2 -2
  50. package/resource/knowledge/callkit/faq/ios.md +3 -5
  51. package/resource/knowledge/callkit/faq/web.md +2 -3
  52. package/resource/knowledge/callkit/preset/android/api.md +2 -5
  53. package/resource/knowledge/callkit/preset/ios/api.md +0 -2
  54. package/resource/knowledge/callkit/preset/react/api.md +445 -0
  55. package/resource/knowledge/callkit/preset/react/uikit-api-reference.md +445 -0
  56. package/resource/knowledge/callkit/preset/vue/api.md +465 -0
  57. package/resource/knowledge/callkit/preset/vue/uikit-api-reference.md +465 -0
  58. package/resource/knowledge/chat/best-practice/web/image-message-url-handling.md +16 -0
  59. package/resource/knowledge/chat/preset/android/features/chat-setting.md +1 -1
  60. package/resource/knowledge/chat/preset/android/features/conversation-list.md +1 -1
  61. package/resource/knowledge/chat/preset/android/features/language.md +0 -1
  62. package/resource/knowledge/chat/preset/android/features/message-input.md +1 -1
  63. package/resource/knowledge/chat/preset/android/features/message-list.md +2 -3
  64. package/resource/knowledge/chat/preset/android/features/search.md +0 -1
  65. package/resource/knowledge/chat/preset/android/features/theme.md +1 -1
  66. package/resource/knowledge/chat/preset/android-view/integration.md +3 -11
  67. package/resource/knowledge/chat/preset/flutter/features/conversation-list.md +0 -1
  68. package/resource/knowledge/chat/preset/flutter/features/message-list.md +1 -2
  69. package/resource/knowledge/chat/preset/flutter/features/search.md +5 -6
  70. package/resource/knowledge/chat/preset/flutter/features/theme.md +2 -2
  71. package/resource/knowledge/chat/preset/ios/features/chat-setting.md +1 -1
  72. package/resource/knowledge/chat/preset/ios/features/conversation-list.md +1 -2
  73. package/resource/knowledge/chat/preset/ios/features/message-list.md +1 -2
  74. package/resource/knowledge/chat/preset/ios/features/search.md +0 -1
  75. package/resource/knowledge/chat/preset/ios-uikit/integration.md +13 -15
  76. package/resource/knowledge/chat/preset/react/features/conversation-list.md +5 -5
  77. package/resource/knowledge/chat/preset/react/features/message-input.md +2 -3
  78. package/resource/knowledge/chat/preset/react/features/search.md +0 -1
  79. package/resource/knowledge/chat/preset/react/features/theme.md +0 -1
  80. package/resource/knowledge/chat/urls/sdk/android.md +3 -3
  81. package/resource/knowledge/chat/urls/sdk/flutter.md +3 -3
  82. package/resource/knowledge/chat/urls/sdk/ios.md +3 -3
  83. package/resource/knowledge/chat/urls/sdk/web.md +3 -3
  84. package/resource/knowledge/livekit/core-sdk/api-reference/android/AudioEffectStore.md +7 -14
  85. package/resource/knowledge/livekit/core-sdk/api-reference/android/BarrageStore.md +5 -8
  86. package/resource/knowledge/livekit/core-sdk/api-reference/android/BattleStore.md +15 -18
  87. package/resource/knowledge/livekit/core-sdk/api-reference/android/CameraView.md +1 -2
  88. package/resource/knowledge/livekit/core-sdk/api-reference/android/CoGuestStore.md +15 -20
  89. package/resource/knowledge/livekit/core-sdk/api-reference/android/CoHostStore.md +10 -13
  90. package/resource/knowledge/livekit/core-sdk/api-reference/android/DeviceStore.md +2 -4
  91. package/resource/knowledge/livekit/core-sdk/api-reference/android/GiftStore.md +4 -6
  92. package/resource/knowledge/livekit/core-sdk/api-reference/android/LikeStore.md +2 -4
  93. package/resource/knowledge/livekit/core-sdk/api-reference/android/LiveAudienceStore.md +2 -4
  94. package/resource/knowledge/livekit/core-sdk/api-reference/android/LiveCoreView.md +1 -2
  95. package/resource/knowledge/livekit/core-sdk/api-reference/android/LiveSeatStore.md +8 -10
  96. package/resource/knowledge/livekit/core-sdk/api-reference/android/LoginStore.md +5 -7
  97. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/AudioEffectStore.md +7 -14
  98. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/BarrageStore.md +6 -9
  99. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/BaseBeautyStore.md +1 -2
  100. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/BattleStore.md +15 -18
  101. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/CoGuestStore.md +15 -20
  102. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/CoHostStore.md +10 -13
  103. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/DeviceStore.md +2 -4
  104. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/GiftStore.md +4 -6
  105. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LikeStore.md +2 -4
  106. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LiveAudienceStore.md +2 -4
  107. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LiveCoreView.md +1 -2
  108. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LiveSeatStore.md +8 -10
  109. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LoginStore.md +3 -5
  110. package/resource/knowledge/livekit/core-sdk/api-reference/ios/AudioEffectStore.md +7 -14
  111. package/resource/knowledge/livekit/core-sdk/api-reference/ios/BarrageStore.md +5 -8
  112. package/resource/knowledge/livekit/core-sdk/api-reference/ios/BaseBeautyStore.md +1 -2
  113. package/resource/knowledge/livekit/core-sdk/api-reference/ios/BattleStore.md +6 -9
  114. package/resource/knowledge/livekit/core-sdk/api-reference/ios/CoGuestStore.md +5 -10
  115. package/resource/knowledge/livekit/core-sdk/api-reference/ios/CoHostStore.md +3 -6
  116. package/resource/knowledge/livekit/core-sdk/api-reference/ios/DeviceStore.md +2 -4
  117. package/resource/knowledge/livekit/core-sdk/api-reference/ios/GiftStore.md +4 -6
  118. package/resource/knowledge/livekit/core-sdk/api-reference/ios/LikeStore.md +2 -4
  119. package/resource/knowledge/livekit/core-sdk/api-reference/ios/LiveAudienceStore.md +2 -4
  120. package/resource/knowledge/livekit/core-sdk/api-reference/ios/LiveCoreView.md +1 -2
  121. package/resource/knowledge/livekit/core-sdk/api-reference/ios/LiveSeatStore.md +4 -6
  122. package/resource/knowledge/livekit/core-sdk/api-reference/ios/LoginStore.md +3 -5
  123. package/resource/knowledge/livekit/core-sdk/api-reference/{web → vue}/index.md +24 -24
  124. package/resource/knowledge/livekit/core-sdk/{voice/android/voice-audio-effect.md → features/android/audio-effect.md} +1 -2
  125. package/resource/knowledge/livekit/core-sdk/{live/android/live-gift.md → features/android/gift.md} +2 -3
  126. package/resource/knowledge/livekit/core-sdk/{voice/android/voice-room-list.md → features/android/live-list.md} +2 -4
  127. package/resource/knowledge/livekit/core-sdk/{live/flutter/live-audio-effect.md → features/flutter/audio-effect.md} +0 -2
  128. package/resource/knowledge/livekit/core-sdk/{voice/flutter/voice-barrage.md → features/flutter/barrage.md} +2 -2
  129. package/resource/knowledge/livekit/core-sdk/{live/flutter/live-gift.md → features/flutter/gift.md} +2 -3
  130. package/resource/knowledge/livekit/core-sdk/{voice/flutter/voice-room-list.md → features/flutter/live-list.md} +1 -1
  131. package/resource/knowledge/livekit/core-sdk/{voice/ios/voice-audience-list.md → features/ios/audience-list.md} +1 -2
  132. package/resource/knowledge/livekit/core-sdk/{voice/ios/voice-audio-effect.md → features/ios/audio-effect.md} +1 -3
  133. package/resource/knowledge/livekit/core-sdk/{live/ios/live-base-beauty.md → features/ios/base-beauty.md} +2 -2
  134. package/resource/knowledge/livekit/core-sdk/{voice/ios/voice-gift.md → features/ios/gift.md} +2 -3
  135. package/resource/knowledge/livekit/core-sdk/{voice/ios/voice-room-list.md → features/ios/live-list.md} +2 -4
  136. package/resource/knowledge/livekit/core-sdk/live/android/{live-co-guest-interaction.md → co-guest-interaction.md} +0 -1
  137. package/resource/knowledge/livekit/core-sdk/live/android/{live-host-interaction.md → host-interaction.md} +5 -7
  138. package/resource/knowledge/livekit/core-sdk/live/android/{live-integration.md → integration.md} +3 -6
  139. package/resource/knowledge/livekit/core-sdk/live/flutter/{live-co-guest-interaction.md → co-guest-interaction.md} +1 -1
  140. package/resource/knowledge/livekit/core-sdk/live/flutter/{live-host-interaction.md → host-interaction.md} +0 -2
  141. package/resource/knowledge/livekit/core-sdk/live/flutter/{live-integration.md → integration.md} +1 -4
  142. package/resource/knowledge/livekit/core-sdk/live/ios/{live-co-guest-interaction.md → co-guest-interaction.md} +0 -1
  143. package/resource/knowledge/livekit/core-sdk/live/ios/{live-host-interaction.md → host-interaction.md} +2 -4
  144. package/resource/knowledge/livekit/core-sdk/live/ios/{live-integration.md → integration.md} +2 -5
  145. package/resource/knowledge/livekit/core-sdk/voice/android/{voice-host-interaction.md → host-interaction.md} +3 -5
  146. package/resource/knowledge/livekit/core-sdk/voice/android/{voice-integration.md → integration.md} +3 -6
  147. package/resource/knowledge/livekit/core-sdk/voice/flutter/{voice-co-guest-interaction.md → co-guest-interaction.md} +1 -2
  148. package/resource/knowledge/livekit/core-sdk/voice/flutter/{voice-integration.md → integration.md} +6 -9
  149. package/resource/knowledge/livekit/core-sdk/voice/ios/{voice-co-guest-interaction.md → co-guest-interaction.md} +2 -2
  150. package/resource/knowledge/livekit/core-sdk/voice/ios/{voice-host-interaction.md → host-interaction.md} +4 -6
  151. package/resource/knowledge/livekit/core-sdk/voice/ios/{voice-integration.md → integration.md} +1 -4
  152. package/resource/knowledge/livekit/preset/live/vue/features/barrage.md +0 -2
  153. package/resource/knowledge/push/api-reference/android.md +123 -0
  154. package/resource/knowledge/push/api-reference/flutter.md +176 -0
  155. package/resource/knowledge/push/api-reference/harmonyos.md +138 -0
  156. package/resource/knowledge/push/api-reference/ios.md +176 -0
  157. package/resource/knowledge/push/api-reference/react-native.md +147 -0
  158. package/resource/knowledge/push/api-reference/uni-app.md +147 -0
  159. package/resource/knowledge/push/api-reference/unity.md +119 -0
  160. package/resource/knowledge/push/api-reference/unreal-engine.md +123 -0
  161. package/resource/knowledge/push/config/android.md +4 -7
  162. package/resource/knowledge/push/config/harmonyos.md +0 -3
  163. package/resource/knowledge/push/config/ios.md +12 -20
  164. package/resource/knowledge/push/config/react-native.md +18 -26
  165. package/resource/knowledge/push/config/unity.md +20 -28
  166. package/resource/knowledge/push/config/unreal-engine.md +21 -29
  167. package/resource/knowledge/push/integration/android.md +6 -8
  168. package/resource/knowledge/push/integration/flutter.md +6 -9
  169. package/resource/knowledge/push/integration/harmonyos.md +1 -0
  170. package/resource/knowledge/push/integration/ios.md +7 -9
  171. package/resource/knowledge/push/integration/react-native.md +9 -13
  172. package/resource/knowledge/push/integration/uni-app.md +7 -7
  173. package/resource/knowledge/push/integration/unity.md +10 -13
  174. package/resource/knowledge/push/integration/unreal-engine.md +6 -9
  175. package/resource/knowledge/push/overview/prepare.md +2 -2
  176. package/resource/knowledge/roomkit/core-sdk/android/call-user-to-room.md +3 -3
  177. package/resource/knowledge/roomkit/core-sdk/android/capability-matrix.md +46 -0
  178. package/resource/knowledge/roomkit/core-sdk/android/room-participant-state.md +1 -1
  179. package/resource/knowledge/roomkit/core-sdk/android/room-state.md +2 -2
  180. package/resource/knowledge/roomkit/core-sdk/android/schedule-room.md +6 -6
  181. package/resource/knowledge/roomkit/core-sdk/android/unsupported-features.md +79 -0
  182. package/resource/knowledge/roomkit/core-sdk/flutter/capability-matrix.md +46 -0
  183. package/resource/knowledge/roomkit/core-sdk/flutter/room-participant-state.md +1 -1
  184. package/resource/knowledge/roomkit/core-sdk/flutter/unsupported-features.md +79 -0
  185. package/resource/knowledge/roomkit/core-sdk/ios/capability-matrix.md +46 -0
  186. package/resource/knowledge/roomkit/core-sdk/ios/room-participant-state.md +1 -1
  187. package/resource/knowledge/roomkit/core-sdk/ios/unsupported-features.md +79 -0
  188. package/resource/knowledge/roomkit/preset/android/integration.md +5 -7
  189. package/resource/knowledge/roomkit/preset/flutter/integration.md +2 -7
  190. package/resource/knowledge/roomkit/preset/ios/integration.md +3 -9
  191. package/resource/knowledge/roomkit/preset/react/integration.md +12 -16
  192. package/resource/knowledge/trtc/android/TRTCCloud.md +154 -238
  193. package/resource/knowledge/trtc/android/TRTCCloudDef.md +133 -134
  194. package/resource/knowledge/trtc/android/TRTCCloudListener.md +86 -120
  195. package/resource/knowledge/trtc/android/TRTCStatistics.md +10 -10
  196. package/resource/knowledge/trtc/android/TXAudioEffectManager.md +10 -30
  197. package/resource/knowledge/trtc/android/TXBeautyManager.md +25 -25
  198. package/resource/knowledge/trtc/android/TXDeviceManager.md +2 -2
  199. package/resource/knowledge/trtc/android/TXLiteAVCode.md +12 -12
  200. package/resource/knowledge/trtc/c++/ITRTCCloud.md +166 -261
  201. package/resource/knowledge/trtc/c++/ITRTCStatistics.md +12 -12
  202. package/resource/knowledge/trtc/c++/ITXAudioEffectManager.md +10 -30
  203. package/resource/knowledge/trtc/c++/ITXDeviceManager.md +9 -11
  204. package/resource/knowledge/trtc/c++/TRTCCloudCallback.md +96 -130
  205. package/resource/knowledge/trtc/c++/TRTCTypeDef.md +122 -123
  206. package/resource/knowledge/trtc/c++/TXLiteAVCode.md +12 -12
  207. package/resource/knowledge/trtc/ios/TRTCCloud.md +168 -255
  208. package/resource/knowledge/trtc/ios/TRTCCloudDef.md +124 -125
  209. package/resource/knowledge/trtc/ios/TRTCCloudDelegate.md +89 -124
  210. package/resource/knowledge/trtc/ios/TRTCStatistics.md +10 -10
  211. package/resource/knowledge/trtc/ios/TXAudioEffectManager.md +9 -28
  212. package/resource/knowledge/trtc/ios/TXBeautyManager.md +25 -25
  213. package/resource/knowledge/trtc/ios/TXDeviceManager.md +9 -11
  214. package/resource/knowledge/trtc/ios/TXLiteAVCode.md +12 -12
  215. package/server.js +21 -21
  216. package/tools/common/finalize_answer.js +1 -1
  217. package/tools/common/present_framework_choice.js +2 -2
  218. package/tools/common/search_trtc_knowledge.js +3 -3
  219. package/tools/common/submit_feedback.js +1 -1
  220. package/tools/definitions/get_native_live_uikit_integration_def.js +61 -0
  221. package/tools/definitions/get_native_livekit_core_integration_def.js +3 -3
  222. package/tools/definitions/present_framework_choice_def.js +2 -2
  223. package/tools/definitions/search_trtc_knowledge_def.js +5 -5
  224. package/tools/index.js +2 -0
  225. package/tools/live/get_native_live_uikit_integration.js +69 -0
  226. package/tools/live/get_native_livekit_core_integration.js +6 -6
  227. package/utils/report-cls-client.js +1 -1
  228. package/utils/report-es-client.js +1 -1
  229. package/resource/knowledge/callkit/preset/web/api.md +0 -83
  230. package/resource/knowledge/livekit/core-sdk/live/android/live-audio-effect.md +0 -226
  231. package/resource/knowledge/livekit/core-sdk/live/android/live-live-list.md +0 -438
  232. package/resource/knowledge/livekit/core-sdk/live/flutter/live-barrage.md +0 -490
  233. package/resource/knowledge/livekit/core-sdk/live/flutter/live-live-list.md +0 -726
  234. package/resource/knowledge/livekit/core-sdk/live/ios/live-audience-list.md +0 -264
  235. package/resource/knowledge/livekit/core-sdk/live/ios/live-audio-effect.md +0 -216
  236. package/resource/knowledge/livekit/core-sdk/live/ios/live-gift.md +0 -407
  237. package/resource/knowledge/livekit/core-sdk/live/ios/live-live-list.md +0 -349
  238. package/resource/knowledge/livekit/core-sdk/voice/android/voice-audience-list.md +0 -269
  239. package/resource/knowledge/livekit/core-sdk/voice/android/voice-barrage.md +0 -456
  240. package/resource/knowledge/livekit/core-sdk/voice/android/voice-gift.md +0 -455
  241. package/resource/knowledge/livekit/core-sdk/voice/flutter/voice-audience-list.md +0 -260
  242. package/resource/knowledge/livekit/core-sdk/voice/flutter/voice-audio-effect.md +0 -598
  243. package/resource/knowledge/livekit/core-sdk/voice/flutter/voice-gift.md +0 -424
  244. package/resource/knowledge/livekit/core-sdk/voice/ios/voice-barrage.md +0 -408
  245. /package/resource/knowledge/livekit/core-sdk/{live/android/live-audience-list.md → features/android/audience-list.md} +0 -0
  246. /package/resource/knowledge/livekit/core-sdk/{live/android/live-barrage.md → features/android/barrage.md} +0 -0
  247. /package/resource/knowledge/livekit/core-sdk/{live/android/live-base-beauty.md → features/android/base-beauty.md} +0 -0
  248. /package/resource/knowledge/livekit/core-sdk/{live/flutter/live-audience-list.md → features/flutter/audience-list.md} +0 -0
  249. /package/resource/knowledge/livekit/core-sdk/{live/flutter/live-base-beauty.md → features/flutter/base-beauty.md} +0 -0
  250. /package/resource/knowledge/livekit/core-sdk/{live/ios/live-barrage.md → features/ios/barrage.md} +0 -0
  251. /package/resource/knowledge/livekit/core-sdk/voice/android/{voice-co-guest-interaction.md → co-guest-interaction.md} +0 -0
@@ -0,0 +1,254 @@
1
+ ## Feature Overview
2
+
3
+ **TUILiveKit** is a comprehensive live-streaming component. Once integrated, it allows you to quickly implement the following key functional modules for your Android application:
4
+
5
+ |**Host Prepare Page**|**Host Streaming Page**|**Live Stream List**|**Audience Viewing Page**|
6
+ |---------|---------|---------|---------|
7
+ |||||
8
+
9
+ ## **Preparations**
10
+
11
+ ### Activate Service
12
+
13
+ Before using **TUILiveKit**, please refer to Activate Service to get the TUILiveKit trial version or activate the paid version.
14
+
15
+ ### Environment Requirements
16
+ - **Android** **Studio Arctic Fox (2020.3.1)** or a later version.
17
+
18
+ - **Gradle 7.0** or a later version.
19
+
20
+ - **Android** **5.0** or a later version.
21
+
22
+ ## Code Integration
23
+
24
+ ### **Step 1.** Download the TUILiveKit Component
25
+
26
+ Clone or download the code from [GitHub](https://github.com/Tencent-RTC/TUIKit_Android). Then, copy the `live` and `atomic_x` directory into the same directory as your current Android project's `app` folder.
27
+
28
+ ### Step 2. Project Configuration
29
+
30
+ #### 1. Configure the JitPack Repository
31
+
32
+ In your project's **root directory,** open the `settings.gradle.kts` or `settings.gradle` file and add the JitPack repository address. The third-party library for playing gift SVG animations is hosted on JitPack, so you must include this repository to resolve dependencies.
33
+
34
+ 【settings.gradle.kts】
35
+ ``` java
36
+ dependencyResolutionManagement {
37
+ repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
38
+ repositories {
39
+ google()
40
+ mavenCentral()
41
+
42
+ // Add JitPack repository url
43
+ maven { url = uri("https://jitpack.io") }
44
+ }
45
+ }
46
+ ```
47
+
48
+ 【settings.gradle】
49
+ ``` java
50
+ dependencyResolutionManagement {
51
+ repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
52
+ repositories {
53
+ google()
54
+ mavenCentral()
55
+
56
+ // Add JitPack repository url
57
+ maven { url 'https://jitpack.io' }
58
+ }
59
+ }
60
+ ```
61
+
62
+ #### 2. Import the TUILiveKit Component
63
+
64
+ In your project's root directory, add the following line to the `settings.gradle.kts` or `settings.gradle` file to import the **TUILiveKit** component (as a module).
65
+
66
+ 【settings.gradle.kts】
67
+ ``` java
68
+ include ':tuilivekit'
69
+ project(':tuilivekit').projectDir = new File(settingsDir, "live/tuilivekit")
70
+
71
+ include(":atomic_x")
72
+ ```
73
+
74
+ 【settings.gradle】
75
+ ``` java
76
+ include ':tuilivekit'
77
+ project(':tuilivekit').projectDir = new File(settingsDir, "live/tuilivekit")
78
+
79
+ include(":atomic_x")
80
+ ```
81
+
82
+ #### 3. Adding Component Dependency
83
+
84
+ Navigate to the app directory and find the `build.gradle.kts` or `build.gradle` file. Add the following dependency to declare that your app module relies on the newly added `TUILiveKit` component module.
85
+
86
+ 【build.gradle.kts】
87
+ ``` java
88
+ dependencies {
89
+ // Add tuilivekit dependency
90
+ api(project(":tuilivekit"))
91
+ }
92
+ ```
93
+
94
+ 【build.gradle】
95
+ ``` java
96
+ dependencies {
97
+ // Add tuilivekit dependency
98
+ api project(':tuilivekit')
99
+ }
100
+ ```
101
+
102
+ > **Note:**
103
+ >
104
+ > TUILiveKit has default dependencies on public libraries like the TRTC SDK and IM SDK, so you **do not** need to configure them separately.
105
+ >
106
+
107
+ #### 4. Configure Proguard Rules
108
+
109
+ Since the SDK uses Java reflection internally, you must add the following rules to the **proguard-rules.pro** file. This prevents the relevant classes from being obfuscated, ensuring proper function.
110
+ ``` java
111
+ -keep class com.tencent.** { *; }
112
+ -keep class com.tencent.beacon.** { *; }
113
+ -keep class com.tencent.cloud.iai.lib.** { *; }
114
+ -keep class com.tencent.qimei.** { *; }
115
+ -keep class com.tencent.xmagic.** { *; }
116
+ -keep class com.trtc.uikit.livekit.component.gift.store.model.** { *; }
117
+ -keep class com.trtc.uikit.livekit.livestreamcore.** { *; }
118
+ -keep class com.tcmediax.** { *; }
119
+
120
+ # Obfuscation rules for Google's serialization/deserialization framework Gson library
121
+ -keep class com.google.gson.** { *; }
122
+
123
+ # Obfuscation rules for beauty effect
124
+ -keep class androidx.exifinterface.** { *; }
125
+ -keep class com.gyailib.** { *; }
126
+ -keep class org.extra.** { *; }
127
+ -keep class org.libpag.** { *; }
128
+ -keep class org.light.** { *; }
129
+
130
+ # Obfuscation rules for playing gifts SVG animation
131
+ -keep class com.opensource.svgaplayer.proto.** { *; }
132
+ -keep class com.squareup.wire.** { *; }
133
+ ```
134
+
135
+ #### 5. Modify AndroidManifest.xml
136
+
137
+ To prevent conflicts during the **AndroidManifest** merge process, you must add `tools:replace="android:allowBackup"` and `android:allowBackup="false"` to the **<application>** node in your `app/src/main/AndroidManifest.xml` file. This overrides the settings within the component and disables the backup feature.
138
+ ``` xml
139
+ <application
140
+ ...
141
+
142
+ // Add the following configuration to override the settings in the dependent SDK
143
+ android:allowBackup="false"
144
+ tools:replace="android:allowBackup">
145
+ ```
146
+
147
+ #### 6. Complete Project Sync
148
+
149
+ After completing the steps above, Android Studio will typically prompt you with a **Sync Now** button. Click this button to complete the project synchronization. If the IDE doesn't prompt you automatically, manually click the sync button in the toolbar. Once synchronized, the IDE will finish project configuration and indexing, allowing you to use the **TUILiveKit** component in your project.
150
+
151
+ ## Complete Login
152
+
153
+ After code integration, the next step is to complete the login. All **TUILiveKit** features require a successful login to function properly, so ensure your parameters are configured correctly.
154
+
155
+ > **Note:**
156
+ >
157
+ > In the example code, the login API is called directly. However, in a real-world application, it is highly recommended that you call the **TUILiveKit** login service only after your own user authentication and other internal login processes are complete. This prevents potential business logic confusion or data inconsistency caused by calling the login service too early, and it better aligns with your existing user management system.
158
+ >
159
+
160
+ 【Kotlin】
161
+ ``` java
162
+ // 1.Import dependency
163
+ import io.trtc.tuikit.atomicxcore.api.CompletionHandler
164
+ import io.trtc.tuikit.atomicxcore.api.login.LoginStore
165
+
166
+ private const val TAG = "LoginStore"
167
+
168
+ // 2.Call the login API. It is recommended to call TUILogin after your own login business is completed.
169
+ LoginStore.shared.login(applicationContext,
170
+ 1400000001, // Please replace with the SDKAppID from the service activation console
171
+ "denny", // Please replace with your UserID
172
+ "xxxxxxxxxxx", // You can generate a UserSig in the console and fill it in here
173
+ object : CompletionHandler {
174
+ override fun onSuccess() {
175
+ Log.i(TAG, "LoginStore login success")
176
+ }
177
+
178
+ override fun onFailure(code: Int, desc: String) {
179
+ Log.e(TAG, "LoginStore login failed, $code errorMessage:$desc")
180
+ }
181
+ })
182
+
183
+ ```
184
+
185
+ **Login API Parameter Description**
186
+ | Parameter | Type | Description |
187
+ | --- | --- | --- |
188
+ | SDKAppID | Int | Get this from <a href="https://console.trtc.io/app">TRTC console > Application management</a>. |
189
+ | UserID | String | The unique ID for the current user. Must contain only English letters, numbers, hyphens, and underscores. |
190
+ | userSig | String | A ticket for Tencent Cloud authentication. Please note:<br>- <strong>Development Environment</strong>: You can use the local <code>GenerateTestUserSig.genTestSig</code> function to generate a UserSig or generate a temporary UserSig via the <a href="https://console.trtc.io/usersig">UserSig Generation Tool</a>.<br>- <strong>Production Environment</strong>: To prevent key leakage, you must use a server-side method to generate UserSig. For details, see Generating UserSig on the Server.<br>For more information, see <a href="https://www.tencentcloud.com/document/product/647/35166">How to Calculate and Use UserSig</a>. |
191
+
192
+ ### Handling Login Exception Status [Optional]
193
+
194
+ **TUILogin** provides a login status callback mechanism to help you handle possible login exceptions, mainly including "**kicked offline**" and "**signature expired**" callbacks:
195
+ - **Kicked Offline:** If a user is kicked offline while online, the **SDK** will notify you via the `onKickedOffline` callback. At this point, you can display a UI prompt to the user and call `TUILogin.login` to login again.
196
+
197
+ - **Signature Expired:** If a user receives the `onUserSigExpired` callback while online, it means the **userSig** previously issued for that user has expired. If the user's login session on your backend is still valid, you can have your app request a new **userSig** from your backend and call `TUILogin.login` to renew the login session.
198
+
199
+ 【kotlin】
200
+ ``` java
201
+ import io.trtc.tuikit.atomicxcore.api.login.LoginListener
202
+ import io.trtc.tuikit.atomicxcore.api.login.LoginStore
203
+
204
+ class YourLoginService {
205
+
206
+ // Instantiate listener
207
+ private val loginListener = object : LoginListener() {
208
+ // Callback for user being kicked offline
209
+ override fun onKickedOffline() {
210
+ // Handle: Prompt user in UI, then re-login
211
+ }
212
+
213
+ // Callback for user signature expired
214
+ override fun onLoginExpired() {
215
+ // Handle: If the user's backend session is valid, request a new userSig and call LoginStore.shared.login to renew the session
216
+ }
217
+ }
218
+
219
+ // Subscribe to login state callbacks
220
+ fun subscribeLoginStatus() {
221
+ LoginStore.shared.addLoginListener(loginListener)
222
+ }
223
+
224
+ // Unsubscribe from login state callbacks
225
+ fun unsubscribeLoginStatus() {
226
+ LoginStore.shared.removeLoginListener(loginListener)
227
+ }
228
+ }
229
+ ```
230
+
231
+ ## Next Steps
232
+
233
+ Congratulations! You have successfully integrated the **TUILiveKit** component and completed the login. You can now implement features such as host streaming, viewer watching, and the live stream list. Please refer to the table below for integration guides:
234
+ | <strong>Feature</strong> | <strong>Description</strong> | <strong>Integration Guide</strong> |
235
+ | --- | --- | --- |
236
+ | <strong>Video Live Streaming</strong> | Includes a full suite of features such as host broadcasting, audience viewing, interactive co-hosting, beauty filters, gifts, and bullet chat. | - Host Broadcasting<br>- Audience Viewing |
237
+ | <strong>Voice Chat Room</strong> | Includes complete business logic such as mic seat management, background music (BGM), gift interactivity, and voice room control. | - Host Broadcasting<br>- Audience Viewing |
238
+ | <strong>Live Stream List</strong> | Display the live stream list interface and features, including the live stream list and room information display. | - Live Stream List |
239
+
240
+ ## FAQs
241
+
242
+ ### Do I need to call the login API every time I enter a room?
243
+
244
+ No. You typically only need to call `TUILogin.login` once. We recommend associating `TUILogin.login` and `TUILogin.logout` with your app's own user login and logout business logic.
245
+
246
+ ### How do I handle the `allowBackup` compilation error shown in the figure below after code integration?
247
+
248
+ - **Reason**: The `allowBackup` attribute is configured in the `AndroidManifest.xml` of multiple modules, which causes a conflict during the manifest merge process.
249
+
250
+ - **Solution**: In your project's `AndroidManifest.xml` file, you can either delete the `allowBackup` attribute or change it to false to disable backup and restore functionality. Crucially, add `tools:replace="android:allowBackup"` to the **<application>** node to override the settings of other modules with your own configuration. See the example fix:
251
+
252
+ ### After code integration, do I still need to explicitly declare camera and microphone permissions?
253
+
254
+ No, **TUILiveKit** already has built-in declarations for permissions like the camera and microphone in its manifest file. You do not need to worry about declaring these permissions separately during the integration process.
@@ -0,0 +1,202 @@
1
+ **TUILiveKit**'s audience viewing page provides users with various and convenient live streaming and interaction features, enabling quick integration into your application to meet diverse audience needs.
2
+
3
+ ## Feature Overview
4
+ - **Live streaming:** Clear and smooth viewing of the host's real-time live stream.
5
+
6
+ - **Interactive co-guest:** Apply for mic connection to interact with the host via audio and video.
7
+
8
+ - **Live information:** View the live streaming room title, description, and audience list, etc.
9
+
10
+ - **Live interactive:** Send a gift (with animation effects and host notification), like (with animation and real-time statistics), and interact via bullet screen.
11
+
12
+ | <strong>Live Streaming</strong> | <strong>Interactive co-guest</strong> | <strong>Live Information</strong> | <strong>Live Interactive</strong> |
13
+ | --- | --- | --- | --- |
14
+ | | ### | | |
15
+
16
+ ## Quick Start
17
+
18
+ ### Step 1. Activate the Service
19
+
20
+ Refer to the Activate Service document to get the `TUILiveKit` trial version or activate the paid version.
21
+
22
+ ### Step 2. Code Integration
23
+
24
+ Refer to Preparations guide to integrate the TUILiveKit SDK.
25
+
26
+ ### Step 3. Add an Audience Viewing view
27
+
28
+ In your audience view controller `YourAudienceViewController`, initialize and add `AudienceView` for audience streaming:
29
+
30
+ 【Swift】
31
+ ``` swift
32
+ import UIKit
33
+ import SnapKit
34
+ import TUILiveKit
35
+
36
+ // YourAudienceViewController represents the audience viewing page controller
37
+ class YourAudienceViewController: UIViewController {
38
+
39
+ // 1. Declare audienceView as a member variable
40
+ private let audienceView: AudienceView
41
+
42
+ // 2. Add a convenience initializer:
43
+ // - roomId: Live room ID
44
+ public init(roomId: String) {
45
+ // 3. Initialize the AudienceView component
46
+ self.audienceView = AudienceView(roomId: roomId)
47
+ super.init(nibName: nil, bundle: nil)
48
+ }
49
+
50
+ @available(*, unavailable)
51
+ required init?(coder: NSCoder) {
52
+ fatalError("init(coder:) has not been implemented")
53
+ }
54
+
55
+ public override func viewDidLoad() {
56
+ super.viewDidLoad()
57
+ // 4. Add audienceView to the view hierarchy
58
+ view.addSubview(audienceView)
59
+ audienceView.snp.makeConstraints { make in
60
+ make.edges.equalToSuperview()
61
+ }
62
+ }
63
+ }
64
+ ```
65
+
66
+ ### Step 4. Event Callbacks and Data Source Customization
67
+
68
+ Beyond UI style customization, AudienceView offers three optional extension points for integrating a custom live stream list data source, handling audience page lifecycle events, and managing screen orientation changes:
69
+
70
+ |Extension Point|Type|Description|
71
+ |---------|---------|---------|
72
+ |delegate|AudienceViewDelegate|Listen for audience page events, such as live view creation/display/hide, floating window actions, live end, and more.|
73
+ |dataSource|AudienceViewDataSource|Customize live stream list retrieval logic. By default, AudienceView uses TUILiveKit’s built-in list; set this to use your own APIs.|
74
+ |rotateScreenDelegate|RotateScreenDelegate|Monitor audience page orientation changes to synchronize your UI layout with device rotation.|
75
+
76
+ ``` swift
77
+
78
+ import UIKit
79
+ import SnapKit
80
+ import TUILiveKit
81
+ import AtomicXCore
82
+
83
+ class YourAudienceViewController: UIViewController {
84
+
85
+ private let audienceView: AudienceView
86
+
87
+ public init(roomId: String) {
88
+ self.audienceView = AudienceView(roomId: roomId)
89
+ super.init(nibName: nil, bundle: nil)
90
+ // Set callbacks and data source
91
+ audienceView.delegate = self
92
+ audienceView.dataSource = self
93
+ audienceView.rotateScreenDelegate = self
94
+ }
95
+
96
+ @available(*, unavailable)
97
+ required init?(coder: NSCoder) {
98
+ fatalError("init(coder:) has not been implemented")
99
+ }
100
+
101
+ public override func viewDidLoad() {
102
+ super.viewDidLoad()
103
+ view.addSubview(audienceView)
104
+ audienceView.snp.makeConstraints { make in
105
+ make.edges.equalToSuperview()
106
+ }
107
+ }
108
+ }
109
+
110
+ // MARK: - AudienceViewDelegate
111
+ extension YourAudienceViewController: AudienceViewDelegate {
112
+ // Called when the live room playback view is created; overlay custom UI here if needed
113
+ func audienceView(_ audienceView: AudienceView, onCreateLiveView liveView: AudienceLiveView, for liveInfo: LiveInfo) {
114
+ }
115
+
116
+ // Called when the audience swipes to a live room and its playback view appears on screen
117
+ func audienceView(_ audienceView: AudienceView, liveViewDidAppear liveView: AudienceLiveView, for liveInfo: LiveInfo) {
118
+ }
119
+
120
+ // Called when the audience leaves a live room and its playback view is removed from the screen
121
+ func audienceView(_ audienceView: AudienceView, liveViewDidDisappear liveView: AudienceLiveView, for liveInfo: LiveInfo) {
122
+ }
123
+
124
+ // Called when the user clicks the floating window
125
+ func onClickFloatWindow() {
126
+ FloatWindow.shared.showFloatWindow(controller: self, provider: audienceView)
127
+ }
128
+
129
+ // Called when the live stream ends (host stops streaming, room is closed, etc.)
130
+ func onLiveEnded(roomId: String, ownerName: String, ownerAvatarUrl: String) {
131
+ // Display the live end summary page (includes host avatar/nickname, "Live Ended" prompt, etc.)
132
+ let endView = AudienceEndStatisticsView(roomId: roomId, avatarUrl: ownerAvatarUrl, userName: ownerName)
133
+ endView.delegate = self
134
+ view.addSubview(endView)
135
+ endView.snp.makeConstraints { make in
136
+ make.edges.equalToSuperview()
137
+ }
138
+ }
139
+ }
140
+
141
+ // MARK: - RotateScreenDelegate
142
+ extension YourAudienceViewController: RotateScreenDelegate {
143
+ // isPortrait: true if portrait mode, false if landscape mode
144
+ func rotateScreen(isPortrait: Bool) {
145
+ }
146
+ }
147
+ ```
148
+
149
+ ### Step 5. Navigate to the **Audience Viewing** view
150
+
151
+ Usually in the live stream list, use the following code example when you need to jump to the viewer watching page:
152
+
153
+ 【Swift】
154
+ ``` swift
155
+ // 1. Instantiate your audience viewing view controller
156
+ let audienceVC = YourAudienceViewController(roomId: "Your live streaming room id")
157
+ audienceVC.modalPresentationStyle = .fullScreen
158
+ // 2. Navigate to your audience viewing view controller
159
+ present(audienceVC, animated: false)
160
+ ```
161
+
162
+ ### step 6. Customize Your UI Layout
163
+
164
+ ### Customize the `AudienceView` Feature Area
165
+ - Customize the audience interface by referring to the Core Audience Page modify the UI styles and add your business components in AudienceView.
166
+
167
+ - Customize video-slot widgets by referring to Adjust Live Streaming Widgets. Modify the UI of nameplates, avatar decorations, and other elements on the video slot in AudienceView.
168
+
169
+ ### Text Customization (Localization)
170
+
171
+ TUILiveKit uses the [Apple Strings Catalog](https://developer.apple.com/documentation/xcode/localizing-and-varying-text-with-a-string-catalog)(`.xcstrings`) format, introduced in **Xcode 15**, to manage the text displayed in the UI. You can modify the string resources using Xcode's graphical interface:
172
+
173
+ > **Note:**
174
+ >
175
+ > [Apple Strings Catalog](https://developer.apple.com/documentation/xcode/localizing-and-varying-text-with-a-string-catalog) (.xcstrings) is a localization format introduced in Xcode 15. It enhances how developers manage localized strings, supporting a structured format to handle plurals, device-specific variants, etc. This format is becoming the recommended way to manage localization for iOS and macOS applications.
176
+ >
177
+
178
+ ### Icon Customization (Image Assets)
179
+
180
+ TUILiveKit uses `TUILiveKit.xcassets` to manage the image resources for the UI. You can quickly modify the custom icons using Xcode's graphical tools.
181
+
182
+ ## Next Steps
183
+
184
+ Congratulations! You have successfully integrated **Audience Viewing**. Next, you can implement features such as **host streaming**, **live stream list** and **gift system**. Please refer to the table below:
185
+ | <strong>Feature</strong> | <strong>Description</strong> | <strong>Integration Guide</strong> |
186
+ | --- | --- | --- |
187
+ | <strong>Host Streaming</strong> | The complete workflow for a host to start a stream, including pre-stream setup and various in-stream interactions. | Host Streaming |
188
+ | <strong>Live Stream List</strong> | Display the live stream list interface and features, including the live stream list and room information display. | Live Stream List |
189
+ | <strong>Gift System</strong> | Support custom gift asset configuration, billing system integration, and gift-sending in PK scenarios. | Gift System |
190
+
191
+ ## FAQs
192
+
193
+ ### Why is the video screen black when a viewer selects video co-hosting?
194
+
195
+ Please go to **Phone Settings** > **App >** **Camera**, check whether camera permission is enabled, refer to the image below:
196
+
197
+ ### Why can't other viewers in the live room see the barrage content sent by a viewer?
198
+ - **Reason 1**: First check the network connection to ensure the viewer's device network is normal.
199
+
200
+ - **Reason 2**: The viewer has been **muted (banned)** by the host and cannot send barrage.
201
+
202
+ - **Reason 3**: The viewer's barrage content involves **keyword blocking**. Please confirm whether the content sent by the viewer complies with the live room rules.