@tencentcloud/sdk-mcp 1.2.8 → 1.3.0
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/package.json +1 -1
- package/resource/doc/chatuikit/faq/common/server.md +54 -0
- package/resource/doc/chatuikit/faq/web_sdk/faq.md +60 -0
- package/resource/doc/livekit/vue/components/co-guest-panel.md +5 -5
- package/resource/doc/livekit/vue/components/live-view.md +16 -49
- package/resource/doc/livekit/vue/{components/live-list.md → live-list-integration.md} +13 -44
- package/resource/doc/livekit/vue/live-player-desk-integration.md +293 -0
- package/resource/doc/livekit/vue/{components/live-player.md → live-player-h5-integration.md} +118 -110
- package/resource/doc/livekit/vue/{components/broadcast.md → live-pusher-integration.md} +77 -82
- package/resource/doc/livekit/vue/workflow.md +219 -0
- package/resource/doc/native_live/android/V2TXLiveCode_api_android.md +334 -0
- package/resource/doc/native_live/android/V2TXLiveDef_api_android.md +434 -0
- package/resource/doc/native_live/android/V2TXLivePlayerObserver_api_android.md +685 -0
- package/resource/doc/native_live/android/V2TXLivePlayer_api_android.md +712 -0
- package/resource/doc/native_live/android/V2TXLivePremier_api_android.md +284 -0
- package/resource/doc/native_live/android/V2TXLivePusherObserver_api_android.md +849 -0
- package/resource/doc/native_live/android/V2TXLivePusher_api_android.md +1046 -0
- package/resource/doc/native_live/flutter/V2TXLiveCode_api_flutter.md +460 -0
- package/resource/doc/native_live/flutter/V2TXLiveDef_api_flutter.md +558 -0
- package/resource/doc/native_live/flutter/V2TXLivePlayerObserver_api_flutter.md +879 -0
- package/resource/doc/native_live/flutter/V2TXLivePlayer_api_flutter.md +668 -0
- package/resource/doc/native_live/flutter/V2TXLivePremier_api_flutter.md +456 -0
- package/resource/doc/native_live/flutter/V2TXLivePusherObserver_api_flutter.md +332 -0
- package/resource/doc/native_live/flutter/V2TXLivePusher_api_flutter.md +748 -0
- package/resource/doc/native_live/iOS/V2TXLiveCode_api_iOS.md +328 -0
- package/resource/doc/native_live/iOS/V2TXLiveDef_api_iOS.md +505 -0
- package/resource/doc/native_live/iOS/V2TXLivePlayerObserver_api_iOS.md +507 -0
- package/resource/doc/native_live/iOS/V2TXLivePlayer_api_iOS.md +676 -0
- package/resource/doc/native_live/iOS/V2TXLivePremier_api_iOS.md +284 -0
- package/resource/doc/native_live/iOS/V2TXLivePusherObserver_api_iOS.md +820 -0
- package/resource/doc/native_live/iOS/V2TXLivePusher_api_iOS.md +1065 -0
- package/resource/doc/trtc/C++/ITRTCCloud.md +4131 -0
- package/resource/doc/trtc/C++/ITRTCStatistics.md +326 -0
- package/resource/doc/trtc/C++/ITXAudioEffectManager.md +1306 -0
- package/resource/doc/trtc/C++/ITXDeviceManager.md +1029 -0
- package/resource/doc/trtc/C++/TRTCCloudCallback.md +2743 -0
- package/resource/doc/trtc/C++/TRTCTypeDef.md +3703 -0
- package/resource/doc/trtc/C++/TXLiteAVCode.md +930 -0
- package/resource/doc/trtc/android/TRTCCloud.md +3832 -0
- package/resource/doc/trtc/android/TRTCCloudDef.md +3945 -0
- package/resource/doc/trtc/android/TRTCCloudListener.md +2480 -0
- package/resource/doc/trtc/android/TRTCStatistics.md +296 -0
- package/resource/doc/trtc/android/TXAudioEffectManager.md +1344 -0
- package/resource/doc/trtc/android/TXBeautyManager.md +980 -0
- package/resource/doc/trtc/android/TXDeviceManager.md +441 -0
- package/resource/doc/trtc/android/TXLiteAVCode.md +914 -0
- package/resource/doc/trtc/iOS/TRTCCloud.md +4256 -0
- package/resource/doc/trtc/iOS/TRTCCloudDelegate.md +2580 -0
- package/resource/doc/trtc/iOS/TRTCStatistics.md +296 -0
- package/resource/doc/trtc/iOS/TXAudioEffectManager.md +1117 -0
- package/resource/doc/trtc/iOS/TXBeautyManager.md +986 -0
- package/resource/doc/trtc/iOS/TXDeviceManager.md +1025 -0
- package/resource/doc/trtc/iOS/TXLiteAVCode.md +929 -0
- package/resource/doc/trtc/iOS/TXLiveSDKTypeDef.md +3798 -0
- package/tools/definitions/get_faq_def.js +4 -0
- package/tools/definitions/get_faq_def.js.map +1 -1
- package/tools/definitions/get_native_live_api_def.js +22 -0
- package/tools/definitions/get_native_live_api_def.js.map +1 -0
- package/tools/definitions/get_trtc_native_api_def.js +17 -0
- package/tools/definitions/get_trtc_native_api_def.js.map +1 -0
- package/tools/definitions/get_web_live_uikit_component_detail_def.js +9 -3
- package/tools/definitions/get_web_live_uikit_component_detail_def.js.map +1 -1
- package/tools/definitions/get_web_live_uikit_integration_def.js +32 -0
- package/tools/definitions/get_web_live_uikit_integration_def.js.map +1 -0
- package/tools/index.js +8 -0
- package/tools/index.js.map +1 -1
- package/tools/live/get-web-live-uikit-integration.js +52 -0
- package/tools/live/get-web-live-uikit-integration.js.map +1 -0
- package/tools/native_live/get-native-live-api.js +31 -0
- package/tools/native_live/get-native-live-api.js.map +1 -0
- package/tools/trtc/get-trtc-native-api.js +31 -0
- package/tools/trtc/get-trtc-native-api.js.map +1 -0
- package/utils/generate-structured-result.js +34 -0
- package/utils/generate-structured-result.js.map +1 -0
- package/utils/handle-component-name.js +0 -8
- package/utils/handle-component-name.js.map +1 -1
- package/utils/report-cls-client.js +1 -1
- package/utils/report-es-client.js +1 -1
|
@@ -0,0 +1,293 @@
|
|
|
1
|
+
本文对 TUILiveKit Demo 中的**观看页面**进行了详细的介绍,您可以在已有项目中直接参考本文档集成我们开发好的观看页面,也可以根据您的需求按照文档中的内容对页面的样式,布局以及功能项进行深度的定制。
|
|
2
|
+
|
|
3
|
+
## 功能展示
|
|
4
|
+
|
|
5
|
+
观看页面提供默认行为和风格,但如果默认行为和样式不能完全满足您的需求,您也可以对 UI 进行自定义。图中显示的数字与特定功能列表中的类别相对应。其中主要包含直播**信息展示、视频直播区域、在线观众、音视频操作、直播时长、画面分辨率切换、全屏功能、聊天互动、消息列表等。**
|
|
6
|
+
- **直播视频播放**:高清流畅的直播体验。
|
|
7
|
+
|
|
8
|
+
- **弹幕互动**:实时弹幕交流。
|
|
9
|
+
|
|
10
|
+
- **观众列表**:查看在线观众信息。
|
|
11
|
+
|
|
12
|
+
- **全屏播放**:沉浸式观看体验。
|
|
13
|
+
|
|
14
|
+
- **H5 移动平台支持**:跨平台兼容。
|
|
15
|
+
|
|
16
|
+

