@tencentcloud/sdk-mcp 1.6.3 → 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 (302) hide show
  1. package/index.js +0 -4
  2. package/knowledge/build-index.js +1 -1
  3. package/knowledge/chunker.js +81 -52
  4. package/knowledge/path-meta.js +181 -21
  5. package/knowledge/search/exact-lookup.js +166 -0
  6. package/knowledge/search/filter-pool.js +73 -19
  7. package/knowledge/search/product-scope-intent.js +2 -2
  8. package/knowledge/search/requires-framework.js +1 -1
  9. package/knowledge/search/search-knowledge.js +234 -57
  10. package/package.json +1 -1
  11. package/resource/_schema/feature-aliases.yaml +1 -0
  12. package/resource/integration/callkit/preset/android/integration.md +3 -5
  13. package/resource/integration/callkit/preset/flutter/integration.md +2 -3
  14. package/resource/integration/callkit/preset/ios/integration.md +2 -5
  15. package/resource/integration/callkit/preset/react/integration.md +12 -26
  16. package/resource/integration/callkit/preset/vue/integration.md +17 -33
  17. package/resource/integration/chat/preset/android/integration.md +44 -14
  18. package/resource/integration/chat/preset/flutter/integration.md +54 -13
  19. package/resource/integration/chat/preset/ios/integration.md +42 -6
  20. package/resource/integration/chat/preset/react/integration.md +30 -28
  21. package/resource/integration/chat/preset/uni-app/integration.md +101 -40
  22. package/resource/integration/chat/preset/vue/integration.md +62 -28
  23. package/resource/integration/livekit/preset/live/android/live-audience-integration.md +133 -0
  24. package/resource/integration/livekit/preset/live/android/live-host-integration.md +225 -0
  25. package/resource/integration/livekit/preset/live/android/live-list-integration.md +278 -0
  26. package/resource/integration/livekit/preset/live/android/prepare-integration.md +271 -0
  27. package/resource/integration/livekit/preset/live/ios/live-audience-integration.md +207 -0
  28. package/resource/integration/livekit/preset/live/ios/live-host-integration.md +358 -0
  29. package/resource/integration/livekit/preset/live/ios/live-list-integration.md +246 -0
  30. package/resource/integration/livekit/preset/live/ios/prepare-integration.md +218 -0
  31. package/resource/integration/livekit/preset/live/vue/live-list-integration.md +4 -7
  32. package/resource/integration/livekit/preset/live/vue/live-player-desk-integration.md +5 -12
  33. package/resource/integration/livekit/preset/live/vue/live-player-h5-integration.md +4 -11
  34. package/resource/integration/livekit/preset/live/vue/live-pusher-integration.md +250 -482
  35. package/resource/integration/roomkit/preset/vue/integration.md +399 -106
  36. package/resource/knowledge/callkit/best-practice/web/callengine-invitation.md +80 -0
  37. package/resource/knowledge/callkit/best-practice/web/callengine-log-control.md +20 -0
  38. package/resource/knowledge/callkit/best-practice/web/callkit-call-vs-calls.md +116 -0
  39. package/resource/knowledge/callkit/core-sdk/android/answer-call.md +11 -15
  40. package/resource/knowledge/callkit/core-sdk/android/make-call.md +10 -13
  41. package/resource/knowledge/callkit/core-sdk/android/offline-push.md +2 -4
  42. package/resource/knowledge/callkit/core-sdk/flutter/answer-call.md +10 -17
  43. package/resource/knowledge/callkit/core-sdk/flutter/make-call.md +11 -17
  44. package/resource/knowledge/callkit/core-sdk/flutter/offline-push.md +11 -20
  45. package/resource/knowledge/callkit/core-sdk/ios/answer-call.md +10 -15
  46. package/resource/knowledge/callkit/core-sdk/ios/make-call.md +9 -14
  47. package/resource/knowledge/callkit/core-sdk/ios/offline-push.md +12 -18
  48. package/resource/knowledge/callkit/core-sdk/miniprogram/call-engine.md +390 -0
  49. package/resource/knowledge/callkit/core-sdk/miniprogram/call-event.md +317 -0
  50. package/resource/knowledge/callkit/core-sdk/uni-app/answer-call.md +16 -22
  51. package/resource/knowledge/callkit/core-sdk/uni-app/make-call.md +17 -23
  52. package/resource/knowledge/callkit/core-sdk/web/call-engine.md +39 -0
  53. package/resource/knowledge/callkit/core-sdk/web/call-event.md +341 -0
  54. package/resource/knowledge/callkit/core-sdk/web/callengine-api-overview.md +39 -0
  55. package/resource/knowledge/callkit/faq/android.md +1 -5
  56. package/resource/knowledge/callkit/faq/common.md +10 -12
  57. package/resource/knowledge/callkit/faq/ios.md +5 -7
  58. package/resource/knowledge/callkit/faq/uniapp-app.md +7 -7
  59. package/resource/knowledge/callkit/faq/uniapp-miniprogram.md +9 -12
  60. package/resource/knowledge/callkit/faq/web.md +2 -12
  61. package/resource/knowledge/callkit/preset/android/api.md +5 -8
  62. package/resource/knowledge/callkit/preset/ios/api.md +4 -6
  63. package/resource/knowledge/callkit/preset/miniprogram/api.md +295 -0
  64. package/resource/knowledge/callkit/preset/react/api.md +622 -0
  65. package/resource/knowledge/callkit/preset/react/uikit-api-reference.md +475 -0
  66. package/resource/knowledge/callkit/preset/vue/api.md +622 -0
  67. package/resource/knowledge/callkit/preset/vue/uikit-api-reference.md +587 -0
  68. package/resource/knowledge/callkit/preset/web/api.md +1 -1
  69. package/resource/knowledge/chat/best-practice/web/image-message-url-handling.md +16 -0
  70. package/resource/knowledge/chat/preset/android/features/chat-setting.md +1 -1
  71. package/resource/knowledge/chat/preset/android/features/conversation-list.md +0 -1
  72. package/resource/knowledge/chat/preset/android/features/language.md +2 -4
  73. package/resource/knowledge/chat/preset/android/features/message-input.md +1 -1
  74. package/resource/knowledge/chat/preset/android/features/message-list.md +1 -2
  75. package/resource/knowledge/chat/preset/android/features/search.md +0 -1
  76. package/resource/knowledge/chat/preset/android/features/theme.md +1 -1
  77. package/resource/knowledge/chat/preset/android-view/integration.md +35 -10
  78. package/resource/knowledge/chat/preset/flutter/features/conversation-list.md +0 -1
  79. package/resource/knowledge/chat/preset/flutter/features/language.md +1 -1
  80. package/resource/knowledge/chat/preset/flutter/features/message-list.md +0 -1
  81. package/resource/knowledge/chat/preset/flutter/features/search.md +4 -5
  82. package/resource/knowledge/chat/preset/flutter/features/theme.md +1 -1
  83. package/resource/knowledge/chat/preset/ios/features/chat-setting.md +1 -1
  84. package/resource/knowledge/chat/preset/ios/features/conversation-list.md +0 -1
  85. package/resource/knowledge/chat/preset/ios/features/language.md +2 -5
  86. package/resource/knowledge/chat/preset/ios/features/message-list.md +0 -1
  87. package/resource/knowledge/chat/preset/ios/features/search.md +0 -1
  88. package/resource/knowledge/chat/preset/ios/features/theme.md +1 -1
  89. package/resource/knowledge/chat/preset/ios-uikit/integration.md +57 -166
  90. package/resource/knowledge/chat/preset/react/features/chat-setting.md +0 -1
  91. package/resource/knowledge/chat/preset/react/features/conversation-actions.md +3 -3
  92. package/resource/knowledge/chat/preset/react/features/conversation-list.md +3 -3
  93. package/resource/knowledge/chat/preset/react/features/conversation-preview.md +1 -1
  94. package/resource/knowledge/chat/preset/react/features/message-input.md +2 -3
  95. package/resource/knowledge/chat/preset/react/features/search.md +0 -1
  96. package/resource/knowledge/chat/preset/vue/features/chat-header.md +1 -1
  97. package/resource/knowledge/chat/preset/vue/features/chat-setting.md +3 -4
  98. package/resource/knowledge/chat/preset/vue/features/conversation-list.md +4 -4
  99. package/resource/knowledge/chat/preset/vue/features/conversation-preview.md +1 -1
  100. package/resource/knowledge/chat/preset/vue/features/message-input.md +2 -2
  101. package/resource/knowledge/chat/preset/vue/features/message-list.md +2 -2
  102. package/resource/knowledge/chat/preset/vue/features/search.md +0 -1
  103. package/resource/knowledge/chat/preset/vue/features/theme.md +4 -4
  104. package/resource/knowledge/livekit/core-sdk/api-reference/android/AudioEffectStore.md +0 -7
  105. package/resource/knowledge/livekit/core-sdk/api-reference/android/BarrageStore.md +2 -5
  106. package/resource/knowledge/livekit/core-sdk/api-reference/android/BattleStore.md +12 -15
  107. package/resource/knowledge/livekit/core-sdk/api-reference/android/CameraView.md +0 -1
  108. package/resource/knowledge/livekit/core-sdk/api-reference/android/CoGuestStore.md +0 -5
  109. package/resource/knowledge/livekit/core-sdk/api-reference/android/CoHostStore.md +0 -3
  110. package/resource/knowledge/livekit/core-sdk/api-reference/android/DeviceStore.md +0 -2
  111. package/resource/knowledge/livekit/core-sdk/api-reference/android/GiftStore.md +2 -4
  112. package/resource/knowledge/livekit/core-sdk/api-reference/android/LikeStore.md +0 -2
  113. package/resource/knowledge/livekit/core-sdk/api-reference/android/LiveAudienceStore.md +0 -2
  114. package/resource/knowledge/livekit/core-sdk/api-reference/android/LiveCoreView.md +0 -1
  115. package/resource/knowledge/livekit/core-sdk/api-reference/android/LiveSeatStore.md +2 -4
  116. package/resource/knowledge/livekit/core-sdk/api-reference/android/LoginStore.md +1 -3
  117. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/AudioEffectStore.md +0 -7
  118. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/BarrageStore.md +3 -6
  119. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/BaseBeautyStore.md +0 -1
  120. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/BattleStore.md +12 -15
  121. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/CoGuestStore.md +0 -5
  122. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/CoHostStore.md +0 -3
  123. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/DeviceStore.md +0 -2
  124. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/GiftStore.md +2 -4
  125. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LikeStore.md +0 -2
  126. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LiveAudienceStore.md +0 -2
  127. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LiveCoreView.md +0 -1
  128. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LiveSeatStore.md +2 -4
  129. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LoginStore.md +1 -3
  130. package/resource/knowledge/livekit/core-sdk/api-reference/ios/AudioEffectStore.md +0 -7
  131. package/resource/knowledge/livekit/core-sdk/api-reference/ios/BarrageStore.md +2 -5
  132. package/resource/knowledge/livekit/core-sdk/api-reference/ios/BaseBeautyStore.md +0 -1
  133. package/resource/knowledge/livekit/core-sdk/api-reference/ios/BattleStore.md +3 -6
  134. package/resource/knowledge/livekit/core-sdk/api-reference/ios/CoGuestStore.md +0 -5
  135. package/resource/knowledge/livekit/core-sdk/api-reference/ios/CoHostStore.md +0 -3
  136. package/resource/knowledge/livekit/core-sdk/api-reference/ios/DeviceStore.md +0 -2
  137. package/resource/knowledge/livekit/core-sdk/api-reference/ios/GiftStore.md +2 -4
  138. package/resource/knowledge/livekit/core-sdk/api-reference/ios/LikeStore.md +0 -2
  139. package/resource/knowledge/livekit/core-sdk/api-reference/ios/LiveAudienceStore.md +0 -2
  140. package/resource/knowledge/livekit/core-sdk/api-reference/ios/LiveCoreView.md +0 -1
  141. package/resource/knowledge/livekit/core-sdk/api-reference/ios/LiveSeatStore.md +2 -4
  142. package/resource/knowledge/livekit/core-sdk/api-reference/ios/LoginStore.md +1 -3
  143. package/resource/knowledge/livekit/core-sdk/api-reference/vue/capability-matrix.md +82 -0
  144. package/resource/knowledge/livekit/core-sdk/{voice/android/voice-audio-effect.md → features/android/audio-effect.md} +2 -4
  145. package/resource/knowledge/livekit/core-sdk/{live/android/live-barrage.md → features/android/barrage.md} +1 -1
  146. package/resource/knowledge/livekit/core-sdk/{live/android/live-base-beauty.md → features/android/base-beauty.md} +1 -1
  147. package/resource/knowledge/livekit/core-sdk/{voice/android/voice-gift.md → features/android/gift.md} +2 -3
  148. package/resource/knowledge/livekit/core-sdk/{live/android/live-live-list.md → features/android/live-list.md} +1 -1
  149. package/resource/knowledge/livekit/core-sdk/{live/flutter/live-audio-effect.md → features/flutter/audio-effect.md} +0 -2
  150. package/resource/knowledge/livekit/core-sdk/{voice/flutter/voice-barrage.md → features/flutter/barrage.md} +3 -3
  151. package/resource/knowledge/livekit/core-sdk/{voice/flutter/voice-gift.md → features/flutter/gift.md} +2 -2
  152. package/resource/knowledge/livekit/core-sdk/{voice/flutter/voice-room-list.md → features/flutter/live-list.md} +1 -1
  153. package/resource/knowledge/livekit/core-sdk/{voice/ios/voice-audience-list.md → features/ios/audience-list.md} +1 -1
  154. package/resource/knowledge/livekit/core-sdk/{voice/ios/voice-audio-effect.md → features/ios/audio-effect.md} +1 -3
  155. package/resource/knowledge/livekit/core-sdk/{voice/ios/voice-barrage.md → features/ios/barrage.md} +2 -2
  156. package/resource/knowledge/livekit/core-sdk/{live/ios/live-base-beauty.md → features/ios/base-beauty.md} +1 -1
  157. package/resource/knowledge/livekit/core-sdk/{live/ios/live-gift.md → features/ios/gift.md} +8 -9
  158. package/resource/knowledge/livekit/core-sdk/{live/ios/live-live-list.md → features/ios/live-list.md} +2 -2
  159. package/resource/knowledge/livekit/core-sdk/{voice/uni-app/voice-audio-effect.md → features/uni-app/audio-effect.md} +2 -3
  160. package/resource/knowledge/livekit/core-sdk/{voice/uni-app/voice-barrage.md → features/uni-app/barrage.md} +2 -2
  161. package/resource/knowledge/livekit/core-sdk/features/uni-app/base-beauty.md +145 -0
  162. package/resource/knowledge/livekit/core-sdk/{voice/uni-app/voice-gift.md → features/uni-app/gift.md} +6 -7
  163. package/resource/knowledge/livekit/core-sdk/{voice/uni-app/voice-room-list.md → features/uni-app/live-list.md} +1 -1
  164. package/resource/knowledge/livekit/core-sdk/live/android/{live-co-guest-interaction.md → co-guest-interaction.md} +2 -3
  165. package/resource/knowledge/livekit/core-sdk/live/android/{live-host-interaction.md → host-interaction.md} +2 -4
  166. package/resource/knowledge/livekit/core-sdk/live/android/{live-integration.md → integration.md} +6 -9
  167. package/resource/knowledge/livekit/core-sdk/live/flutter/{live-host-interaction.md → host-interaction.md} +1 -3
  168. package/resource/knowledge/livekit/core-sdk/live/flutter/{live-integration.md → integration.md} +1 -6
  169. package/resource/knowledge/livekit/core-sdk/live/ios/{live-co-guest-interaction.md → co-guest-interaction.md} +2 -3
  170. package/resource/knowledge/livekit/core-sdk/live/ios/{live-host-interaction.md → host-interaction.md} +3 -5
  171. package/resource/knowledge/livekit/core-sdk/live/ios/{live-integration.md → integration.md} +7 -10
  172. package/resource/knowledge/livekit/core-sdk/live/uni-app/co-guest-interaction.md +561 -0
  173. package/resource/knowledge/livekit/core-sdk/live/uni-app/host-interaction.md +323 -0
  174. package/resource/knowledge/livekit/core-sdk/live/uni-app/integration.md +312 -0
  175. package/resource/knowledge/livekit/core-sdk/voice/android/{voice-co-guest-interaction.md → co-guest-interaction.md} +3 -3
  176. package/resource/knowledge/livekit/core-sdk/voice/android/{voice-host-interaction.md → host-interaction.md} +2 -4
  177. package/resource/knowledge/livekit/core-sdk/voice/android/{voice-integration.md → integration.md} +11 -14
  178. package/resource/knowledge/livekit/core-sdk/voice/flutter/{voice-co-guest-interaction.md → co-guest-interaction.md} +0 -1
  179. package/resource/knowledge/livekit/core-sdk/voice/flutter/{voice-integration.md → integration.md} +1 -4
  180. package/resource/knowledge/livekit/core-sdk/voice/ios/{voice-co-guest-interaction.md → co-guest-interaction.md} +3 -3
  181. package/resource/knowledge/livekit/core-sdk/voice/ios/{voice-host-interaction.md → host-interaction.md} +2 -4
  182. package/resource/knowledge/livekit/core-sdk/voice/ios/{voice-integration.md → integration.md} +7 -10
  183. package/resource/knowledge/livekit/core-sdk/voice/uni-app/{voice-co-guest-interaction.md → co-guest-interaction.md} +6 -6
  184. package/resource/knowledge/livekit/core-sdk/voice/uni-app/{voice-integration.md → integration.md} +6 -7
  185. package/resource/knowledge/livekit/preset/live/vue/features/barrage.md +2 -3
  186. package/resource/knowledge/livekit/preset/live/vue/features/live-audience-list.md +1 -1
  187. package/resource/knowledge/livekit/preset/live/vue/features/live-view.md +1 -1
  188. package/resource/knowledge/push/api-reference/android.md +337 -0
  189. package/resource/knowledge/push/api-reference/donut.md +190 -0
  190. package/resource/knowledge/push/api-reference/flutter.md +176 -0
  191. package/resource/knowledge/push/api-reference/harmonyos.md +140 -0
  192. package/resource/knowledge/push/api-reference/ios.md +537 -0
  193. package/resource/knowledge/push/api-reference/react-native.md +154 -0
  194. package/resource/knowledge/push/api-reference/uni-app.md +148 -0
  195. package/resource/knowledge/push/api-reference/unity.md +119 -0
  196. package/resource/knowledge/push/api-reference/unreal-engine.md +123 -0
  197. package/resource/knowledge/push/config/android/fcm.md +1 -8
  198. package/resource/knowledge/push/config/android/honor.md +3 -7
  199. package/resource/knowledge/push/config/android/huawei.md +0 -5
  200. package/resource/knowledge/push/config/android/meizu.md +0 -5
  201. package/resource/knowledge/push/config/android/oppo.md +0 -4
  202. package/resource/knowledge/push/config/android/vivo.md +0 -4
  203. package/resource/knowledge/push/config/android/xiaomi.md +0 -2
  204. package/resource/knowledge/push/config/donut.md +33 -46
  205. package/resource/knowledge/push/config/harmonyos.md +6 -9
  206. package/resource/knowledge/push/config/ios.md +2 -9
  207. package/resource/knowledge/push/config/react-native.md +17 -25
  208. package/resource/knowledge/push/config/unity.md +16 -24
  209. package/resource/knowledge/push/config/unreal-engine.md +16 -24
  210. package/resource/knowledge/push/integration/android.md +21 -21
  211. package/resource/knowledge/push/integration/donut.md +24 -34
  212. package/resource/knowledge/push/integration/flutter.md +12 -1
  213. package/resource/knowledge/push/integration/harmonyos.md +2 -1
  214. package/resource/knowledge/push/integration/ios.md +16 -10
  215. package/resource/knowledge/push/integration/react-native.md +10 -14
  216. package/resource/knowledge/push/integration/uni-app.md +10 -6
  217. package/resource/knowledge/push/integration/unity.md +19 -22
  218. package/resource/knowledge/push/integration/unreal-engine.md +7 -9
  219. package/resource/knowledge/push/overview/prepare.md +2 -2
  220. package/resource/knowledge/roomkit/core-sdk/android/capability-matrix.md +46 -0
  221. package/resource/knowledge/roomkit/core-sdk/android/unsupported-features.md +82 -0
  222. package/resource/knowledge/roomkit/core-sdk/flutter/capability-matrix.md +46 -0
  223. package/resource/knowledge/roomkit/core-sdk/flutter/room-participant-state.md +1 -1
  224. package/resource/knowledge/roomkit/core-sdk/flutter/unsupported-features.md +82 -0
  225. package/resource/knowledge/roomkit/core-sdk/ios/capability-matrix.md +46 -0
  226. package/resource/knowledge/roomkit/core-sdk/ios/room-state.md +1 -1
  227. package/resource/knowledge/roomkit/core-sdk/ios/unsupported-features.md +82 -0
  228. package/resource/knowledge/roomkit/core-sdk/vue/call-user-to-room.md +1 -1
  229. package/resource/knowledge/roomkit/core-sdk/vue/device-state.md +0 -4
  230. package/resource/knowledge/roomkit/core-sdk/vue/free-beauty-panel.md +2 -5
  231. package/resource/knowledge/roomkit/core-sdk/vue/room-chat.md +0 -3
  232. package/resource/knowledge/roomkit/core-sdk/vue/room-participant-state.md +0 -2
  233. package/resource/knowledge/roomkit/core-sdk/vue/room-state.md +2 -6
  234. package/resource/knowledge/roomkit/core-sdk/vue/room-view.md +0 -1
  235. package/resource/knowledge/roomkit/core-sdk/vue/schedule-room.md +1 -1
  236. package/resource/knowledge/roomkit/core-sdk/vue/screen-share.md +2 -4
  237. package/resource/knowledge/roomkit/core-sdk/vue/virtual-background.md +2 -3
  238. package/resource/knowledge/roomkit/preset/android/integration.md +14 -16
  239. package/resource/knowledge/roomkit/preset/flutter/integration.md +9 -17
  240. package/resource/knowledge/roomkit/preset/ios/integration.md +9 -17
  241. package/resource/knowledge/roomkit/preset/react/integration.md +0 -4
  242. package/resource/knowledge/trtc/android/TRTCCloud.md +97 -180
  243. package/resource/knowledge/trtc/android/TRTCCloudDef.md +20 -20
  244. package/resource/knowledge/trtc/android/TRTCCloudListener.md +43 -77
  245. package/resource/knowledge/trtc/android/TRTCStatistics.md +1 -1
  246. package/resource/knowledge/trtc/android/TXAudioEffectManager.md +4 -24
  247. package/resource/knowledge/trtc/android/TXDeviceManager.md +2 -2
  248. package/resource/knowledge/trtc/android/TXLiteAVCode.md +1 -1
  249. package/resource/knowledge/trtc/c++/ITRTCCloud.md +96 -189
  250. package/resource/knowledge/trtc/c++/ITRTCStatistics.md +1 -1
  251. package/resource/knowledge/trtc/c++/ITXAudioEffectManager.md +1 -21
  252. package/resource/knowledge/trtc/c++/ITXDeviceManager.md +4 -6
  253. package/resource/knowledge/trtc/c++/TRTCCloudCallback.md +42 -76
  254. package/resource/knowledge/trtc/c++/TRTCTypeDef.md +18 -19
  255. package/resource/knowledge/trtc/c++/TXLiteAVCode.md +1 -1
  256. package/resource/knowledge/trtc/ios/TRTCCloud.md +95 -181
  257. package/resource/knowledge/trtc/ios/TRTCCloudDelegate.md +43 -78
  258. package/resource/knowledge/trtc/ios/TRTCStatistics.md +1 -1
  259. package/resource/knowledge/trtc/ios/TXAudioEffectManager.md +1 -20
  260. package/resource/knowledge/trtc/ios/TXDeviceManager.md +4 -6
  261. package/resource/knowledge/trtc/ios/TXLiteAVCode.md +1 -1
  262. package/resource/knowledge/trtc/ios/TXLiveSDKTypeDef.md +20 -20
  263. package/server-config.js +7 -4
  264. package/server.js +2 -2
  265. package/tools/common/finalize_answer.js +1 -1
  266. package/tools/common/present_framework_choice.js +2 -2
  267. package/tools/common/search_trtc_knowledge.js +3 -3
  268. package/tools/common/submit_feedback.js +1 -1
  269. package/tools/definitions/get_native_live_uikit_integration_def.js +60 -0
  270. package/tools/definitions/get_native_livekit_core_integration_def.js +1 -1
  271. package/tools/definitions/present_framework_choice_def.js +2 -2
  272. package/tools/definitions/search_trtc_knowledge_def.js +5 -5
  273. package/tools/index.js +2 -0
  274. package/tools/live/get_native_live_uikit_integration.js +69 -0
  275. package/tools/live/get_native_livekit_core_integration.js +6 -6
  276. package/utils/is-valid-sdkappid.js +4 -0
  277. package/utils/report-cls-client.js +1 -1
  278. package/utils/report-es-client.js +1 -1
  279. package/resource/index/component-slugs.json +0 -1
  280. package/resource/index/doc-source-urls.json +0 -1
  281. package/resource/index/manifest.json +0 -1
  282. package/resource/knowledge/livekit/core-sdk/live/android/live-audio-effect.md +0 -229
  283. package/resource/knowledge/livekit/core-sdk/live/android/live-gift.md +0 -459
  284. package/resource/knowledge/livekit/core-sdk/live/flutter/live-barrage.md +0 -506
  285. package/resource/knowledge/livekit/core-sdk/live/flutter/live-gift.md +0 -427
  286. package/resource/knowledge/livekit/core-sdk/live/flutter/live-live-list.md +0 -726
  287. package/resource/knowledge/livekit/core-sdk/live/ios/live-audience-list.md +0 -265
  288. package/resource/knowledge/livekit/core-sdk/live/ios/live-audio-effect.md +0 -214
  289. package/resource/knowledge/livekit/core-sdk/live/ios/live-barrage.md +0 -427
  290. package/resource/knowledge/livekit/core-sdk/voice/android/voice-audience-list.md +0 -272
  291. package/resource/knowledge/livekit/core-sdk/voice/android/voice-barrage.md +0 -486
  292. package/resource/knowledge/livekit/core-sdk/voice/android/voice-room-list.md +0 -523
  293. package/resource/knowledge/livekit/core-sdk/voice/flutter/voice-audience-list.md +0 -262
  294. package/resource/knowledge/livekit/core-sdk/voice/flutter/voice-audio-effect.md +0 -600
  295. package/resource/knowledge/livekit/core-sdk/voice/ios/voice-gift.md +0 -411
  296. package/resource/knowledge/livekit/core-sdk/voice/ios/voice-room-list.md +0 -404
  297. /package/resource/knowledge/livekit/core-sdk/api-reference/{web → vue}/index.md +0 -0
  298. /package/resource/knowledge/livekit/core-sdk/{live/android/live-audience-list.md → features/android/audience-list.md} +0 -0
  299. /package/resource/knowledge/livekit/core-sdk/{live/flutter/live-audience-list.md → features/flutter/audience-list.md} +0 -0
  300. /package/resource/knowledge/livekit/core-sdk/{live/flutter/live-base-beauty.md → features/flutter/base-beauty.md} +0 -0
  301. /package/resource/knowledge/livekit/core-sdk/{voice/uni-app/voice-audience-list.md → features/uni-app/audience-list.md} +0 -0
  302. /package/resource/knowledge/livekit/core-sdk/live/flutter/{live-co-guest-interaction.md → co-guest-interaction.md} +0 -0
