@tencentcloud/sdk-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.
- package/knowledge/build-index.js +1 -1
- package/knowledge/chunker.js +81 -52
- package/knowledge/path-meta.js +181 -21
- package/knowledge/search/exact-lookup.js +245 -43
- package/knowledge/search/filter-pool.js +73 -19
- package/knowledge/search/product-scope-intent.js +2 -2
- package/knowledge/search/requires-framework.js +1 -1
- package/knowledge/search/search-knowledge.js +246 -60
- package/package.json +1 -1
- package/resource/_schema/feature-aliases.yaml +1 -0
- package/resource/integration/callkit/preset/android/integration.md +3 -5
- package/resource/integration/callkit/preset/flutter/integration.md +2 -3
- package/resource/integration/callkit/preset/ios/integration.md +2 -5
- package/resource/integration/callkit/preset/react/integration.md +12 -26
- package/resource/integration/callkit/preset/vue/integration.md +17 -33
- package/resource/integration/chat/preset/android/integration.md +44 -14
- package/resource/integration/chat/preset/flutter/integration.md +54 -13
- package/resource/integration/chat/preset/ios/integration.md +42 -6
- package/resource/integration/chat/preset/react/integration.md +30 -28
- package/resource/integration/chat/preset/uni-app/integration.md +101 -40
- package/resource/integration/chat/preset/vue/integration.md +62 -28
- package/resource/integration/livekit/preset/live/android/live-audience-integration.md +133 -0
- package/resource/integration/livekit/preset/live/android/live-host-integration.md +225 -0
- package/resource/integration/livekit/preset/live/android/live-list-integration.md +278 -0
- package/resource/integration/livekit/preset/live/android/prepare-integration.md +271 -0
- package/resource/integration/livekit/preset/live/ios/live-audience-integration.md +207 -0
- package/resource/integration/livekit/preset/live/ios/live-host-integration.md +358 -0
- package/resource/integration/livekit/preset/live/ios/live-list-integration.md +246 -0
- package/resource/integration/livekit/preset/live/ios/prepare-integration.md +218 -0
- package/resource/integration/livekit/preset/live/vue/live-list-integration.md +4 -7
- package/resource/integration/livekit/preset/live/vue/live-player-desk-integration.md +5 -12
- package/resource/integration/livekit/preset/live/vue/live-player-h5-integration.md +4 -11
- package/resource/integration/livekit/preset/live/vue/live-pusher-integration.md +250 -482
- package/resource/integration/roomkit/preset/vue/integration.md +399 -106
- package/resource/knowledge/callkit/best-practice/web/callengine-invitation.md +80 -0
- package/resource/knowledge/callkit/best-practice/web/callengine-log-control.md +20 -0
- package/resource/knowledge/callkit/best-practice/web/callkit-call-vs-calls.md +116 -0
- package/resource/knowledge/callkit/core-sdk/android/answer-call.md +11 -15
- package/resource/knowledge/callkit/core-sdk/android/make-call.md +10 -13
- package/resource/knowledge/callkit/core-sdk/android/offline-push.md +2 -4
- package/resource/knowledge/callkit/core-sdk/flutter/answer-call.md +10 -17
- package/resource/knowledge/callkit/core-sdk/flutter/make-call.md +11 -17
- package/resource/knowledge/callkit/core-sdk/flutter/offline-push.md +11 -20
- package/resource/knowledge/callkit/core-sdk/ios/answer-call.md +10 -15
- package/resource/knowledge/callkit/core-sdk/ios/make-call.md +9 -14
- package/resource/knowledge/callkit/core-sdk/ios/offline-push.md +12 -18
- package/resource/knowledge/callkit/core-sdk/miniprogram/call-engine.md +390 -0
- package/resource/knowledge/callkit/core-sdk/miniprogram/call-event.md +317 -0
- package/resource/knowledge/callkit/core-sdk/uni-app/answer-call.md +16 -22
- package/resource/knowledge/callkit/core-sdk/uni-app/make-call.md +17 -23
- package/resource/knowledge/callkit/core-sdk/web/call-engine.md +39 -0
- package/resource/knowledge/callkit/core-sdk/web/call-event.md +341 -0
- package/resource/knowledge/callkit/core-sdk/web/callengine-api-overview.md +39 -0
- package/resource/knowledge/callkit/faq/android.md +1 -5
- package/resource/knowledge/callkit/faq/common.md +10 -12
- package/resource/knowledge/callkit/faq/ios.md +5 -7
- package/resource/knowledge/callkit/faq/uniapp-app.md +7 -7
- package/resource/knowledge/callkit/faq/uniapp-miniprogram.md +9 -12
- package/resource/knowledge/callkit/faq/web.md +2 -12
- package/resource/knowledge/callkit/preset/android/api.md +5 -8
- package/resource/knowledge/callkit/preset/ios/api.md +4 -6
- package/resource/knowledge/callkit/preset/miniprogram/api.md +295 -0
- package/resource/knowledge/callkit/preset/react/api.md +622 -0
- package/resource/knowledge/callkit/preset/react/uikit-api-reference.md +475 -0
- package/resource/knowledge/callkit/preset/vue/api.md +622 -0
- package/resource/knowledge/callkit/preset/vue/uikit-api-reference.md +587 -0
- package/resource/knowledge/callkit/preset/web/api.md +1 -1
- package/resource/knowledge/chat/best-practice/web/image-message-url-handling.md +16 -0
- package/resource/knowledge/chat/preset/android/features/chat-setting.md +1 -1
- package/resource/knowledge/chat/preset/android/features/conversation-list.md +0 -1
- package/resource/knowledge/chat/preset/android/features/language.md +2 -4
- package/resource/knowledge/chat/preset/android/features/message-input.md +1 -1
- package/resource/knowledge/chat/preset/android/features/message-list.md +1 -2
- package/resource/knowledge/chat/preset/android/features/search.md +0 -1
- package/resource/knowledge/chat/preset/android/features/theme.md +1 -1
- package/resource/knowledge/chat/preset/android-view/integration.md +35 -10
- package/resource/knowledge/chat/preset/flutter/features/conversation-list.md +0 -1
- package/resource/knowledge/chat/preset/flutter/features/language.md +1 -1
- package/resource/knowledge/chat/preset/flutter/features/message-list.md +0 -1
- package/resource/knowledge/chat/preset/flutter/features/search.md +4 -5
- package/resource/knowledge/chat/preset/flutter/features/theme.md +1 -1
- package/resource/knowledge/chat/preset/ios/features/chat-setting.md +1 -1
- package/resource/knowledge/chat/preset/ios/features/conversation-list.md +0 -1
- package/resource/knowledge/chat/preset/ios/features/language.md +2 -5
- package/resource/knowledge/chat/preset/ios/features/message-list.md +0 -1
- package/resource/knowledge/chat/preset/ios/features/search.md +0 -1
- package/resource/knowledge/chat/preset/ios/features/theme.md +1 -1
- package/resource/knowledge/chat/preset/ios-uikit/integration.md +57 -166
- package/resource/knowledge/chat/preset/react/features/chat-setting.md +0 -1
- package/resource/knowledge/chat/preset/react/features/conversation-actions.md +3 -3
- package/resource/knowledge/chat/preset/react/features/conversation-list.md +3 -3
- package/resource/knowledge/chat/preset/react/features/conversation-preview.md +1 -1
- package/resource/knowledge/chat/preset/react/features/message-input.md +2 -3
- package/resource/knowledge/chat/preset/react/features/search.md +0 -1
- package/resource/knowledge/chat/preset/vue/features/chat-header.md +1 -1
- package/resource/knowledge/chat/preset/vue/features/chat-setting.md +3 -4
- package/resource/knowledge/chat/preset/vue/features/conversation-list.md +4 -4
- package/resource/knowledge/chat/preset/vue/features/conversation-preview.md +1 -1
- package/resource/knowledge/chat/preset/vue/features/message-input.md +2 -2
- package/resource/knowledge/chat/preset/vue/features/message-list.md +2 -2
- package/resource/knowledge/chat/preset/vue/features/search.md +0 -1
- package/resource/knowledge/chat/preset/vue/features/theme.md +4 -4
- package/resource/knowledge/chat/urls/sdk/android.md +3 -3
- package/resource/knowledge/chat/urls/sdk/flutter.md +3 -3
- package/resource/knowledge/chat/urls/sdk/ios.md +3 -3
- package/resource/knowledge/chat/urls/sdk/web.md +3 -3
- package/resource/knowledge/livekit/core-sdk/api-reference/android/AudioEffectStore.md +0 -7
- package/resource/knowledge/livekit/core-sdk/api-reference/android/BarrageStore.md +2 -5
- package/resource/knowledge/livekit/core-sdk/api-reference/android/BattleStore.md +12 -15
- package/resource/knowledge/livekit/core-sdk/api-reference/android/CameraView.md +0 -1
- package/resource/knowledge/livekit/core-sdk/api-reference/android/CoGuestStore.md +0 -5
- package/resource/knowledge/livekit/core-sdk/api-reference/android/CoHostStore.md +0 -3
- package/resource/knowledge/livekit/core-sdk/api-reference/android/DeviceStore.md +0 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/android/GiftStore.md +2 -4
- package/resource/knowledge/livekit/core-sdk/api-reference/android/LikeStore.md +0 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/android/LiveAudienceStore.md +0 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/android/LiveCoreView.md +0 -1
- package/resource/knowledge/livekit/core-sdk/api-reference/android/LiveSeatStore.md +2 -4
- package/resource/knowledge/livekit/core-sdk/api-reference/android/LoginStore.md +1 -3
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/AudioEffectStore.md +0 -7
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/BarrageStore.md +3 -6
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/BaseBeautyStore.md +0 -1
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/BattleStore.md +12 -15
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/CoGuestStore.md +0 -5
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/CoHostStore.md +0 -3
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/DeviceStore.md +0 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/GiftStore.md +2 -4
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LikeStore.md +0 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LiveAudienceStore.md +0 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LiveCoreView.md +0 -1
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LiveSeatStore.md +2 -4
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LoginStore.md +1 -3
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/AudioEffectStore.md +0 -7
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/BarrageStore.md +2 -5
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/BaseBeautyStore.md +0 -1
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/BattleStore.md +3 -6
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/CoGuestStore.md +0 -5
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/CoHostStore.md +0 -3
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/DeviceStore.md +0 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/GiftStore.md +2 -4
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/LikeStore.md +0 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/LiveAudienceStore.md +0 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/LiveCoreView.md +0 -1
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/LiveSeatStore.md +2 -4
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/LoginStore.md +1 -3
- package/resource/knowledge/livekit/core-sdk/api-reference/vue/capability-matrix.md +82 -0
- package/resource/knowledge/livekit/core-sdk/{voice/android/voice-audio-effect.md → features/android/audio-effect.md} +2 -4
- package/resource/knowledge/livekit/core-sdk/{live/android/live-barrage.md → features/android/barrage.md} +1 -1
- package/resource/knowledge/livekit/core-sdk/{live/android/live-base-beauty.md → features/android/base-beauty.md} +1 -1
- package/resource/knowledge/livekit/core-sdk/{voice/android/voice-gift.md → features/android/gift.md} +2 -3
- package/resource/knowledge/livekit/core-sdk/{live/android/live-live-list.md → features/android/live-list.md} +1 -1
- package/resource/knowledge/livekit/core-sdk/{live/flutter/live-audio-effect.md → features/flutter/audio-effect.md} +0 -2
- package/resource/knowledge/livekit/core-sdk/{voice/flutter/voice-barrage.md → features/flutter/barrage.md} +3 -3
- package/resource/knowledge/livekit/core-sdk/{voice/flutter/voice-gift.md → features/flutter/gift.md} +2 -2
- package/resource/knowledge/livekit/core-sdk/{voice/flutter/voice-room-list.md → features/flutter/live-list.md} +1 -1
- package/resource/knowledge/livekit/core-sdk/{voice/ios/voice-audience-list.md → features/ios/audience-list.md} +1 -1
- package/resource/knowledge/livekit/core-sdk/{voice/ios/voice-audio-effect.md → features/ios/audio-effect.md} +1 -3
- package/resource/knowledge/livekit/core-sdk/{voice/ios/voice-barrage.md → features/ios/barrage.md} +2 -2
- package/resource/knowledge/livekit/core-sdk/{live/ios/live-base-beauty.md → features/ios/base-beauty.md} +1 -1
- package/resource/knowledge/livekit/core-sdk/{live/ios/live-gift.md → features/ios/gift.md} +8 -9
- package/resource/knowledge/livekit/core-sdk/{live/ios/live-live-list.md → features/ios/live-list.md} +2 -2
- package/resource/knowledge/livekit/core-sdk/{voice/uni-app/voice-audio-effect.md → features/uni-app/audio-effect.md} +2 -3
- package/resource/knowledge/livekit/core-sdk/{voice/uni-app/voice-barrage.md → features/uni-app/barrage.md} +2 -2
- package/resource/knowledge/livekit/core-sdk/features/uni-app/base-beauty.md +145 -0
- package/resource/knowledge/livekit/core-sdk/{voice/uni-app/voice-gift.md → features/uni-app/gift.md} +6 -7
- package/resource/knowledge/livekit/core-sdk/{voice/uni-app/voice-room-list.md → features/uni-app/live-list.md} +1 -1
- package/resource/knowledge/livekit/core-sdk/live/android/{live-co-guest-interaction.md → co-guest-interaction.md} +2 -3
- package/resource/knowledge/livekit/core-sdk/live/android/{live-host-interaction.md → host-interaction.md} +2 -4
- package/resource/knowledge/livekit/core-sdk/live/android/{live-integration.md → integration.md} +6 -9
- package/resource/knowledge/livekit/core-sdk/live/flutter/{live-host-interaction.md → host-interaction.md} +1 -3
- package/resource/knowledge/livekit/core-sdk/live/flutter/{live-integration.md → integration.md} +1 -6
- package/resource/knowledge/livekit/core-sdk/live/ios/{live-co-guest-interaction.md → co-guest-interaction.md} +2 -3
- package/resource/knowledge/livekit/core-sdk/live/ios/{live-host-interaction.md → host-interaction.md} +3 -5
- package/resource/knowledge/livekit/core-sdk/live/ios/{live-integration.md → integration.md} +7 -10
- package/resource/knowledge/livekit/core-sdk/live/uni-app/co-guest-interaction.md +561 -0
- package/resource/knowledge/livekit/core-sdk/live/uni-app/host-interaction.md +323 -0
- package/resource/knowledge/livekit/core-sdk/live/uni-app/integration.md +312 -0
- package/resource/knowledge/livekit/core-sdk/voice/android/{voice-co-guest-interaction.md → co-guest-interaction.md} +3 -3
- package/resource/knowledge/livekit/core-sdk/voice/android/{voice-host-interaction.md → host-interaction.md} +2 -4
- package/resource/knowledge/livekit/core-sdk/voice/android/{voice-integration.md → integration.md} +11 -14
- package/resource/knowledge/livekit/core-sdk/voice/flutter/{voice-co-guest-interaction.md → co-guest-interaction.md} +0 -1
- package/resource/knowledge/livekit/core-sdk/voice/flutter/{voice-integration.md → integration.md} +1 -4
- package/resource/knowledge/livekit/core-sdk/voice/ios/{voice-co-guest-interaction.md → co-guest-interaction.md} +3 -3
- package/resource/knowledge/livekit/core-sdk/voice/ios/{voice-host-interaction.md → host-interaction.md} +2 -4
- package/resource/knowledge/livekit/core-sdk/voice/ios/{voice-integration.md → integration.md} +7 -10
- package/resource/knowledge/livekit/core-sdk/voice/uni-app/{voice-co-guest-interaction.md → co-guest-interaction.md} +6 -6
- package/resource/knowledge/livekit/core-sdk/voice/uni-app/{voice-integration.md → integration.md} +6 -7
- package/resource/knowledge/livekit/preset/live/vue/features/barrage.md +2 -3
- package/resource/knowledge/livekit/preset/live/vue/features/live-audience-list.md +1 -1
- package/resource/knowledge/livekit/preset/live/vue/features/live-view.md +1 -1
- package/resource/knowledge/push/api-reference/android.md +337 -0
- package/resource/knowledge/push/api-reference/donut.md +190 -0
- package/resource/knowledge/push/api-reference/flutter.md +176 -0
- package/resource/knowledge/push/api-reference/harmonyos.md +140 -0
- package/resource/knowledge/push/api-reference/ios.md +537 -0
- package/resource/knowledge/push/api-reference/react-native.md +154 -0
- package/resource/knowledge/push/api-reference/uni-app.md +148 -0
- package/resource/knowledge/push/api-reference/unity.md +119 -0
- package/resource/knowledge/push/api-reference/unreal-engine.md +123 -0
- package/resource/knowledge/push/config/android/fcm.md +1 -8
- package/resource/knowledge/push/config/android/honor.md +3 -7
- package/resource/knowledge/push/config/android/huawei.md +0 -5
- package/resource/knowledge/push/config/android/meizu.md +0 -5
- package/resource/knowledge/push/config/android/oppo.md +0 -4
- package/resource/knowledge/push/config/android/vivo.md +0 -4
- package/resource/knowledge/push/config/android/xiaomi.md +0 -2
- package/resource/knowledge/push/config/donut.md +33 -46
- package/resource/knowledge/push/config/harmonyos.md +6 -9
- package/resource/knowledge/push/config/ios.md +2 -9
- package/resource/knowledge/push/config/react-native.md +17 -25
- package/resource/knowledge/push/config/unity.md +16 -24
- package/resource/knowledge/push/config/unreal-engine.md +16 -24
- package/resource/knowledge/push/integration/android.md +21 -21
- package/resource/knowledge/push/integration/donut.md +24 -34
- package/resource/knowledge/push/integration/flutter.md +12 -1
- package/resource/knowledge/push/integration/harmonyos.md +2 -1
- package/resource/knowledge/push/integration/ios.md +16 -10
- package/resource/knowledge/push/integration/react-native.md +10 -14
- package/resource/knowledge/push/integration/uni-app.md +10 -6
- package/resource/knowledge/push/integration/unity.md +19 -22
- package/resource/knowledge/push/integration/unreal-engine.md +7 -9
- package/resource/knowledge/push/overview/prepare.md +2 -2
- package/resource/knowledge/roomkit/core-sdk/android/capability-matrix.md +46 -0
- package/resource/knowledge/roomkit/core-sdk/android/unsupported-features.md +82 -0
- package/resource/knowledge/roomkit/core-sdk/flutter/capability-matrix.md +46 -0
- package/resource/knowledge/roomkit/core-sdk/flutter/room-participant-state.md +1 -1
- package/resource/knowledge/roomkit/core-sdk/flutter/unsupported-features.md +82 -0
- package/resource/knowledge/roomkit/core-sdk/ios/capability-matrix.md +46 -0
- package/resource/knowledge/roomkit/core-sdk/ios/room-state.md +1 -1
- package/resource/knowledge/roomkit/core-sdk/ios/unsupported-features.md +82 -0
- package/resource/knowledge/roomkit/core-sdk/vue/call-user-to-room.md +1 -1
- package/resource/knowledge/roomkit/core-sdk/vue/device-state.md +0 -4
- package/resource/knowledge/roomkit/core-sdk/vue/free-beauty-panel.md +2 -5
- package/resource/knowledge/roomkit/core-sdk/vue/room-chat.md +0 -3
- package/resource/knowledge/roomkit/core-sdk/vue/room-participant-state.md +0 -2
- package/resource/knowledge/roomkit/core-sdk/vue/room-state.md +2 -6
- package/resource/knowledge/roomkit/core-sdk/vue/room-view.md +0 -1
- package/resource/knowledge/roomkit/core-sdk/vue/schedule-room.md +1 -1
- package/resource/knowledge/roomkit/core-sdk/vue/screen-share.md +2 -4
- package/resource/knowledge/roomkit/core-sdk/vue/virtual-background.md +2 -3
- package/resource/knowledge/roomkit/preset/android/integration.md +14 -16
- package/resource/knowledge/roomkit/preset/flutter/integration.md +9 -17
- package/resource/knowledge/roomkit/preset/ios/integration.md +9 -17
- package/resource/knowledge/roomkit/preset/react/integration.md +0 -4
- package/resource/knowledge/trtc/android/TRTCCloud.md +97 -180
- package/resource/knowledge/trtc/android/TRTCCloudDef.md +20 -20
- package/resource/knowledge/trtc/android/TRTCCloudListener.md +43 -77
- package/resource/knowledge/trtc/android/TRTCStatistics.md +1 -1
- package/resource/knowledge/trtc/android/TXAudioEffectManager.md +4 -24
- package/resource/knowledge/trtc/android/TXDeviceManager.md +2 -2
- package/resource/knowledge/trtc/android/TXLiteAVCode.md +1 -1
- package/resource/knowledge/trtc/c++/ITRTCCloud.md +96 -189
- package/resource/knowledge/trtc/c++/ITRTCStatistics.md +1 -1
- package/resource/knowledge/trtc/c++/ITXAudioEffectManager.md +1 -21
- package/resource/knowledge/trtc/c++/ITXDeviceManager.md +4 -6
- package/resource/knowledge/trtc/c++/TRTCCloudCallback.md +42 -76
- package/resource/knowledge/trtc/c++/TRTCTypeDef.md +18 -19
- package/resource/knowledge/trtc/c++/TXLiteAVCode.md +1 -1
- package/resource/knowledge/trtc/ios/TRTCCloud.md +95 -181
- package/resource/knowledge/trtc/ios/TRTCCloudDelegate.md +43 -78
- package/resource/knowledge/trtc/ios/TRTCStatistics.md +1 -1
- package/resource/knowledge/trtc/ios/TXAudioEffectManager.md +1 -20
- package/resource/knowledge/trtc/ios/TXDeviceManager.md +4 -6
- package/resource/knowledge/trtc/ios/TXLiteAVCode.md +1 -1
- package/resource/knowledge/trtc/ios/TXLiveSDKTypeDef.md +20 -20
- package/server.js +2 -2
- package/tools/common/finalize_answer.js +1 -1
- package/tools/common/present_framework_choice.js +2 -2
- package/tools/common/search_trtc_knowledge.js +3 -3
- package/tools/common/submit_feedback.js +1 -1
- package/tools/definitions/get_native_live_uikit_integration_def.js +60 -0
- package/tools/definitions/get_native_livekit_core_integration_def.js +1 -1
- package/tools/definitions/present_framework_choice_def.js +2 -2
- package/tools/definitions/search_trtc_knowledge_def.js +5 -5
- package/tools/index.js +2 -0
- package/tools/live/get_native_live_uikit_integration.js +69 -0
- package/tools/live/get_native_livekit_core_integration.js +6 -6
- package/utils/report-cls-client.js +1 -1
- package/utils/report-es-client.js +1 -1
- package/resource/index/component-slugs.json +0 -1
- package/resource/index/doc-source-urls.json +0 -1
- package/resource/index/manifest.json +0 -1
- package/resource/knowledge/livekit/core-sdk/live/android/live-audio-effect.md +0 -229
- package/resource/knowledge/livekit/core-sdk/live/android/live-gift.md +0 -459
- package/resource/knowledge/livekit/core-sdk/live/flutter/live-barrage.md +0 -506
- package/resource/knowledge/livekit/core-sdk/live/flutter/live-gift.md +0 -427
- package/resource/knowledge/livekit/core-sdk/live/flutter/live-live-list.md +0 -726
- package/resource/knowledge/livekit/core-sdk/live/ios/live-audience-list.md +0 -265
- package/resource/knowledge/livekit/core-sdk/live/ios/live-audio-effect.md +0 -214
- package/resource/knowledge/livekit/core-sdk/live/ios/live-barrage.md +0 -427
- package/resource/knowledge/livekit/core-sdk/voice/android/voice-audience-list.md +0 -272
- package/resource/knowledge/livekit/core-sdk/voice/android/voice-barrage.md +0 -486
- package/resource/knowledge/livekit/core-sdk/voice/android/voice-room-list.md +0 -523
- package/resource/knowledge/livekit/core-sdk/voice/flutter/voice-audience-list.md +0 -262
- package/resource/knowledge/livekit/core-sdk/voice/flutter/voice-audio-effect.md +0 -600
- package/resource/knowledge/livekit/core-sdk/voice/ios/voice-gift.md +0 -411
- package/resource/knowledge/livekit/core-sdk/voice/ios/voice-room-list.md +0 -404
- /package/resource/knowledge/livekit/core-sdk/api-reference/{web → vue}/index.md +0 -0
- /package/resource/knowledge/livekit/core-sdk/{live/android/live-audience-list.md → features/android/audience-list.md} +0 -0
- /package/resource/knowledge/livekit/core-sdk/{live/flutter/live-audience-list.md → features/flutter/audience-list.md} +0 -0
- /package/resource/knowledge/livekit/core-sdk/{live/flutter/live-base-beauty.md → features/flutter/base-beauty.md} +0 -0
- /package/resource/knowledge/livekit/core-sdk/{voice/uni-app/voice-audience-list.md → features/uni-app/audience-list.md} +0 -0
- /package/resource/knowledge/livekit/core-sdk/live/flutter/{live-co-guest-interaction.md → co-guest-interaction.md} +0 -0
|
@@ -0,0 +1,278 @@
|
|
|
1
|
+
## 功能预览
|
|
2
|
+
|
|
3
|
+
本文对 TUILiveKit 中的**直播列表页面**进行了详细的介绍,您可以在已有项目中直接参考本文档集成我们开发好的直播列表页面,也可以根据您的需求按照文档中的内容对页面的样式,布局以及功能项进行深度的定制。
|
|
4
|
+
- **双列瀑布流**:默认同时预览2个直播间的画面。
|
|
5
|
+
|
|
6
|
+
- **单列瀑布流**:默认同时预览1个直播间的画面(**仅视频直播支持单列预览**)。
|
|
7
|
+
|
|
8
|
+
| 双列瀑布流 | 单列瀑布流 |
|
|
9
|
+
| --- | --- |
|
|
10
|
+
| | ### |
|
|
11
|
+
|
|
12
|
+
> **注意:**
|
|
13
|
+
>
|
|
14
|
+
> 预览直播间画面时,预览时长都会被计入观众的音视频时长,组件详细计费相关内容请参考 计费说明。
|
|
15
|
+
>
|
|
16
|
+
|
|
17
|
+
## 快速接入
|
|
18
|
+
|
|
19
|
+
### 步骤 1. 开通服务
|
|
20
|
+
|
|
21
|
+
参考 开通服务 文档开通「体验版」或「大规模直播版」套餐。
|
|
22
|
+
|
|
23
|
+
### 步骤 2. 代码集成
|
|
24
|
+
|
|
25
|
+
参考 准备工作 接入 `TUILiveKit`。
|
|
26
|
+
|
|
27
|
+
### 步骤 3. 添加直播列表瀑布流视图
|
|
28
|
+
|
|
29
|
+
您可以根据需要选择使用单列或双列瀑布流。
|
|
30
|
+
|
|
31
|
+
【Kotlin】
|
|
32
|
+
``` java
|
|
33
|
+
import android.content.Context
|
|
34
|
+
import android.os.Bundle
|
|
35
|
+
import androidx.appcompat.app.AppCompatActivity
|
|
36
|
+
import com.trtc.uikit.livekit.features.livelist.LiveListView
|
|
37
|
+
import com.trtc.uikit.livekit.features.livelist.Style
|
|
38
|
+
|
|
39
|
+
class YourActivity : AppCompatActivity() {
|
|
40
|
+
override fun onCreate(savedInstanceState: Bundle?) {
|
|
41
|
+
super.onCreate(savedInstanceState)
|
|
42
|
+
// 1.创建并初始化瀑布流视图
|
|
43
|
+
val view = createLiveListView(this)
|
|
44
|
+
// 2.将创建的 LiveListView 添加到您的 Activity 或 Fragment 中
|
|
45
|
+
setContentView(view)
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
fun createLiveListView(context: Context): LiveListView {
|
|
49
|
+
val liveListView = LiveListView(context)
|
|
50
|
+
// 此处代码为双列瀑布流初始化示例,若您需要使用单列瀑布流,请将初始化代码改为 liveListView.init(this, Style.SINGLE_COLUMN)
|
|
51
|
+
liveListView.init(this, Style.DOUBLE_COLUMN)
|
|
52
|
+
return liveListView
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
【Java】
|
|
58
|
+
``` java
|
|
59
|
+
import android.content.Context;
|
|
60
|
+
import android.os.Bundle;
|
|
61
|
+
|
|
62
|
+
import androidx.appcompat.app.AppCompatActivity;
|
|
63
|
+
|
|
64
|
+
import com.trtc.uikit.livekit.features.livelist.LiveListView;
|
|
65
|
+
import com.trtc.uikit.livekit.features.livelist.Style;
|
|
66
|
+
|
|
67
|
+
public class YourActivity extends AppCompatActivity {
|
|
68
|
+
|
|
69
|
+
@Override
|
|
70
|
+
protected void onCreate(Bundle savedInstanceState) {
|
|
71
|
+
super.onCreate(savedInstanceState);
|
|
72
|
+
// 1.创建并初始化瀑布流视图
|
|
73
|
+
LiveListView view = createLiveListView(this);
|
|
74
|
+
// 2.将创建的 LiveListView 添加到您的 Activity 或 Fragment 中
|
|
75
|
+
setContentView(view);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
private LiveListView createLiveListView(Context context) {
|
|
79
|
+
LiveListView liveListView = new LiveListView(context);
|
|
80
|
+
// 此处代码为双列瀑布流初始化示例,若您需要使用单列瀑布流,请将初始化代码改为 liveListView.init(this, Style.SINGLE_COLUMN, null, null);
|
|
81
|
+
liveListView.init(this, Style.DOUBLE_COLUMN, null, null);
|
|
82
|
+
return liveListView;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### 步骤 4. 实现直播列表页到观众观看页的跳转
|
|
88
|
+
|
|
89
|
+
**双列瀑布流直播列表**和**单列瀑布流**均会通过 `OnItemClickListener`回调点击事件,您只需在直播列表瀑布流视图中实现 `OnItemClickListener` 来响应用户的点击事件,并在 `onItemClick` 中实现跳转进入观众观看页的功能,观众观看页实现可参考 观众观看 。
|
|
90
|
+
|
|
91
|
+
**交互示例:**
|
|
92
|
+
|
|
93
|
+
**代码示例**:
|
|
94
|
+
|
|
95
|
+
【Kotlin】
|
|
96
|
+
``` java
|
|
97
|
+
fun createLiveListView(context: Context): LiveListView {
|
|
98
|
+
val liveListView = LiveListView(context)
|
|
99
|
+
// 此处代码为双列瀑布流初始化示例,若您需要使用单列瀑布流,请将初始化代码改为 liveListView.init(this, Style.SINGLE_COLUMN)
|
|
100
|
+
liveListView.init(this, Style.DOUBLE_COLUMN)
|
|
101
|
+
|
|
102
|
+
liveListView.setOnItemClickListener { view, liveInfo ->
|
|
103
|
+
// 点击直播列表项时,跳转进入到观众观看页面
|
|
104
|
+
val intent = Intent(context, YourAudienceActivity::class.java)
|
|
105
|
+
intent.putExtra("liveId", liveInfo.roomId)
|
|
106
|
+
context.startActivity(intent)
|
|
107
|
+
}
|
|
108
|
+
return liveListView
|
|
109
|
+
}
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
【Java】
|
|
113
|
+
``` java
|
|
114
|
+
private LiveListView createLiveListView(Context context) {
|
|
115
|
+
LiveListView liveListView = new LiveListView(context);
|
|
116
|
+
// 此处代码为双列瀑布流初始化示例,若您需要使用单列瀑布流,请将初始化代码改为 liveListView.init(this, Style.SINGLE_COLUMN, null, null);
|
|
117
|
+
liveListView.init(this, Style.DOUBLE_COLUMN, null, null);
|
|
118
|
+
|
|
119
|
+
liveListView.setOnItemClickListener((view, liveInfo) -> {
|
|
120
|
+
// 点击直播列表项时,跳转进入到观众观看页面
|
|
121
|
+
Intent intent = new Intent(context, YourAudienceActivity.class);
|
|
122
|
+
intent.putExtra("liveId", liveInfo.roomId);
|
|
123
|
+
context.startActivity(intent);
|
|
124
|
+
});
|
|
125
|
+
return liveListView;
|
|
126
|
+
}
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
## 自定义您的界面布局
|
|
130
|
+
|
|
131
|
+
TUILiveKit 提供了灵活的接口定制直播列表瀑布流组件,您可以根据业务需求自定义数据源和列表项样式。
|
|
132
|
+
|
|
133
|
+
### 自定义数据源
|
|
134
|
+
|
|
135
|
+
如果您的后台有单独的直播列表数据,可以通过实现 `LiveListDataSource` 接口来自定义数据源,而不使用组件默认的列表数据。
|
|
136
|
+
|
|
137
|
+
【Kotlin】
|
|
138
|
+
``` java
|
|
139
|
+
// 1.导入依赖
|
|
140
|
+
import com.trtc.uikit.livekit.features.livelist.LiveListDataSource;
|
|
141
|
+
|
|
142
|
+
// 2.通过实现 LiveListDataSource 自定义数据源
|
|
143
|
+
val dataSource = object : LiveListDataSource {
|
|
144
|
+
override fun fetchLiveList(param: FetchLiveListParam,callback: LiveListCallback) {
|
|
145
|
+
// 对接自己的业务后台,按照下面的格式返回数据给UI组件
|
|
146
|
+
val liveInfoList = mutableListOf<TUILiveListManager.LiveInfo>()
|
|
147
|
+
val liveInfo = TUILiveListManager.LiveInfo().apply {
|
|
148
|
+
roomInfo = TUIRoomDefine.RoomInfo().apply {
|
|
149
|
+
roomId = "live_123456"
|
|
150
|
+
name = "live_123456"
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
liveInfoList.add(liveInfo)
|
|
154
|
+
val cursor = "aabbccdd"
|
|
155
|
+
callback.onSuccess(cursor, liveInfoList)
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
// 3.初始化时传入自定义的 dataSource
|
|
160
|
+
liveListView.init(this, Style.DOUBLE_COLUMN, dataSource = dataSource)
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
【Java】
|
|
164
|
+
``` java
|
|
165
|
+
// 1.导入依赖
|
|
166
|
+
import com.trtc.uikit.livekit.features.livelist.LiveListDataSource;
|
|
167
|
+
|
|
168
|
+
// 2.通过实现 LiveListDataSource 自定义数据源
|
|
169
|
+
LiveListDataSource dataSource = (param, callback) -> {
|
|
170
|
+
//对接自己的业务后台,按照下面的格式返回数据给UI组件
|
|
171
|
+
List<TUILiveListManager.LiveInfo> liveInfoList = new ArrayList<>();
|
|
172
|
+
TUILiveListManager.LiveInfo liveInfo = new TUILiveListManager.LiveInfo();
|
|
173
|
+
liveInfo.roomInfo = new TUIRoomDefine.RoomInfo();
|
|
174
|
+
liveInfo.roomInfo.roomId = "live_123456";
|
|
175
|
+
liveInfo.roomInfo.name = "live_123456";
|
|
176
|
+
liveInfoList.add(liveInfo);
|
|
177
|
+
String cursor = "aabbccdd";
|
|
178
|
+
callback.onSuccess(cursor, liveInfoList);
|
|
179
|
+
};
|
|
180
|
+
|
|
181
|
+
// 3.初始化时传入自定义的 dataSource
|
|
182
|
+
liveListView.init(this, Style.DOUBLE_COLUMN, null, dataSource);
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
### 自定义挂件
|
|
186
|
+
|
|
187
|
+
瀑布流列表项底部默认显示视频流画面或直播封面。如果您需要自定义列表项顶部的 UI 元素(例如主播头像、直播标题等),可以通过实现 `LiveListViewAdapter` 接口来完成。
|
|
188
|
+
|
|
189
|
+
【Kotlin】
|
|
190
|
+
``` java
|
|
191
|
+
// 1.导入依赖
|
|
192
|
+
import com.trtc.uikit.livekit.features.livelist.LiveListViewAdapter;
|
|
193
|
+
|
|
194
|
+
// 2.通过实现 LiveListViewAdapter 自定义挂件
|
|
195
|
+
val liveListViewAdapter = object : LiveListViewAdapter {
|
|
196
|
+
override fun createLiveInfoView(liveInfo: TUILiveListManager.LiveInfo): View {
|
|
197
|
+
// 自定义挂件 view
|
|
198
|
+
val widgetView = YourView(context)
|
|
199
|
+
widgetView.init(liveInfo)
|
|
200
|
+
return widgetView
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
override fun updateLiveInfoView(view: View, liveInfo: TUILiveListManager.LiveInfo) {
|
|
204
|
+
// 更新挂件 view 中绑定的数据
|
|
205
|
+
val widgetView = view as YourView
|
|
206
|
+
widgetView.updateLiveInfoView(liveInfo)
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
// 3.初始化时传入自定义的 liveListViewAdapter
|
|
211
|
+
liveListView.init(this, Style.DOUBLE_COLUMN, adapter = liveListViewAdapter)
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
【Java】
|
|
215
|
+
``` java
|
|
216
|
+
// 1.导入依赖
|
|
217
|
+
import com.trtc.uikit.livekit.features.livelist.LiveListViewAdapter;
|
|
218
|
+
|
|
219
|
+
// 2.通过实现 LiveListViewAdapter 自定义挂件
|
|
220
|
+
LiveListViewAdapter liveListViewAdapter = new LiveListViewAdapter() {
|
|
221
|
+
@Override
|
|
222
|
+
public View createLiveInfoView(TUILiveListManager.LiveInfo liveInfo) {
|
|
223
|
+
// 自定义挂件view
|
|
224
|
+
CustomView widgetView = new CustomView(context);
|
|
225
|
+
widgetView.init(liveInfo);
|
|
226
|
+
return widgetView;
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
@Override
|
|
230
|
+
public void updateLiveInfoView(View view, TUILiveListManager.LiveInfo liveInfo) {
|
|
231
|
+
// 更新挂件view中绑定的数据
|
|
232
|
+
CustomView widgetView = (CustomView) view;
|
|
233
|
+
widgetView.updateLiveInfoView(liveInfo);
|
|
234
|
+
}
|
|
235
|
+
};
|
|
236
|
+
|
|
237
|
+
// 3.初始化时传入自定义的 liveListViewAdapter
|
|
238
|
+
liveListView.init(this, Style.DOUBLE_COLUMN, liveListViewAdapter, null);
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
## 下一步
|
|
242
|
+
|
|
243
|
+
恭喜您,现在您已经成功集成了 **直播列表** 功能。接下来,您可以根据您的业务场景实现**主播开播、观众观看**等功能
|
|
244
|
+
|
|
245
|
+
**视频直播场景:**
|
|
246
|
+
| <strong>功能</strong> | <strong>描述</strong> | <strong>集成指引</strong> |
|
|
247
|
+
| --- | --- | --- |
|
|
248
|
+
| <strong>主播开播</strong> | 实现主播开播全流程功能,包括开播前的准备和开播后的各种互动。 | 主播开播 |
|
|
249
|
+
| <strong>观众观看</strong> | 实现观众进入主播的直播间后观看直播,实现观众连麦 、直播间信息、在线观众、弹幕显示等功能。 | 观众观看 |
|
|
250
|
+
|
|
251
|
+
**语聊房场景:**
|
|
252
|
+
| <strong>功能</strong> | <strong>描述</strong> | <strong>集成指引</strong> |
|
|
253
|
+
| --- | --- | --- |
|
|
254
|
+
| <strong>主播开播</strong> | 实现主播开播语聊房全流程功能,包括开播前的准备和开播后的各种互动。 | 主播开播 |
|
|
255
|
+
| <strong>观众观看</strong> | 实现观众进入主播的语聊房后进行互动,如上麦、收发弹幕等功能。 | 观众观看 |
|
|
256
|
+
|
|
257
|
+
## 常见问题
|
|
258
|
+
|
|
259
|
+
### 集成直播列表功能后页面没有任何直播怎么办?
|
|
260
|
+
|
|
261
|
+
如果您看到空白页面,需要检查您是否已完成 登录步骤。为了测试该功能,您可以使用两台设备:一台设备用于开播,另一台设备在直播列表页面,就能拉取到已开播的直播间。
|
|
262
|
+
|
|
263
|
+
### 单列瀑布流和双列瀑布流有什么区别?
|
|
264
|
+
|
|
265
|
+
单列瀑布流一次预览一个直播间画面,而双列瀑布流则同时预览两个直播间画面。您可以根据自己的设计需求选择合适的布局。
|
|
266
|
+
|
|
267
|
+
### 预览直播画面是否收费?
|
|
268
|
+
|
|
269
|
+
是的,预览直播间画面时长会计入观众的音视频时长,这部分是需要付费的。详细的 计费说明 可以参考文档中的相关内容。
|
|
270
|
+
|
|
271
|
+
### 我使用了自定义数据源 (LiveListDataSource),但列表不显示/不刷新怎么办?
|
|
272
|
+
|
|
273
|
+
请确保您正确实现了 `LiveListDataSource` 接口。重点检查以下几点:
|
|
274
|
+
1. 检查 `fetchLiveList` 方法是否被正确调用。
|
|
275
|
+
|
|
276
|
+
2. 确保在获取数据后(无论成功或失败)都调用了 `callback.onSuccess` 或 `callback.onFailure`。
|
|
277
|
+
|
|
278
|
+
3. 检查您的业务后台接口是否返回了正确的数据格式。
|
|
@@ -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 中已经内置了摄像头麦克风等权限的声明,在接入过程中您无需再关心这些权限的声明。
|