|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
## 快速接入
|
|
20
|
+
|
|
21
|
+
### 步骤1:环境配置及开通服务
|
|
22
|
+
|
|
23
|
+
在进行快速接入之前,您需要参见 [准备工作](https://write.woa.com/document/188228825253294080),满足相关环境配置及开通对应服务。
|
|
24
|
+
|
|
25
|
+
### 步骤2:安装依赖
|
|
26
|
+
|
|
27
|
+
您可以选择以下任一方式安装依赖:
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
【npm】
|
|
33
|
+
``` bash
|
|
34
|
+
npm install tuikit-atomicx-vue3 @tencentcloud/uikit-base-component-vue3 --save
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
【pnpm】
|
|
39
|
+
``` bash
|
|
40
|
+
pnpm add tuikit-atomicx-vue3 @tencentcloud/uikit-base-component-vue3
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
【yarn】
|
|
45
|
+
``` bash
|
|
46
|
+
yarn add tuikit-atomicx-vue3 @tencentcloud/uikit-base-component-vue3
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### 步骤3:观看页面接入
|
|
50
|
+
|
|
51
|
+
在您的项目下创建 **live-player.vue **文件,可直接复制如下代码至您的项目中集成**观看页面**。
|
|
52
|
+
``` java
|
|
53
|
+
<template>
|
|
54
|
+
<UIKitProvider language="zh-CN">
|
|
55
|
+
<div class="container">
|
|
56
|
+
<!-- 直播核心区域 -->
|
|
57
|
+
<section class="live">
|
|
58
|
+
<header class="header">
|
|
59
|
+
<IconArrowStrokeBack class="back-btn" size="20" />
|
|
60
|
+
<Avatar :src="currentLive?.liveOwner.avatarUrl" :size="32" class="avatar" />
|
|
61
|
+
<span class="user-name">{{ currentLive?.liveOwner.userName || currentLive?.liveOwner.userId }}</span>
|
|
62
|
+
</header>
|
|
63
|
+
<LiveCoreView class="player" />
|
|
64
|
+
</section>
|
|
65
|
+
|
|
66
|
+
<div class="sidebar">
|
|
67
|
+
<!-- 在线观众列表 -->
|
|
68
|
+
<section class="audience">
|
|
69
|
+
<header class="section-header">
|
|
70
|
+
<h3> 在线观众 <span>({{ audienceList.length }})</span></h3>
|
|
71
|
+
</header>
|
|
72
|
+
<LiveAudienceList class="list" />
|
|
73
|
+
</section>
|
|
74
|
+
|
|
75
|
+
<!-- 消息列表 & 消息输入框 -->
|
|
76
|
+
<section class="barrage">
|
|
77
|
+
<header class="section-header">
|
|
78
|
+
<h3>消息列表</h3>
|
|
79
|
+
</header>
|
|
80
|
+
<BarrageList class="list" />
|
|
81
|
+
<BarrageInput class="input" height="48px" />
|
|
82
|
+
</section>
|
|
83
|
+
</div>
|
|
84
|
+
</div>
|
|
85
|
+
</UIKitProvider>
|
|
86
|
+
</template>
|
|
87
|
+
|
|
88
|
+
<script setup lang="ts">
|
|
89
|
+
import { onMounted } from 'vue';
|
|
90
|
+
import { LiveAudienceList, BarrageList, BarrageInput, useLiveAudienceState, LiveCoreView, useLiveListState, Avatar, useLoginState } from 'tuikit-atomicx-vue3';
|
|
91
|
+
import { UIKitProvider, IconArrowStrokeBack } from '@tencentcloud/uikit-base-component-vue3';
|
|
92
|
+
|
|
93
|
+
const { audienceList } = useLiveAudienceState();
|
|
94
|
+
const { currentLive } = useLiveListState();
|
|
95
|
+
const { login } = useLoginState();
|
|
96
|
+
|
|
97
|
+
const liveId = 'live_xxxx' // 填入您要观看的直播间的ID
|
|
98
|
+
|
|
99
|
+
async function initLogin() {
|
|
100
|
+
try {
|
|
101
|
+
await login({
|
|
102
|
+
sdkAppId: 0, // SDKAppID, 可以参考步骤 1 获取
|
|
103
|
+
userId: 'xxx', // UserID, 可以参考步骤 1 获取
|
|
104
|
+
userSig: 'xxx', // userSig, 可以参考步骤 1 获取
|
|
105
|
+
});
|
|
106
|
+
} catch (error) {
|
|
107
|
+
console.error('登录失败:', error);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
onMounted(async () => {
|
|
112
|
+
await initLogin();
|
|
113
|
+
});
|
|
114
|
+
|
|
115
|
+
</script>
|
|
116
|
+
|
|
117
|
+
<style>:global(body){height:100vh;width:100vw;margin:0;padding:0;overflow:hidden;font-size:15px;line-height:1.6;text-rendering:optimizeLegibility;}:global(*),:global(*::before),:global(*::after){box-sizing:border-box;margin:0;}.container{display:grid;grid-template-columns:70% 30%;height:100vh;width:100vw;gap:16px;padding:16px;background:var(--bg-color-default);box-sizing:border-box;overflow:hidden;}.live{display:flex;flex-direction:column;background:var(--bg-color-operate);border-radius:12px;overflow:hidden;box-shadow:0 2px 8px var(--shadow-color);}.header{display:flex;align-items:center;gap:12px;padding:16px;border-bottom:1px solid var(--stroke-color-primary);}.back-btn{cursor:pointer;color:var(--text-color-tertiary);transition:color 0.2s;}.back-btn:hover{color:var(--text-color-link-hover);}.avatar{border:1px solid var(--uikit-color-white-7);}.user-name{color:var(--text-color-primary);font-weight:500;}.player{flex:1;background:var(--uikit-color-black-1);}.sidebar{display:flex;flex-direction:column;gap:16px;height:100%;overflow:hidden;}.audience{display:flex;flex-direction:column;background:var(--bg-color-operate);border-radius:12px;overflow:hidden;box-shadow:0 2px 8px var(--shadow-color);flex:1;min-height:0;}.barrage{display:flex;flex-direction:column;background:var(--bg-color-operate);border-radius:12px;overflow:hidden;box-shadow:0 2px 8px var(--shadow-color);flex:1;min-height:0;}.section-header{padding:16px;border-bottom:1px solid var(--stroke-color-primary);background:var(--bg-color-operate);}.section-header h3{margin:0;font-size:16px;font-weight:600;color:var(--text-color-primary);}.section-header span{font-weight:400;color:var(--text-color-secondary);font-size:14px;}.list{flex:1;min-height:0;overflow-y:auto;}.input{border-top:1px solid var(--stroke-color-primary);flex-shrink:0;height:48px;}@media (max-width:1200px){.container{grid-template-columns:1fr;grid-template-rows:60% 20% 20%;gap:12px;}.sidebar{gap:12px;}.audience,.barrage{min-height:200px;}}@media (max-width:768px){.container{padding:8px;gap:8px;grid-template-rows:50% 25% 25%;}.header,.section-header{padding:12px;}.sidebar{gap:8px;}}</style>
|
|
118
|
+
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
### 步骤4:启动项目
|
|
122
|
+
|
|
123
|
+
打开终端,进入项目目录,执行以下命令启动项目后,您就可以观看直播了。
|
|
124
|
+
``` bash
|
|
125
|
+
npm run dev
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
## 播放直播流
|
|
129
|
+
|
|
130
|
+
### 步骤1:开启一场直播
|
|
131
|
+
- **方式一(推荐):**
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
使用我们提供的 [在线开播网站](https://web.sdk.qcloud.com/trtc/livekit/pusher/index.html) ,开启一场直播来观看,开启后获取直播间 ID
|
|
135
|
+
|
|
136
|
+
- **方式二:**
|
|
137
|
+
|
|
138
|
+
|
|
139
|
+
集成我们提供的 [主播开播(Web 桌面浏览器)](https://write.woa.com/document/188483825115738112),开启一场直播来观看,开启后获取直播间 ID。
|
|
140
|
+
|
|
141
|
+
|
|
142
|
+
> **重要提示:**
|
|
143
|
+
>
|
|
144
|
+
|
|
145
|
+
> 请使用不同的 **用户 ID** 开播和观看,否则后登录的设备会强制先登录的设备下线(即“被踢下线”)。
|
|
146
|
+
>
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
### 步骤2:观看直播
|
|
150
|
+
|
|
151
|
+
在上述**快速接入步骤 3 **的代码基础上增加如下内容,进入直播间观看:
|
|
152
|
+
``` java
|
|
153
|
+
// live-player.vue
|
|
154
|
+
import { onMounted } from 'vue';
|
|
155
|
+
import { useLiveListState } from 'tuikit-atomicx-vue3';
|
|
156
|
+
|
|
157
|
+
const { joinLive } = useLiveListState();
|
|
158
|
+
|
|
159
|
+
onMounted(async () => {
|
|
160
|
+
await joinLive({ liveId: 'xxx' }); // 输入 liveId 加入直播间,具体参数含义可参考步骤 1 中的准备工作
|
|
161
|
+
});
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
观看效果如下图所示:
|
|
165
|
+
|
|
166
|
+

|
|
167
|
+
|
|
168
|
+
|
|
169
|
+
### 步骤3:路由配置
|
|
170
|
+
|
|
171
|
+
由于涉及到直播列表(或首页)到直播间的跳转逻辑,您需要配置 Vue Router。在项目 **src** 目录下新建 **router **文件夹,并创建 **index.ts **文件。然后,在您的主文件(例如 **main.ts** 或 **index.ts**)中引入并使用路由。可参见 [GitHub 代码示例](https://github.com/Tencent-RTC/TUILiveKit/blob/main/Web/web-vite-vue3/src/main.ts),如果需要直播列表,可参见文档 [直播列表](https://write.woa.com/document/185968224430342144)。
|
|
172
|
+
``` typescript
|
|
173
|
+
// src/router/index.ts
|
|
174
|
+
import { createRouter, createWebHistory } from 'vue-router';
|
|
175
|
+
|
|
176
|
+
const routes = [
|
|
177
|
+
{
|
|
178
|
+
path: '/live-player',
|
|
179
|
+
component: () => import('../views/live-player.vue'),
|
|
180
|
+
},
|
|
181
|
+
// 如果需要直播列表功能,可添加如下路由
|
|
182
|
+
// {
|
|
183
|
+
// path: '/live-list',
|
|
184
|
+
// component: () => import('../views/live-list.vue'),
|
|
185
|
+
// },
|
|
186
|
+
];
|
|
187
|
+
|
|
188
|
+
const router = createRouter({
|
|
189
|
+
history: createWebHistory(),
|
|
190
|
+
routes,
|
|
191
|
+
});
|
|
192
|
+
export default router;
|
|
193
|
+
|
|
194
|
+
// src/main.ts
|
|
195
|
+
import { createApp } from 'vue';
|
|
196
|
+
import App from './App.vue';
|
|
197
|
+
import router from './router';
|
|
198
|
+
|
|
199
|
+
const app = createApp(App);
|
|
200
|
+
app.use(router);
|
|
201
|
+
app.mount('#app');
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
## 自由定制
|
|
205
|
+
|
|
206
|
+
根据上述功能展示图,我们也支持您根据项目需求对观看页面进行 UI 定制。主要可供定制的能力如下表所示。
|
|
207
|
+
<table>
|
|
208
|
+
<tr>
|
|
209
|
+
<td rowspan="1" colSpan="1" >**类别**</td>
|
|
210
|
+
|
|
211
|
+
<td rowspan="1" colSpan="1" >**功能**</td>
|
|
212
|
+
|
|
213
|
+
<td rowspan="1" colSpan="1" >**描述**</td>
|
|
214
|
+
</tr>
|
|
215
|
+
|
|
216
|
+
<tr>
|
|
217
|
+
<td rowspan="1" colSpan="1" >**直播信息展示**</td>
|
|
218
|
+
|
|
219
|
+
<td rowspan="1" colSpan="1" >自定义观看页面信息区域展示</td>
|
|
220
|
+
|
|
221
|
+
<td rowspan="1" colSpan="1" >**支持:**<br>- **展示/隐藏 Logo,替换为您需要的 Logo**<br>- **UI 定制、展示/隐藏关注按钮,替换为您需要的按钮风格**</td>
|
|
222
|
+
</tr>
|
|
223
|
+
|
|
224
|
+
<tr>
|
|
225
|
+
<td rowspan="1" colSpan="1" >**在线观众**</td>
|
|
226
|
+
|
|
227
|
+
<td rowspan="1" colSpan="1" >自定义观众信息展示</td>
|
|
228
|
+
|
|
229
|
+
<td rowspan="1" colSpan="1" >**支持:**<br>- **展示/隐藏观众等级**<br>- **观众信息字体、颜色 UI 自定义设置**<br>- **替换为您需要的 Icon 风格**</td>
|
|
230
|
+
</tr>
|
|
231
|
+
|
|
232
|
+
<tr>
|
|
233
|
+
<td rowspan="1" colSpan="1" >**消息列表**</td>
|
|
234
|
+
|
|
235
|
+
<td rowspan="1" colSpan="1" >自定义消息弹幕区域展示</td>
|
|
236
|
+
|
|
237
|
+
<td rowspan="1" colSpan="1" >**支持:**<br>- **展示/隐藏聊天输入区域**<br>- **支持 UI 定制聊天气泡风格、定制观众等级等内容**</td>
|
|
238
|
+
</tr>
|
|
239
|
+
</table>
|
|
240
|
+
|
|
241
|
+
|
|
242
|
+
### 颜色主题
|
|
243
|
+
|
|
244
|
+
参见**步骤3**中代码示例,您可以操作 theme 的值来满足您切换颜色主题的需求。
|
|
245
|
+
``` java
|
|
246
|
+
<UIKitProvider theme="dark"> // theme 传入 dark 时,界面整体颜色主题为黑色主题
|
|
247
|
+
xxx // theme 传入 light 时,界面整体颜色主题为白色主题
|
|
248
|
+
</UIKitProvider>
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
### 按钮 Button / 图标 Icon
|
|
252
|
+
|
|
253
|
+
若您需要对按钮 Button 或者图标 Icon 进行新增或替换等 UI 定制,您可以通过如下方式进行实现,以观看页面操作的 Icon 为例。参考下图,您可以找到对应 Button / Icon 指定位置的源码,对当前部分的按钮进行**增加、删除、替换**等 UI 定制操作。
|
|
254
|
+
|
|
255
|
+

|
|
256
|
+
|
|
257
|
+
|
|
258
|
+
## 下一步
|
|
259
|
+
|
|
260
|
+
恭喜您,现在您已经成功集成了观众观看。接下来,您可以继续接入 **直播列表、UI 自定义、监播 **等功能:
|
|
261
|
+
<table>
|
|
262
|
+
<tr>
|
|
263
|
+
<td rowspan="1" colSpan="1" >**功能**</td>
|
|
264
|
+
|
|
265
|
+
<td rowspan="1" colSpan="1" >**描述**</td>
|
|
266
|
+
|
|
267
|
+
<td rowspan="1" colSpan="1" >**集成指引**</td>
|
|
268
|
+
</tr>
|
|
269
|
+
|
|
270
|
+
<tr>
|
|
271
|
+
<td rowspan="1" colSpan="1" >直播列表</td>
|
|
272
|
+
|
|
273
|
+
<td rowspan="1" colSpan="1" >展示直播列表界面和功能,包含直播列表,房间信息展示功能</td>
|
|
274
|
+
|
|
275
|
+
<td rowspan="1" colSpan="1" >[直播列表](https://write.woa.com/document/185968224430342144)</td>
|
|
276
|
+
</tr>
|
|
277
|
+
|
|
278
|
+
<tr>
|
|
279
|
+
<td rowspan="1" colSpan="1" >UI 自定义</td>
|
|
280
|
+
|
|
281
|
+
<td rowspan="1" colSpan="1" >更详细的 UI 组件自定义指引。</td>
|
|
282
|
+
|
|
283
|
+
<td rowspan="1" colSpan="1" >[概述](https://write.woa.com/document/177815913198854144)</td>
|
|
284
|
+
</tr>
|
|
285
|
+
|
|
286
|
+
<tr>
|
|
287
|
+
<td rowspan="1" colSpan="1" >Web 监播</td>
|
|
288
|
+
|
|
289
|
+
<td rowspan="1" colSpan="1" >运营平台,支持直播间管控。</td>
|
|
290
|
+
|
|
291
|
+
<td rowspan="1" colSpan="1" >[Web 监播页](https://write.woa.com/document/185222048061181952)</td>
|
|
292
|
+
</tr>
|
|
293
|
+
</table>
|
package/resource/doc/livekit/vue/{components/live-player.md → live-player-h5-integration.md}
RENAMED
|
@@ -1,57 +1,21 @@
|
|
|
1
|
-
|
|
2
|
-
本文对 TUILiveKit 组件中的**观看页面**进行了详细的介绍,您可以在已有项目中直接参考本文档集成我们开发好的观看页面,也可以根据您的需求按照文档中的内容对页面的样式,布局以及功能项进行深度的定制。这边文档用于直播观看场景,如果需要直播连麦场景,请使用 LiveView 组件。
|
|
1
|
+
本文对 TUILiveKit Demo 中的**观看页面**进行了详细的介绍,您可以在已有项目中直接参考本文档集成我们开发好的观看页面,也可以根据您的需求按照文档中的内容对页面的样式,布局以及功能项进行深度的定制。
|
|
3
2
|
|
|
4
|
-
##
|
|
5
|
-
<table>
|
|
6
|
-
<tr>
|
|
7
|
-
<td rowspan="1" colSpan="1" >**功能分类**</td>
|
|
8
|
-
|
|
9
|
-
<td rowspan="1" colSpan="1" >**具体能力**</td>
|
|
10
|
-
</tr>
|
|
11
|
-
|
|
12
|
-
<tr>
|
|
13
|
-
<td rowspan="1" colSpan="1" >**直播视频播放**</td>
|
|
14
|
-
|
|
15
|
-
<td rowspan="1" colSpan="1" >高清流畅的直播体验</td>
|
|
16
|
-
</tr>
|
|
17
|
-
|
|
18
|
-
<tr>
|
|
19
|
-
<td rowspan="1" colSpan="1" >**弹幕互动**</td>
|
|
20
|
-
|
|
21
|
-
<td rowspan="1" colSpan="1" >实时弹幕交流</td>
|
|
22
|
-
</tr>
|
|
23
|
-
|
|
24
|
-
<tr>
|
|
25
|
-
<td rowspan="1" colSpan="1" >**观众列表**</td>
|
|
26
|
-
|
|
27
|
-
<td rowspan="1" colSpan="1" >查看在线观众信息</td>
|
|
28
|
-
</tr>
|
|
29
|
-
|
|
30
|
-
<tr>
|
|
31
|
-
<td rowspan="1" colSpan="1" >**关注主播**</td>
|
|
3
|
+
## 功能展示
|
|
32
4
|
|
|
33
|
-
|
|
34
|
-
|
|
5
|
+
观看页面提供默认行为和风格,但如果默认行为和样式不能完全满足您的需求,您也可以对 UI 进行自定义。图中显示的数字与特定功能列表中的类别相对应。其中主要包含直播**信息展示、视频直播区域、在线观众、音视频操作、直播时长、画面分辨率切换、全屏功能、聊天互动、消息列表等。**
|
|
6
|
+
- **直播视频播放:**高清流畅的直播体验。
|
|
35
7
|
|
|
36
|
-
|
|
37
|
-
<td rowspan="1" colSpan="1" >**全屏播放**</td>
|
|
8
|
+
- **弹幕互动:**实时弹幕交流。
|
|
38
9
|
|
|
39
|
-
|
|
40
|
-
</tr>
|
|
10
|
+
- **观众列表:**查看在线观众信息。
|
|
41
11
|
|
|
42
|
-
|
|
43
|
-
<td rowspan="1" colSpan="1" >**Web 桌面浏览器支持**</td>
|
|
12
|
+
- **关注主播:**一键关注喜欢的主播。
|
|
44
13
|
|
|
45
|
-
|
|
46
|
-
</tr>
|
|
47
|
-
</table>
|
|
14
|
+
- **全屏播放:**沉浸式观看体验。
|
|
48
15
|
|
|
16
|
+
- **Web 桌面浏览器支持:**跨平台兼容。
|
|
49
17
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
观看页面提供默认行为和风格,但如果默认行为和样式不能完全满足您的需求,您也可以对 UI 进行自定义。图中显示的数字与特定功能列表中的类别相对应。其中主要包含直播**信息展示、视频直播区域、在线观众、音视频操作、直播时长、画面分辨率切换、全屏功能、聊天互动、消息列表等。**
|
|
53
|
-
|
|
54
|
-

|
|
18
|
+

|
|
55
19
|
|
|
56
20
|
|
|
57
21
|
## 快速接入
|
|
@@ -60,29 +24,29 @@
|
|
|
60
24
|
|
|
61
25
|
在进行快速接入之前,您需要参见 [准备工作](https://write.woa.com/document/185222107981008896),满足相关环境配置及开通对应服务。
|
|
62
26
|
|
|
63
|
-
### 步骤2
|
|
27
|
+
### 步骤2:安装依赖
|
|
64
28
|
|
|
65
29
|
|
|
66
30
|
|
|
67
31
|
|
|
68
32
|
【npm】
|
|
69
33
|
``` bash
|
|
70
|
-
npm install tuikit-atomicx-vue3
|
|
34
|
+
npm install tuikit-atomicx-vue3 @tencentcloud/uikit-base-component-vue3 --save
|
|
71
35
|
```
|
|
72
36
|
|
|
73
37
|
|
|
74
38
|
【pnpm】
|
|
75
39
|
``` bash
|
|
76
|
-
pnpm add tuikit-atomicx-vue3
|
|
40
|
+
pnpm add tuikit-atomicx-vue3 @tencentcloud/uikit-base-component-vue3
|
|
77
41
|
```
|
|
78
42
|
|
|
79
43
|
|
|
80
44
|
【yarn】
|
|
81
45
|
``` bash
|
|
82
|
-
yarn add tuikit-atomicx-vue3
|
|
46
|
+
yarn add tuikit-atomicx-vue3 @tencentcloud/uikit-base-component-vue3
|
|
83
47
|
```
|
|
84
48
|
|
|
85
|
-
### 步骤3
|
|
49
|
+
### 步骤3:观看页面接入
|
|
86
50
|
|
|
87
51
|
在您的项目下创建 `live-player.vue` 文件,可直接复制如下代码至您的项目中集成**观看页面**。
|
|
88
52
|
``` typescript
|
|
@@ -182,21 +146,21 @@ yarn add tuikit-atomicx-vue3@latest @tencentcloud/uikit-base-component-vue3
|
|
|
182
146
|
</template>
|
|
183
147
|
|
|
184
148
|
<script setup lang="ts">
|
|
185
|
-
import { onMounted, ref, computed } from 'vue';
|
|
149
|
+
import { onMounted, ref, computed, watch } from 'vue';
|
|
186
150
|
import {
|
|
187
151
|
LiveAudienceList,
|
|
188
152
|
BarrageList,
|
|
189
153
|
BarrageInput,
|
|
190
154
|
useLiveAudienceState,
|
|
191
155
|
LiveCoreView,
|
|
192
|
-
|
|
156
|
+
useLiveListState,
|
|
193
157
|
Avatar,
|
|
194
158
|
useLoginState
|
|
195
159
|
} from 'tuikit-atomicx-vue3';
|
|
196
160
|
import { UIKitProvider, IconClose } from '@tencentcloud/uikit-base-component-vue3';
|
|
197
161
|
|
|
198
162
|
const { audienceList, fetchAudienceList } = useLiveAudienceState();
|
|
199
|
-
const { currentLive } =
|
|
163
|
+
const { currentLive } = useLiveListState();
|
|
200
164
|
const { login } = useLoginState();
|
|
201
165
|
|
|
202
166
|
const audienceDrawerVisible = ref(false);
|
|
@@ -247,11 +211,84 @@ onMounted(async () => {
|
|
|
247
211
|
|
|
248
212
|
```
|
|
249
213
|
|
|
250
|
-
### 步骤4
|
|
214
|
+
### 步骤4:启动项目
|
|
215
|
+
|
|
216
|
+
打开终端,进入项目目录,执行以下命令启动项目后,您就可以观看直播了。
|
|
251
217
|
``` bash
|
|
252
218
|
npm run dev
|
|
253
219
|
```
|
|
254
220
|
|
|
221
|
+
## 播放直播流
|
|
222
|
+
|
|
223
|
+
### 步骤1:开启一场直播
|
|
224
|
+
- **方式一(推荐):**
|
|
225
|
+
|
|
226
|
+
|
|
227
|
+
使用我们提供的 [在线开播网站](https://web.sdk.qcloud.com/trtc/livekit/pusher/index.html) ,开启一场直播来观看,开启后获取直播间 ID
|
|
228
|
+
|
|
229
|
+
- **方式二:**
|
|
230
|
+
|
|
231
|
+
|
|
232
|
+
集成我们提供的 [主播开播(Web 桌面浏览器)](https://write.woa.com/document/188483825115738112),开启一场直播来观看,开启后获取直播间 ID。
|
|
233
|
+
|
|
234
|
+
|
|
235
|
+
> **重要提示:**
|
|
236
|
+
>
|
|
237
|
+
|
|
238
|
+
> 请使用不同的 **用户 ID** 开播和观看,否则后登录的设备会强制先登录的设备下线(即“被踢下线”)。
|
|
239
|
+
>
|
|
240
|
+
|
|
241
|
+
|
|
242
|
+
### 步骤2:观看直播
|
|
243
|
+
|
|
244
|
+
在上述**快速接入步骤 3 **的代码基础上增加如下内容,进入直播间观看:
|
|
245
|
+
``` java
|
|
246
|
+
// live-player.vue
|
|
247
|
+
import { onMounted } from 'vue';
|
|
248
|
+
import { useLiveListState } from 'tuikit-atomicx-vue3';
|
|
249
|
+
|
|
250
|
+
const { joinLive } = useLiveListState();
|
|
251
|
+
|
|
252
|
+
onMounted(async () => {
|
|
253
|
+
await joinLive({ liveId: 'xxx' }); // 输入 liveId 加入直播间,具体参数含义可参考步骤 1 中的准备工作
|
|
254
|
+
});
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
### 步骤3:路由配置
|
|
258
|
+
|
|
259
|
+
由于涉及到直播列表(或首页)到直播间的跳转逻辑,您需要配置 Vue Router。在项目 `src` 目录下新建 `router` 文件夹,并创建 `index.ts` 文件。然后,在您的主文件(例如 `main.ts` 或 `index.ts`)中引入并使用路由。可参考 GitHub [代码示例](https://github.com/Tencent-RTC/TUILiveKit/blob/main/Web/web-vite-vue3/src/main.ts), 如需要直播列表,可参考文档 [直播列表](https://write.woa.com/document/185968224430342144)。
|
|
260
|
+
``` typescript
|
|
261
|
+
// src/router/index.ts
|
|
262
|
+
import { createRouter, createWebHistory } from 'vue-router';
|
|
263
|
+
|
|
264
|
+
const routes = [
|
|
265
|
+
{
|
|
266
|
+
path: '/live-player',
|
|
267
|
+
component: () => import('../views/live-player.vue'),
|
|
268
|
+
},
|
|
269
|
+
// 如果需要直播列表功能,可添加如下路由
|
|
270
|
+
// {
|
|
271
|
+
// path: '/live-list',
|
|
272
|
+
// component: () => import('../views/live-list.vue'),
|
|
273
|
+
// },
|
|
274
|
+
];
|
|
275
|
+
|
|
276
|
+
const router = createRouter({
|
|
277
|
+
history: createWebHistory(),
|
|
278
|
+
routes,
|
|
279
|
+
});
|
|
280
|
+
export default router;
|
|
281
|
+
|
|
282
|
+
// src/main.ts
|
|
283
|
+
import { createApp } from 'vue';
|
|
284
|
+
import App from './App.vue';
|
|
285
|
+
import router from './router';
|
|
286
|
+
|
|
287
|
+
const app = createApp(App);
|
|
288
|
+
app.use(router);
|
|
289
|
+
app.mount('#app');
|
|
290
|
+
```
|
|
291
|
+
|
|
255
292
|
## 自由定制
|
|
256
293
|
|
|
257
294
|
另外,我们也支持您根据项目需求对观看页面进行 UI 定制能力。主要可供定制的能力如下表所示。可供定制内容包括但不限于对源码中的**颜色主题、字体、圆角、按钮、图标、输入框、弹框等**内容,都可以进行**增加、删除、修改**等定制操作,下列分别给出颜色主题、按钮以及图标的定制示例,您可以参考实现方式通用到其他组件,满足您的 UI 定制需要。
|
|
@@ -292,7 +329,7 @@ npm run dev
|
|
|
292
329
|
|
|
293
330
|
### 颜色主题
|
|
294
331
|
|
|
295
|
-
参见**步骤3
|
|
332
|
+
参见**步骤3**中代码示例,您可以操作 theme 的值来满足您切换颜色主题。
|
|
296
333
|
``` java
|
|
297
334
|
<UIKitProvider theme="dark"> // theme 传入 dark 时,界面整体颜色主题为黑色主题
|
|
298
335
|
xxx // theme 传入 light 时,界面整体颜色主题为白色主题
|
|
@@ -301,73 +338,44 @@ npm run dev
|
|
|
301
338
|
|
|
302
339
|
### 按钮 Button / 图标 Icon
|
|
303
340
|
|
|
304
|
-
若您需要对按钮 Button 或者图标 Icon 进行新增或替换等 UI 定制,您可以通过如下方式进行实现,以观看页面操作的 Icon 为例。参考下图,您可以找到对应 Button / Icon
|
|
341
|
+
若您需要对按钮 Button 或者图标 Icon 进行新增或替换等 UI 定制,您可以通过如下方式进行实现,以观看页面操作的 Icon 为例。参考下图,您可以找到对应 Button / Icon 指定位置的源码,对当前部分的按钮进行**增加、删除、替换**等 UI 定制操作。
|
|
305
342
|
|
|
306
343
|

|
|
307
344
|
|
|
308
345
|
|
|
309
|
-
##
|
|
346
|
+
## 下一步
|
|
310
347
|
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
// live-player.vue
|
|
316
|
-
import { onMounted } from 'vue';
|
|
317
|
-
import { useLiveState } from 'tuikit-atomicx-vue3';
|
|
318
|
-
|
|
319
|
-
const { joinLive } = useLiveState();
|
|
320
|
-
|
|
321
|
-
onMounted(async () => {
|
|
322
|
-
await joinLive({ liveId: 'xxx' }); // 输入 liveId 加入直播间,具体参数含义可参考步骤 1 中的准备工作
|
|
323
|
-
});
|
|
324
|
-
```
|
|
325
|
-
|
|
326
|
-
### 步骤2:路由配置
|
|
327
|
-
|
|
328
|
-
由于涉及到直播列表(或首页)到直播间的跳转逻辑,您需要配置 Vue Router。在项目 `src` 目录下新建 `router` 文件夹,并创建 `index.ts` 文件。然后,在您的主文件(例如 `main.ts` 或 `index.ts`)中引入并使用路由。可参考 GitHub [代码示例](https://github.com/Tencent-RTC/TUILiveKit/blob/main/Web/web-vite-vue3/src/main.ts), 如需要直播列表,可参考文档 [直播列表](https://write.woa.com/document/185968224430342144)。
|
|
329
|
-
``` typescript
|
|
330
|
-
// src/router/index.ts
|
|
331
|
-
import { createRouter, createWebHistory } from 'vue-router';
|
|
348
|
+
恭喜您,现在您已经成功集成了观众观看。接下来,您可以继续接入 **直播列表、UI 自定义、监播 **等功能:
|
|
349
|
+
<table>
|
|
350
|
+
<tr>
|
|
351
|
+
<td rowspan="1" colSpan="1" >**功能**</td>
|
|
332
352
|
|
|
333
|
-
|
|
334
|
-
{
|
|
335
|
-
path: '/live-player',
|
|
336
|
-
component: () => import('../views/live-player.vue'),
|
|
337
|
-
},
|
|
338
|
-
// 如果需要直播列表功能,可添加如下路由
|
|
339
|
-
// {
|
|
340
|
-
// path: '/live-list',
|
|
341
|
-
// component: () => import('../views/live-list.vue'),
|
|
342
|
-
// },
|
|
343
|
-
];
|
|
353
|
+
<td rowspan="1" colSpan="1" >**描述**</td>
|
|
344
354
|
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
routes,
|
|
348
|
-
});
|
|
349
|
-
export default router;
|
|
355
|
+
<td rowspan="1" colSpan="1" >**集成指引**</td>
|
|
356
|
+
</tr>
|
|
350
357
|
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
import App from './App.vue';
|
|
354
|
-
import router from './router';
|
|
358
|
+
<tr>
|
|
359
|
+
<td rowspan="1" colSpan="1" >**直播列表**</td>
|
|
355
360
|
|
|
356
|
-
|
|
357
|
-
app.use(router);
|
|
358
|
-
app.mount('#app');
|
|
359
|
-
```
|
|
361
|
+
<td rowspan="1" colSpan="1" >展示直播列表界面和功能,包含直播列表,房间信息展示功能</td>
|
|
360
362
|
|
|
361
|
-
|
|
363
|
+
<td rowspan="1" colSpan="1" >[直播列表](https://write.woa.com/document/185968224430342144)</td>
|
|
364
|
+
</tr>
|
|
362
365
|
|
|
363
|
-
|
|
364
|
-
|
|
366
|
+
<tr>
|
|
367
|
+
<td rowspan="1" colSpan="1" >**UI 自定义**</td>
|
|
365
368
|
|
|
366
|
-
|
|
369
|
+
<td rowspan="1" colSpan="1" >更详细的 UI 组件自定义指引。</td>
|
|
367
370
|
|
|
368
|
-
|
|
371
|
+
<td rowspan="1" colSpan="1" >[概述](https://write.woa.com/document/177815913198854144)</td>
|
|
372
|
+
</tr>
|
|
369
373
|
|
|
374
|
+
<tr>
|
|
375
|
+
<td rowspan="1" colSpan="1" >**Web 监播**</td>
|
|
370
376
|
|
|
371
|
-
|
|
377
|
+
<td rowspan="1" colSpan="1" >运营平台,支持直播间管控。</td>
|
|
372
378
|
|
|
373
|
-
[
|
|
379
|
+
<td rowspan="1" colSpan="1" >[Web 监播页](https://write.woa.com/document/185222048061181952)</td>
|
|
380
|
+
</tr>
|
|
381
|
+
</table>
|