@@ -0,0 +1,271 @@
1
+ 本章节主要指导您完成 `TUILiveKit` **UI 组件库接入**的环境配置。
2
+
3
+ > **集成方案说明:**
4
+ >
5
+ > 本文档提供的是 **UI 组件库接入方案**,包含视频直播、语聊房的完整 UI 界面与全套业务逻辑。如果您有极高的 UI 定制需求,需要采用 无 UI(Core SDK) 集成方式,请直接参考 Core SDK 快速开始。
6
+ >
7
+
8
+ ## 功能预览
9
+
10
+ TUILiveKit UI 组件为您提供的是功能闭环、交互丰富的直播全链路逻辑,集成后可快速实现一套交互完整、业务丰富的直播系统。
11
+
12
+ ### **视频直播**
13
+
14
+ |**主播准备页**|**主播开播页**|**直播列表**|**观众观看页**|
15
+ |---------|---------|---------|---------|
16
+ |||||
17
+
18
+ ### **语聊房**
19
+
20
+ |**主播准备页**|**主播开播页**|**直播列表**|**观众观看页**|
21
+ |---------|---------|---------|---------|
22
+ |||||
23
+
24
+ ## **准备工作**
25
+
26
+ ### 开通服务
27
+
28
+ 在使用 **TUILiveKit** 前,请先参考 开通服务,领取 TUILiveKit 体验版或者开通付费版。
29
+
30
+ ### 环境要求
31
+ - **Android Studio Arctic Fox (2020.3.1)** 及以上版本。
32
+
33
+ - **Gradle 7.0** 及以上的版本。
34
+
35
+ - **Android** **5.0** 及以上的手机设备。
36
+
37
+ ## 代码集成
38
+
39
+ ### **步骤 1:下载 TUILiveKit 组件**
40
+
41
+ 在 [GitHub](https://github.com/Tencent-RTC/TUIKit_Android) 中克隆/下载代码,然后将 `live` 目录和 `atomic_x` 目录拷贝到您当前 `Android` 项目的 `app` 文件夹同级目录中。
42
+
43
+ ### 步骤 2:工程配置
44
+
45
+ #### 1. 配置 JitPack 仓库
46
+
47
+ 在工程**根目录**下的 `settings.gradle.kts` 或 `settings.gradle` 文件中,添加 JitPack 仓库地址,项目中播放礼物 SVG 动画的第三方库托管在 JitPack 仓库中,需要从 JitPack 仓库中查找依赖项。
48
+
49
+ 【settings.gradle.kts】
50
+ ``` java
51
+ dependencyResolutionManagement {
52
+ repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
53
+ repositories {
54
+ google()
55
+ mavenCentral()
56
+
57
+ // 添加 JitPack 仓库地址
58
+ maven { url = uri("https://jitpack.io") }
59
+ }
60
+ }
61
+ ```
62
+
63
+ 【settings.gradle】
64
+ ``` java
65
+ dependencyResolutionManagement {
66
+ repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
67
+ repositories {
68
+ google()
69
+ mavenCentral()
70
+
71
+ // 添加 JitPack 仓库地址
72
+ maven { url 'https://jitpack.io' }
73
+ }
74
+ }
75
+ ```
76
+
77
+ #### 2. 导入 TUILiveKit 组件
78
+
79
+ 在工程根目录下的 `settings.gradle.kts` 或 `settings.gradle` 文件中,增加以下代码以导入 **tuilivekit** 组件。
80
+
81
+ 【settings.gradle.kts】
82
+ ``` java
83
+ include(":tuilivekit")
84
+ project(":tuilivekit").projectDir = File(settingsDir, "live/tuilivekit")
85
+
86
+ include(":atomic_x")
87
+ project(":atomic_x").projectDir = File(settingsDir, "atomic_x")
88
+ ```
89
+
90
+ 【settings.gradle】
91
+ ``` java
92
+ include ':tuilivekit'
93
+ project(':tuilivekit').projectDir = new File(settingsDir, "live/tuilivekit")
94
+
95
+ include(":atomic")
96
+ project(':atomic').projectDir = new File(settingsDir, "atomic_x")
97
+ ```
98
+
99
+ #### 3. 添加组件依赖
100
+
101
+ 在 `app` 目录下找到 `build.gradle.kts`(或 `build.gradle`)文件,并在文件中增加以下代码,该步骤的作用是声明当前 App 对新加入的 **tuilivekit** 组件的依赖。
102
+
103
+ 【build.gradle.kts】
104
+ ``` java
105
+ dependencies {
106
+ // 添加 tuilivekit 依赖
107
+ api(project(":tuilivekit"))
108
+ }
109
+ ```
110
+
111
+ 【build.gradle】
112
+ ``` java
113
+ dependencies {
114
+ // 添加 tuilivekit 依赖
115
+ api project(':tuilivekit')
116
+ }
117
+ ```
118
+
119
+ > **说明:**
120
+ >
121
+ > TUILiveKit 内部已默认依赖 TRTC SDK、IM SDK 等公共库,您无需单独配置。
122
+ >
123
+
124
+ #### 4. 配置混淆规则
125
+
126
+ 由于 SDK 内部使用了 Java 反射,请在 `proguard-rules.pro` 文件中添加以下代码,将相关类加入不混淆名单,以确保功能正常运行。
127
+ ``` java
128
+ -keep class com.tencent.** { *; }
129
+ -keep class com.tencent.beacon.** { *; }
130
+ -keep class com.tencent.cloud.iai.lib.** { *; }
131
+ -keep class com.tencent.qimei.** { *; }
132
+ -keep class com.tencent.xmagic.** { *; }
133
+ -keep class com.trtc.uikit.livekit.component.gift.store.model.** { *; }
134
+ -keep class com.trtc.uikit.livekit.livestreamcore.** { *; }
135
+ -keep class com.tcmediax.** { *; }
136
+
137
+ # Google 序列化/反序列化框架 Gson 库相关混淆
138
+ -keep class com.google.gson.** { *; }
139
+
140
+ # 美颜特效相关混淆
141
+ -keep class androidx.exifinterface.** { *; }
142
+ -keep class com.gyailib.** { *; }
143
+ -keep class org.extra.** { *; }
144
+ -keep class org.libpag.** { *; }
145
+ -keep class org.light.** { *; }
146
+
147
+ # 播放礼物 SVG 动画相关混淆
148
+ -keep class com.opensource.svgaplayer.proto.** { *; }
149
+ -keep class com.squareup.wire.** { *; }
150
+ ```
151
+
152
+ #### 5. 修改 AndroidManifest.xml
153
+
154
+ 为了防止编译时 `AndroidManifest` 合并过程中产生属性冲突,您需要在 `app/src/main/AndroidManifest.xml` 文件的 `<application>` 节点中,添加 `tools:replace="android:allowBackup"` 和 `android:allowBackup="false"`,用以覆盖组件内的设置。
155
+ ``` xml
156
+ <application
157
+ ...
158
+
159
+ // 添加如下配置覆盖 依赖的 sdk 中的配置
160
+ android:allowBackup="false"
161
+ tools:replace="android:allowBackup">
162
+ ```
163
+
164
+ #### 6. 完成项目同步
165
+
166
+ 在您完成上述步骤后,通常情况下 Android Studio 会自动为您弹出 **Sync Now** 按钮,您需要点击该同步按钮完成项目的同步,若 IDE 没有自动弹出同步按钮,请您手动点击工具栏中的同步按钮进行项目的同步,同步后 IDE 会完成项目的构建配置和索引等工作,您就可以在您的项目中正常使用 TUILiveKit 组件了。
167
+
168
+ ## 完成登录
169
+
170
+ 代码集成完成后,您需要完成登录。这是**使用 TUILiveKit 的关键步骤**,因为只有在登录成功后才能正常使用 TUILiveKit 的各项功能,故请您耐心检查相关参数是否配置正确:
171
+
172
+ > **说明:**
173
+ >
174
+ > 在示例代码中,直接进行了登录接口的调用。但在实际项目场景下,强烈推荐**您在完成自己的用户身份验证等相关登录操作后,再调用 TUILiveKit 的登录服务**。这样可以避免因过早调用登录服务,导致业务逻辑混乱或数据不一致的问题,同时也能更好地适配您项目中现有的用户管理和权限控制体系。
175
+ >
176
+
177
+ 【Kotlin】
178
+ ``` java
179
+ // 1.导入依赖
180
+ import io.trtc.tuikit.atomicxcore.api.CompletionHandler
181
+ import io.trtc.tuikit.atomicxcore.api.login.LoginStore
182
+ 
183
+ private const val TAG = "LoginStore"
184
+ 
185
+ // 2.调用登录接口,推荐您在自己登录业务完成后再调用 LoginStore 登录
186
+ LoginStore.shared.login(applicationContext,
187
+ 1400000001, // 请替换为开通服务控制台的 SDKAppID
188
+ "denny", // 请替换为您的 UserID
189
+ "xxxxxxxxxxx", // 您可以在控制台中计算一个 UserSig 并填在这个位置
190
+ object : CompletionHandler {
191
+ override fun onSuccess() {
192
+ Log.i(TAG, "LoginStore login success")
193
+ }
194
+ 
195
+ override fun onFailure(code: Int, desc: String) {
196
+ Log.e(TAG, "LoginStore login failed, $code errorMessage:$desc")
197
+ }
198
+ })
199
+ ```
200
+
201
+ **登录接口参数说明**
202
+ | 参数 | 类型 | 说明 |
203
+ | --- | --- | --- |
204
+ | SDKAppID | Int | 从 <a href="https://console.cloud.tencent.com/trtc">TRTC 控制台 > 应用管理</a> 获取。 |
205
+ | UserID | String | 当前用户的唯一 ID,仅包含英文字母、数字、连字符和下划线。 |
206
+ | userSig | String | 用于腾讯云鉴权的票据。请注意:<br>- 开发环境:您可以采用本地 <code>GenerateTestUserSig.genTestSig</code> 函数生成 UserSig 或者通过 <a href="https://console.cloud.tencent.com/im/tool-usersig">UserSig 辅助工具</a> 生成临时的 UserSig。<br>- 生产环境:为了防止密钥泄露,请务必采用服务端生成 UserSig 的方式。详细信息请参见 <a href="https://cloud.tencent.com/document/product/647/17275#formal">服务端生成 UserSig</a>。<br>更多信息请参见 <a href="https://cloud.tencent.com/document/product/647/17275">如何计算及使用 UserSig</a>。 |
207
+
208
+ ### 登录异常状态处理【可选】
209
+
210
+ `LoginStore` 提供了登录状态回调机制,方便您处理可能出现的登录异常情况,主要包括 “**被踢下线**” 和 “**签名过期**” 这两种异常状态的回调:
211
+ - **被踢下线**:用户在线情况下被踢,`SDK` 会通过 `onKickedOffline` 回调通知给您,此时可以在 UI 提示用户,并调用 `LoginStore.shared.login` 重新登录。
212
+
213
+ - **签名过期**:用户在线期间收到 `onUserSigExpired` 回调,说明您之前给该用户签发的 userSig 已经过期了,这个时候如果当前用户在您后台的登录态依然有效,您可以让您的 app 向您的后台请求新的 userSig,并调用 `LoginStore.shared.login` 续签登录态。
214
+
215
+ 【kotlin】
216
+ ``` java
217
+ import io.trtc.tuikit.atomicxcore.api.login.LoginListener
218
+ import io.trtc.tuikit.atomicxcore.api.login.LoginStore
219
+ 
220
+ class YourLoginService {
221
+ 
222
+ // 实例化监听器
223
+ private val loginListener = object : LoginListener() {
224
+ // 用户被踢下线回调
225
+ override fun onKickedOffline() {
226
+ // 您的业务代码:UI 交互提示用户,然后重新登录
227
+ }
228
+ 
229
+ // 用户签名过期回调
230
+ override fun onLoginExpired() {
231
+ // 您的业务代码:如果当前用户在您后台的登录态依然有效,您可以让您的 app 向您的后台请求新的 userSig,
232
+ // 并调用 LoginStore.shared.login 续签登录态。
233
+ }
234
+ }
235
+ 
236
+ // 监听登录状态回调
237
+ fun subscribeLoginStatus() {
238
+ LoginStore.shared.addLoginListener(loginListener)
239
+ }
240
+ 
241
+ // 取消监听登录状态回调
242
+ fun unsubscribeLoginStatus() {
243
+ LoginStore.shared.removeLoginListener(loginListener)
244
+ }
245
+ }
246
+ ```
247
+
248
+ ## 下一步
249
+
250
+ 恭喜您,现在您已经成功集成了**直播**组件并完成了登录。接下来,您可以根据您的业务场景实现**主播开播**、**观众观看**、**直播列表**等功能。
251
+ | <strong>业务场景</strong> | <strong>描述</strong> | <strong>集成指引</strong> |
252
+ | --- | --- | --- |
253
+ | <strong>视频直播</strong> | 包含主播开播、观众观看、连麦互动、美颜设置、礼物弹幕等全套功能。 | - 主播开播<br>- 观众观看 |
254
+ | <strong>语聊房</strong> | 包含麦位管理、背景音乐、礼物互动、语聊控场等完整业务逻辑。 | - 主播开播<br>- 观众观看 |
255
+ | <strong>直播列表</strong> | 展示直播间/语聊房列表,支持封面、人数、房间标题等信息展示。 | - 直播列表 |
256
+
257
+ ## 常见问题
258
+
259
+ ### 每次进房都需要调用登录吗?
260
+
261
+ 不需要。通常您只需要完成一次 `TUILogin.login` 调用即可,我们建议您将 `TUILogin.login` 和 `TUILogin.logout` 与自己的登录业务关联。
262
+
263
+ ### 集成代码后产生如下图所示编译报错 allowBackup 异常,如何处理?
264
+
265
+ - **问题原因**:多个模块的 `AndroidManifest.xml` 中都配置了 `allowBackup` 属性,造成冲突。
266
+
267
+ - **解决方法**:您可以在您工程的 `AndroidManifest.xml` 文件中删除 `allowBackup` 属性或将该属性改为 `false`,表示关闭备份和恢复功能;并在 `AndroidManifest.xml` 文件的 application 节点中添加 `tools:replace="android:allowBackup"` 表示覆盖其他模块的设置,使用您自己的设置。修复示例如图所示:
268
+
269
+ ### 集成代码后还需要添加摄像头麦克风等权限的声明吗?
270
+
271
+ 不需要,TUILiveKit 中已经内置了摄像头麦克风等权限的声明,在接入过程中您无需再关心这些权限的声明。
@@ -0,0 +1,207 @@
1
+ TUILiveKit 的观众观看页为用户提供了丰富且便捷的直播观看与互动功能,能快速集成到您的应用中,满足观众多样化的需求。
2
+
3
+ > **集成提示:**
4
+ >
5
+ > 本文档介绍基于 **UI 组件** 的观众观看方式(含完整交互 UI)。若您需通过 **Core SDK** 自行搭建观众端界面,请参考 观众观看 (Core SDK)。
6
+ >
7
+
8
+ ## 功能概览
9
+ - **直播观看:**清晰、流畅观看主播实时直播画面。
10
+
11
+ - **互动连麦:**申请连麦,与主播进行音视频互动。
12
+
13
+ - **直播信息:**查看直播间标题、简介,及在线观众列表等信息。
14
+
15
+ - **直播互动:**送礼物(有动画特效,主播接收提示)、点赞(有动画及实时统计)、发弹幕互动。
16
+
17
+ | 直播观看 | 互动连麦 | 直播信息 | 直播互动 |
18
+ | --- | --- | --- | --- |
19
+ | | ### | | |
20
+
21
+ ## 快速接入
22
+
23
+ ### 步骤1:开通服务
24
+
25
+ 参考 开通服务 文档开通「体验版」或「大规模直播版」套餐。
26
+
27
+ ### 步骤2:代码集成
28
+
29
+ 参考 准备工作 接入 TUILiveKit。
30
+
31
+ ### 步骤3:添加观众拉流页面
32
+
33
+ 在您的观众视图控制器中 `YourAudienceViewController` 初始化添加 `AudienceView` 观众拉流视图:
34
+
35
+ 【Swift】
36
+ ``` swift
37
+ import UIKit
38
+ import SnapKit
39
+ import TUILiveKit
40
+
41
+ // YourAudienceViewController 代表您观众观看页的视图控制器
42
+ class YourAudienceViewController: UIViewController {
43
+
44
+ // 1. 声明 audienceView 作为成员变量
45
+ private let audienceView: AudienceView
46
+
47
+ // 2. 新增便利构造函数:
48
+ // - roomId: 直播房间id
49
+ public init(roomId: String) {
50
+ // 3. 初始化 AudienceView 组件
51
+ self.audienceView = AudienceView(roomId: roomId)
52
+ super.init(nibName: nil, bundle: nil)
53
+ }
54
+
55
+ @available(*, unavailable)
56
+ required init?(coder: NSCoder) {
57
+ fatalError("init(coder:) has not been implemented")
58
+ }
59
+
60
+ public override func viewDidLoad() {
61
+ super.viewDidLoad()
62
+ // 4. 将 audienceView 添加到视图上
63
+ view.addSubview(audienceView)
64
+ audienceView.snp.makeConstraints { make in
65
+ make.edges.equalToSuperview()
66
+ }
67
+ }
68
+ }
69
+ ```
70
+
71
+ ### 步骤4:事件回调与数据源定制
72
+
73
+ 除了 UI 样式定制外,`AudienceView` 还提供了以下三个可选扩展点,帮助您接入自定义的直播列表数据源、监听观众页生命周期事件、以及处理屏幕旋转:
74
+
75
+ |扩展点|类型|说明|
76
+ |---------|---------|---------|
77
+ |`delegate`|`AudienceViewDelegate`|监听观众页内的核心事件,包括直播视图的创建/展示/隐藏、点击悬浮窗、直播结束等回调。|
78
+ |`dataSource`|`AudienceViewDataSource`|自定义直播列表的拉取逻辑。若不设置,`AudienceView` 默认从 TUILiveKit 内置的直播列表拉取数据;设置后,观众滑动切换直播间时将改为调用您自己的直播间列表接口。|
79
+ |`rotateScreenDelegate`|`RotateScreenDelegate`|监听观众页横竖屏切换事件,用于同步您业务侧的 UI 布局。|
80
+
81
+ ``` swift
82
+ import UIKit
83
+ import SnapKit
84
+ import TUILiveKit
85
+ import AtomicXCore
86
+
87
+ class YourAudienceViewController: UIViewController {
88
+
89
+ private let audienceView: AudienceView
90
+
91
+ public init(roomId: String) {
92
+ self.audienceView = AudienceView(roomId: roomId)
93
+ super.init(nibName: nil, bundle: nil)
94
+ // 设置回调与数据源
95
+ audienceView.delegate = self
96
+ audienceView.dataSource = self
97
+ audienceView.rotateScreenDelegate = self
98
+ }
99
+
100
+ @available(*, unavailable)
101
+ required init?(coder: NSCoder) {
102
+ fatalError("init(coder:) has not been implemented")
103
+ }
104
+
105
+ public override func viewDidLoad() {
106
+ super.viewDidLoad()
107
+ view.addSubview(audienceView)
108
+ audienceView.snp.makeConstraints { make in
109
+ make.edges.equalToSuperview()
110
+ }
111
+ }
112
+ }
113
+
114
+ // MARK: - AudienceViewDelegate
115
+ extension YourAudienceViewController: AudienceViewDelegate {
116
+ // 创建了某个直播间对应的播放视图 liveView 时回调,可在此处叠加自定义 UI
117
+ func audienceView(_ audienceView: AudienceView, onCreateLiveView liveView: AudienceLiveView, for liveInfo: LiveInfo) {
118
+ }
119
+
120
+ // 观众滑动切换到某个直播间,其播放视图 liveView 已展示到屏幕上
121
+ func audienceView(_ audienceView: AudienceView, liveViewDidAppear liveView: AudienceLiveView, for liveInfo: LiveInfo) {
122
+ }
123
+
124
+ // 观众已滑离某个直播间,其播放视图 liveView 已从屏幕上移除
125
+ func audienceView(_ audienceView: AudienceView, liveViewDidDisappear liveView: AudienceLiveView, for liveInfo: LiveInfo) {
126
+
127
+ }
128
+
129
+ // 用户点击了悬浮窗
130
+ func onClickFloatWindow() {
131
+ FloatWindow.shared.showFloatWindow(controller: self, provider: audienceView)
132
+ }
133
+
134
+ // 直播已结束(主播下播/房间被解散等)
135
+ func onLiveEnded(roomId: String, ownerName: String, ownerAvatarUrl: String) {
136
+ // 展示直播结束的结算页(含主播头像/昵称、"直播已结束"提示等)
137
+ let endView = AudienceEndStatisticsView(roomId: roomId, avatarUrl: ownerAvatarUrl, userName: ownerName)
138
+ endView.delegate = self
139
+ view.addSubview(endView)
140
+ endView.snp.makeConstraints { make in
141
+ make.edges.equalToSuperview()
142
+ }
143
+ }
144
+ }
145
+
146
+ // MARK: - RotateScreenDelegate
147
+ extension YourAudienceViewController: RotateScreenDelegate {
148
+ // isPortrait: true 表示当前为竖屏,false 表示当前为横屏
149
+ func rotateScreen(isPortrait: Bool) {
150
+ }
151
+ }
152
+ ```
153
+
154
+ ### 步骤5:导航路由到观众拉流页面
155
+
156
+ 通常在 直播列表 或者 **点击主播开播推送通知** 时,您需要导航跳转到观众观看页,可参考如下代码示例:
157
+
158
+ 【Swift】
159
+ ``` swift
160
+ // 1. 实例化您的观众观看视图控制器
161
+ let audienceVC = YourAudienceViewController(roomId: "您的直播房间 id")
162
+ audienceVC.modalPresentationStyle = .fullScreen
163
+ // 2. 跳转到您的观众观看视图控制器
164
+ present(audienceVC, animated: false)
165
+ ```
166
+
167
+ ## 自定义您的界面布局
168
+
169
+ ### 自定义观众观看页界面
170
+ - 参考 观众核心页面 进行观众界面定制,在 `AudienceView` 中修改 UI 样式,添加您的业务组件。
171
+
172
+ - 参考 调整视频直播挂件 进行视频位挂件定制,在 `AudienceView` 中修改视频位上的名称、头像挂件等 UI。
173
+
174
+ ### 文案定制
175
+
176
+ TUILiveKit 使用更为方便的 [Apple Strings Catalog](https://developer.apple.com/documentation/xcode/localizing-and-varying-text-with-a-string-catalog) 工具来管理 UI 所需的文案显示,您可以很直观的通过 Xcode 视图化管理工具修改需要调整的文案:
177
+
178
+ > **说明:**
179
+ >
180
+ > [Apple Strings Catalog](https://developer.apple.com/documentation/xcode/localizing-and-varying-text-with-a-string-catalog) (.xcstrings) 是在 Xcode 15 中引入的本地化格式。它增强了开发者管理本地化字符串的方式,支持处理复数、设备特定变体等的结构化格式。这种格式正成为管理 iOS 和 macOS 应用程序本地化的推荐方法。
181
+ >
182
+
183
+ ### 图标定制
184
+
185
+ TUILiveKit 使用 `TUILiveKit.xcassets` 管理 UI 所需的图片资源,您可以借助 Xcode 图形化工具快速修改自定义界面所需的图标。
186
+
187
+ ## 下一步
188
+
189
+ 恭喜您,现在您已经成功集成了观众观看。接下来,您可以实现**主播开播**、**直播列表**等功能,可参考下表:
190
+ | <strong>功能</strong> | <strong>描述</strong> | <strong>集成指引</strong> |
191
+ | --- | --- | --- |
192
+ | <strong>主播开播</strong> | 主播开播全流程功能,包括开播前的准备和开播后的各种互动 | 主播开播 |
193
+ | <strong>直播列表</strong> | 展示直播列表界面和功能,包含直播列表,房间信息展示功能 | 直播列表 |
194
+ | <strong>礼物系统</strong> | 实现自定义礼物素材配置、计费系统对接、PK 场景互动等功能 | 礼物系统 |
195
+
196
+ ## 常见问题
197
+
198
+ ### 观众选择视频连麦后,视频画面显示黑屏?
199
+
200
+ 请前往**手机设置** > **App >** **相机**,检查摄像头权限是否开启,可参考下图:
201
+
202
+ ### 观众发送弹幕时,直播间内其他观众看不到弹幕内容?
203
+ - 原因1:先检查网络连接,确保观众设备网络正常。
204
+
205
+ - 原因2:该观众被主播禁言,无法发送弹幕。
206
+
207
+ - 原因3:观众的弹幕内容涉及关键词屏蔽,请确认观众发送的弹幕内容是否符合直播间规则。