tuikit-atomicx-vue3 5.0.0 → 5.0.1
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/dist/components/LiveView/CoreViewDecorate/BattleDecorate.js +3 -3
- package/dist/report/MetricsKey.d.ts +20 -0
- package/dist/report/MetricsKey.js +2 -1
- package/dist/report/dataReport.d.ts +3 -1
- package/dist/report/dataReport.js +48 -22
- package/dist/report/index.d.ts +2 -2
- package/dist/report/index.js +5 -4
- package/dist/states/BarrageState/BarrageState.d.ts +0 -65
- package/dist/states/BarrageState/BarrageState.js +40 -39
- package/dist/states/BattleState/BattleState.d.ts +0 -96
- package/dist/states/BattleState/BattleState.js +126 -120
- package/dist/states/CoGuestState.js +93 -88
- package/dist/states/CoHostState/CoHostState.js +90 -88
- package/dist/states/DeviceState/DeviceState.js +157 -157
- package/dist/states/LiveAudienceState.js +81 -81
- package/dist/states/LiveGiftState/LiveGiftState.js +24 -21
- package/dist/states/LiveListState/LiveListState.js +68 -67
- package/dist/states/LiveMonitorState/index.js +49 -49
- package/dist/states/LiveSeatState/index.d.ts +0 -52
- package/dist/states/LiveSeatState/index.js +18 -14
- package/dist/states/LiveSeatState/seatManager.d.ts +1 -1
- package/dist/states/LiveSeatState/seatManager.js +90 -88
- package/dist/states/VideoMixerState/VideoMixerState.js +76 -76
- package/package.json +1 -1
- package/src/report/MetricsKey.ts +21 -0
- package/src/report/dataReport.ts +34 -2
- package/src/report/index.ts +4 -3
|
@@ -2,8 +2,8 @@ import { defineComponent as b, ref as A, computed as j, watch as k, onMounted as
|
|
|
2
2
|
import { useUIKit as F, IconPK as L, IconTime as I } from "@tencentcloud/uikit-base-component-vue3";
|
|
3
3
|
import { useLiveSeatState as V } from "../../../states/LiveSeatState/index.js";
|
|
4
4
|
import { convertSecondsToHMS as X } from "../../../utils/utils.js";
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
5
|
+
import { useBattleState as _ } from "../../../states/BattleState/BattleState.js";
|
|
6
|
+
import { useLiveListState as $ } from "../../../states/LiveListState/LiveListState.js";
|
|
7
7
|
import { CoHostLayoutTemplate as ee } from "../../../types/coHost.js";
|
|
8
8
|
import { BattleEvent as T } from "../../../types/battle.js";
|
|
9
9
|
import { _ as te } from "../../../_plugin-vue_export-helper-CHgC5LLL.js";
|
|
@@ -19,7 +19,7 @@ const oe = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAARwAAAD2CAYAAAAEXDiwAA
|
|
|
19
19
|
}, de = { class: "battle-time-content" }, Ne = { class: "battle-time" }, re = ["src"], Ue = ["src"], le = ["src"], ie = ["src"], pe = ["src"], ke = /* @__PURE__ */ b({
|
|
20
20
|
__name: "BattleDecorate",
|
|
21
21
|
setup(Ge) {
|
|
22
|
-
const { currentLive: m } =
|
|
22
|
+
const { currentLive: m } = $(), { currentBattleInfo: D, battleUsers: O, battleScore: Q, subscribeEvent: J, unsubscribeEvent: H } = _(), { seatList: M } = V(), { t: v } = F(), d = A(!1), u = j(() => {
|
|
23
23
|
var e, t;
|
|
24
24
|
return ((e = m.value) == null ? void 0 : e.layoutTemplate) === ee.HostDynamicGrid && O.value.length === 2 && ((t = M.value) == null ? void 0 : t.filter((o) => o.userInfo).length) === 2;
|
|
25
25
|
}), N = A(!1), r = A(!1);
|
|
@@ -27,3 +27,23 @@ export declare enum MetricsKey {
|
|
|
27
27
|
T_METRICS_STATE_API_DEVICE_OPEN_LOCAL_CAMERA_COUNT = 181502,
|
|
28
28
|
T_METRICS_STATE_API_DEVICE_START_SCREEN_SHARE_COUNT = 181503
|
|
29
29
|
}
|
|
30
|
+
export declare enum AtomicMetrics {
|
|
31
|
+
LIVE_LIST_STORE = 1101,
|
|
32
|
+
LIVE_SEAT_STORE_LOAD = 1102,
|
|
33
|
+
LIVE_SEAT_STORE_ACTIVATE = 1103,
|
|
34
|
+
LIVE_AUDIENCE_STORE = 1104,
|
|
35
|
+
LIVE_CO_GUEST_STORE = 1105,
|
|
36
|
+
LIVE_CO_HOST_STORE = 1106,
|
|
37
|
+
LIVE_BATTLE_STORE_LOAD = 1107,
|
|
38
|
+
LIVE_BATTLE_STORE_ACTIVATE = 1108,
|
|
39
|
+
LIVE_BARRAGE_STORE_LOAD = 1109,
|
|
40
|
+
LIVE_BARRAGE_STORE_ACTIVATE = 1110,
|
|
41
|
+
LIVE_LIKE_STORE = 1111,
|
|
42
|
+
LIVE_GIFT_STORE = 1112,
|
|
43
|
+
DEVICE_STORE = 1113,
|
|
44
|
+
AUDIO_EFFECT_STORE = 1114,
|
|
45
|
+
BASE_BEAUTY_STORE = 1115,
|
|
46
|
+
LIVE_SUMMARY_STORE = 1116,
|
|
47
|
+
LIVE_VIDEO_MIXER_STORE = 1117,
|
|
48
|
+
LIVE_MONITOR_STORE = 1118
|
|
49
|
+
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
var T = /* @__PURE__ */ ((_) => (_[_.T_METRICS_STATE_API_CREATE_LIVE_COUNT = 18e4] = "T_METRICS_STATE_API_CREATE_LIVE_COUNT", _[_.T_METRICS_STATE_API_CREATE_LIVE_MOBILE_COUNT = 180001] = "T_METRICS_STATE_API_CREATE_LIVE_MOBILE_COUNT", _[_.T_METRICS_STATE_API_JOIN_LIVE_COUNT = 180002] = "T_METRICS_STATE_API_JOIN_LIVE_COUNT", _[_.T_METRICS_STATE_API_JOIN_LIVE_MOBILE_COUNT = 180003] = "T_METRICS_STATE_API_JOIN_LIVE_MOBILE_COUNT", _[_.T_METRICS_STATE_API_LOGIN_COUNT = 180010] = "T_METRICS_STATE_API_LOGIN_COUNT", _[_.T_METRICS_STATE_API_LOGIN_MOBILE_COUNT = 180011] = "T_METRICS_STATE_API_LOGIN_MOBILE_COUNT", _[_.T_METRICS_STATE_API_LIVE_MONITOR_CLOSE_ROOM_COUNT = 180020] = "T_METRICS_STATE_API_LIVE_MONITOR_CLOSE_ROOM_COUNT", _[_.T_METRICS_STATE_API_LIVE_MONITOR_START_PLAY_COUNT = 180021] = "T_METRICS_STATE_API_LIVE_MONITOR_START_PLAY_COUNT", _[_.T_METRICS_STATE_API_VIDEO_MIXER_ADD_MEDIA_CAMERA_COUNT = 180030] = "T_METRICS_STATE_API_VIDEO_MIXER_ADD_MEDIA_CAMERA_COUNT", _[_.T_METRICS_STATE_API_VIDEO_MIXER_ADD_MEDIA_SCREEN_COUNT = 180031] = "T_METRICS_STATE_API_VIDEO_MIXER_ADD_MEDIA_SCREEN_COUNT", _[_.T_METRICS_STATE_API_BARRAGE_SEND_TEXT_MSG_COUNT = 180040] = "T_METRICS_STATE_API_BARRAGE_SEND_TEXT_MSG_COUNT", _[_.T_METRICS_STATE_API_AUDIENCE_FETCH_LIST_COUNT = 180050] = "T_METRICS_STATE_API_AUDIENCE_FETCH_LIST_COUNT", _[_.T_METRICS_STATE_API_CO_GUEST_REQUEST_CONNECTION_COUNT = 180060] = "T_METRICS_STATE_API_CO_GUEST_REQUEST_CONNECTION_COUNT", _[_.T_METRICS_STATE_API_CO_HOST_REQUEST_CONNECTION_COUNT = 180070] = "T_METRICS_STATE_API_CO_HOST_REQUEST_CONNECTION_COUNT", _[_.T_METRICS_STATE_ASR_STATE_COUNT = 181e3] = "T_METRICS_STATE_ASR_STATE_COUNT", _[_.T_METRICS_STATE_FREE_BEAUTY_STATE_COUNT = 181100] = "T_METRICS_STATE_FREE_BEAUTY_STATE_COUNT", _[_.T_METRICS_STATE_ROOM_PARTICIPANT_STATE_COUNT = 181200] = "T_METRICS_STATE_ROOM_PARTICIPANT_STATE_COUNT", _[_.T_METRICS_STATE_ROOM_STATE_COUNT = 181300] = "T_METRICS_STATE_ROOM_STATE_COUNT", _[_.T_METRICS_STATE_API_CREATE_ROOM_COUNT = 181301] = "T_METRICS_STATE_API_CREATE_ROOM_COUNT", _[_.T_METRICS_STATE_API_CREATE_ROOM_MOBILE_COUNT = 181302] = "T_METRICS_STATE_API_CREATE_ROOM_MOBILE_COUNT", _[_.T_METRICS_STATE_API_JOIN_ROOM_COUNT = 181303] = "T_METRICS_STATE_API_JOIN_ROOM_COUNT", _[_.T_METRICS_STATE_API_JOIN_ROOM_MOBILE_COUNT = 181304] = "T_METRICS_STATE_API_JOIN_ROOM_MOBILE_COUNT", _[_.T_METRICS_STATE_VIRTUAL_BACKGROUND_STATE_COUNT = 181400] = "T_METRICS_STATE_VIRTUAL_BACKGROUND_STATE_COUNT", _[_.T_METRICS_STATE_DEVICE_STATE_COUNT = 181500] = "T_METRICS_STATE_DEVICE_STATE_COUNT", _[_.T_METRICS_STATE_API_DEVICE_OPEN_LOCAL_MICROPHONE_COUNT = 181501] = "T_METRICS_STATE_API_DEVICE_OPEN_LOCAL_MICROPHONE_COUNT", _[_.T_METRICS_STATE_API_DEVICE_OPEN_LOCAL_CAMERA_COUNT = 181502] = "T_METRICS_STATE_API_DEVICE_OPEN_LOCAL_CAMERA_COUNT", _[_.T_METRICS_STATE_API_DEVICE_START_SCREEN_SHARE_COUNT = 181503] = "T_METRICS_STATE_API_DEVICE_START_SCREEN_SHARE_COUNT", _))(T || {});
|
|
1
|
+
var T = /* @__PURE__ */ ((_) => (_[_.T_METRICS_STATE_API_CREATE_LIVE_COUNT = 18e4] = "T_METRICS_STATE_API_CREATE_LIVE_COUNT", _[_.T_METRICS_STATE_API_CREATE_LIVE_MOBILE_COUNT = 180001] = "T_METRICS_STATE_API_CREATE_LIVE_MOBILE_COUNT", _[_.T_METRICS_STATE_API_JOIN_LIVE_COUNT = 180002] = "T_METRICS_STATE_API_JOIN_LIVE_COUNT", _[_.T_METRICS_STATE_API_JOIN_LIVE_MOBILE_COUNT = 180003] = "T_METRICS_STATE_API_JOIN_LIVE_MOBILE_COUNT", _[_.T_METRICS_STATE_API_LOGIN_COUNT = 180010] = "T_METRICS_STATE_API_LOGIN_COUNT", _[_.T_METRICS_STATE_API_LOGIN_MOBILE_COUNT = 180011] = "T_METRICS_STATE_API_LOGIN_MOBILE_COUNT", _[_.T_METRICS_STATE_API_LIVE_MONITOR_CLOSE_ROOM_COUNT = 180020] = "T_METRICS_STATE_API_LIVE_MONITOR_CLOSE_ROOM_COUNT", _[_.T_METRICS_STATE_API_LIVE_MONITOR_START_PLAY_COUNT = 180021] = "T_METRICS_STATE_API_LIVE_MONITOR_START_PLAY_COUNT", _[_.T_METRICS_STATE_API_VIDEO_MIXER_ADD_MEDIA_CAMERA_COUNT = 180030] = "T_METRICS_STATE_API_VIDEO_MIXER_ADD_MEDIA_CAMERA_COUNT", _[_.T_METRICS_STATE_API_VIDEO_MIXER_ADD_MEDIA_SCREEN_COUNT = 180031] = "T_METRICS_STATE_API_VIDEO_MIXER_ADD_MEDIA_SCREEN_COUNT", _[_.T_METRICS_STATE_API_BARRAGE_SEND_TEXT_MSG_COUNT = 180040] = "T_METRICS_STATE_API_BARRAGE_SEND_TEXT_MSG_COUNT", _[_.T_METRICS_STATE_API_AUDIENCE_FETCH_LIST_COUNT = 180050] = "T_METRICS_STATE_API_AUDIENCE_FETCH_LIST_COUNT", _[_.T_METRICS_STATE_API_CO_GUEST_REQUEST_CONNECTION_COUNT = 180060] = "T_METRICS_STATE_API_CO_GUEST_REQUEST_CONNECTION_COUNT", _[_.T_METRICS_STATE_API_CO_HOST_REQUEST_CONNECTION_COUNT = 180070] = "T_METRICS_STATE_API_CO_HOST_REQUEST_CONNECTION_COUNT", _[_.T_METRICS_STATE_ASR_STATE_COUNT = 181e3] = "T_METRICS_STATE_ASR_STATE_COUNT", _[_.T_METRICS_STATE_FREE_BEAUTY_STATE_COUNT = 181100] = "T_METRICS_STATE_FREE_BEAUTY_STATE_COUNT", _[_.T_METRICS_STATE_ROOM_PARTICIPANT_STATE_COUNT = 181200] = "T_METRICS_STATE_ROOM_PARTICIPANT_STATE_COUNT", _[_.T_METRICS_STATE_ROOM_STATE_COUNT = 181300] = "T_METRICS_STATE_ROOM_STATE_COUNT", _[_.T_METRICS_STATE_API_CREATE_ROOM_COUNT = 181301] = "T_METRICS_STATE_API_CREATE_ROOM_COUNT", _[_.T_METRICS_STATE_API_CREATE_ROOM_MOBILE_COUNT = 181302] = "T_METRICS_STATE_API_CREATE_ROOM_MOBILE_COUNT", _[_.T_METRICS_STATE_API_JOIN_ROOM_COUNT = 181303] = "T_METRICS_STATE_API_JOIN_ROOM_COUNT", _[_.T_METRICS_STATE_API_JOIN_ROOM_MOBILE_COUNT = 181304] = "T_METRICS_STATE_API_JOIN_ROOM_MOBILE_COUNT", _[_.T_METRICS_STATE_VIRTUAL_BACKGROUND_STATE_COUNT = 181400] = "T_METRICS_STATE_VIRTUAL_BACKGROUND_STATE_COUNT", _[_.T_METRICS_STATE_DEVICE_STATE_COUNT = 181500] = "T_METRICS_STATE_DEVICE_STATE_COUNT", _[_.T_METRICS_STATE_API_DEVICE_OPEN_LOCAL_MICROPHONE_COUNT = 181501] = "T_METRICS_STATE_API_DEVICE_OPEN_LOCAL_MICROPHONE_COUNT", _[_.T_METRICS_STATE_API_DEVICE_OPEN_LOCAL_CAMERA_COUNT = 181502] = "T_METRICS_STATE_API_DEVICE_OPEN_LOCAL_CAMERA_COUNT", _[_.T_METRICS_STATE_API_DEVICE_START_SCREEN_SHARE_COUNT = 181503] = "T_METRICS_STATE_API_DEVICE_START_SCREEN_SHARE_COUNT", _))(T || {}), E = /* @__PURE__ */ ((_) => (_[_.LIVE_LIST_STORE = 1101] = "LIVE_LIST_STORE", _[_.LIVE_SEAT_STORE_LOAD = 1102] = "LIVE_SEAT_STORE_LOAD", _[_.LIVE_SEAT_STORE_ACTIVATE = 1103] = "LIVE_SEAT_STORE_ACTIVATE", _[_.LIVE_AUDIENCE_STORE = 1104] = "LIVE_AUDIENCE_STORE", _[_.LIVE_CO_GUEST_STORE = 1105] = "LIVE_CO_GUEST_STORE", _[_.LIVE_CO_HOST_STORE = 1106] = "LIVE_CO_HOST_STORE", _[_.LIVE_BATTLE_STORE_LOAD = 1107] = "LIVE_BATTLE_STORE_LOAD", _[_.LIVE_BATTLE_STORE_ACTIVATE = 1108] = "LIVE_BATTLE_STORE_ACTIVATE", _[_.LIVE_BARRAGE_STORE_LOAD = 1109] = "LIVE_BARRAGE_STORE_LOAD", _[_.LIVE_BARRAGE_STORE_ACTIVATE = 1110] = "LIVE_BARRAGE_STORE_ACTIVATE", _[_.LIVE_LIKE_STORE = 1111] = "LIVE_LIKE_STORE", _[_.LIVE_GIFT_STORE = 1112] = "LIVE_GIFT_STORE", _[_.DEVICE_STORE = 1113] = "DEVICE_STORE", _[_.AUDIO_EFFECT_STORE = 1114] = "AUDIO_EFFECT_STORE", _[_.BASE_BEAUTY_STORE = 1115] = "BASE_BEAUTY_STORE", _[_.LIVE_SUMMARY_STORE = 1116] = "LIVE_SUMMARY_STORE", _[_.LIVE_VIDEO_MIXER_STORE = 1117] = "LIVE_VIDEO_MIXER_STORE", _[_.LIVE_MONITOR_STORE = 1118] = "LIVE_MONITOR_STORE", _))(E || {});
|
|
2
2
|
export {
|
|
3
|
+
E as AtomicMetrics,
|
|
3
4
|
T as MetricsKey
|
|
4
5
|
};
|
|
@@ -1,12 +1,14 @@
|
|
|
1
|
-
import { MetricsKey } from './MetricsKey';
|
|
1
|
+
import { MetricsKey, AtomicMetrics } from './MetricsKey';
|
|
2
2
|
|
|
3
3
|
export declare class DataReport {
|
|
4
4
|
private taskQueue;
|
|
5
5
|
private isReady;
|
|
6
6
|
constructor();
|
|
7
7
|
reportCount(key: MetricsKey): void;
|
|
8
|
+
reportAtomicMetrics(metric: AtomicMetrics): void;
|
|
8
9
|
private bindEvent;
|
|
9
10
|
private executePendingTasks;
|
|
10
11
|
private createReportCountTask;
|
|
12
|
+
private createAtomicReportTask;
|
|
11
13
|
}
|
|
12
14
|
export declare const dataReport: DataReport;
|
|
@@ -1,20 +1,28 @@
|
|
|
1
|
-
var
|
|
2
|
-
var
|
|
3
|
-
var
|
|
1
|
+
var n = Object.defineProperty;
|
|
2
|
+
var i = (a, t, e) => t in a ? n(a, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : a[t] = e;
|
|
3
|
+
var s = (a, t, e) => i(a, typeof t != "symbol" ? t + "" : t, e);
|
|
4
4
|
import r from "@tencentcloud/tuiroom-engine-js";
|
|
5
|
-
const
|
|
6
|
-
class
|
|
5
|
+
const c = "KeyMetricsStats";
|
|
6
|
+
class u {
|
|
7
7
|
constructor() {
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
s(this, "taskQueue", []);
|
|
9
|
+
s(this, "isReady", !1);
|
|
10
10
|
this.bindEvent();
|
|
11
11
|
}
|
|
12
|
-
reportCount(
|
|
12
|
+
reportCount(t) {
|
|
13
13
|
try {
|
|
14
|
-
const
|
|
15
|
-
this.isReady ?
|
|
16
|
-
} catch (
|
|
17
|
-
console.warn("Report count failed:",
|
|
14
|
+
const e = this.createReportCountTask(t);
|
|
15
|
+
this.isReady ? e() : this.taskQueue.push(e);
|
|
16
|
+
} catch (e) {
|
|
17
|
+
console.warn("Report count failed:", e);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
reportAtomicMetrics(t) {
|
|
21
|
+
try {
|
|
22
|
+
const e = this.createAtomicReportTask(t);
|
|
23
|
+
this.isReady ? e() : this.taskQueue.push(e);
|
|
24
|
+
} catch (e) {
|
|
25
|
+
console.warn("Report atomic metrics failed:", e);
|
|
18
26
|
}
|
|
19
27
|
}
|
|
20
28
|
bindEvent() {
|
|
@@ -23,27 +31,45 @@ class c {
|
|
|
23
31
|
});
|
|
24
32
|
}
|
|
25
33
|
executePendingTasks() {
|
|
26
|
-
this.taskQueue.forEach((
|
|
34
|
+
this.taskQueue.forEach((t) => {
|
|
27
35
|
try {
|
|
28
|
-
|
|
29
|
-
} catch (
|
|
30
|
-
console.warn("Task execution failed:",
|
|
36
|
+
t();
|
|
37
|
+
} catch (e) {
|
|
38
|
+
console.warn("Task execution failed:", e);
|
|
31
39
|
}
|
|
32
40
|
}), this.taskQueue = [];
|
|
33
41
|
}
|
|
34
|
-
createReportCountTask(
|
|
42
|
+
createReportCountTask(t) {
|
|
35
43
|
return () => {
|
|
36
44
|
r.callExperimentalAPI(
|
|
37
45
|
JSON.stringify({
|
|
38
|
-
api:
|
|
39
|
-
params: { key:
|
|
46
|
+
api: c,
|
|
47
|
+
params: { key: t }
|
|
40
48
|
})
|
|
41
49
|
);
|
|
42
50
|
};
|
|
43
51
|
}
|
|
52
|
+
createAtomicReportTask(t) {
|
|
53
|
+
return () => {
|
|
54
|
+
const e = r.getInstance();
|
|
55
|
+
if (!e) {
|
|
56
|
+
console.warn("TUIRoomEngine instance is not available");
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
const o = e.getTIM();
|
|
60
|
+
if (!o) {
|
|
61
|
+
console.warn("TIM instance is not available");
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
o.callExperimentalAPI("reportTUIFeatureUsage", {
|
|
65
|
+
atomicStoreID: t,
|
|
66
|
+
uiPlatform: 50
|
|
67
|
+
});
|
|
68
|
+
};
|
|
69
|
+
}
|
|
44
70
|
}
|
|
45
|
-
const
|
|
71
|
+
const h = new u();
|
|
46
72
|
export {
|
|
47
|
-
|
|
48
|
-
|
|
73
|
+
u as DataReport,
|
|
74
|
+
h as dataReport
|
|
49
75
|
};
|
package/dist/report/index.d.ts
CHANGED
package/dist/report/index.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { dataReport as
|
|
2
|
-
import { MetricsKey as
|
|
1
|
+
import { dataReport as e } from "./dataReport.js";
|
|
2
|
+
import { AtomicMetrics as c, MetricsKey as i } from "./MetricsKey.js";
|
|
3
3
|
export {
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
c as AtomicMetrics,
|
|
5
|
+
i as MetricsKey,
|
|
6
|
+
e as dataReport
|
|
6
7
|
};
|
|
@@ -1,70 +1,5 @@
|
|
|
1
1
|
import { BarrageType, Barrage } from '../../types/barrage';
|
|
2
2
|
|
|
3
|
-
/**
|
|
4
|
-
* 弹幕状态管理组合式函数
|
|
5
|
-
* @memberof module:BarrageState
|
|
6
|
-
* @description 提供弹幕功能的所有状态和操作方法,包括消息发送、接收和管理
|
|
7
|
-
* @returns {Object} 弹幕状态管理对象
|
|
8
|
-
* @returns {Ref<Barrage[]>} returns.messageList - 弹幕消息列表
|
|
9
|
-
* @returns {Function} returns.sendTextMessage - 发送文本弹幕消息
|
|
10
|
-
* @returns {Function} returns.sendCustomMessage - 发送自定义弹幕消息
|
|
11
|
-
* @returns {Function} returns.appendLocalTip - 添加本地提示消息
|
|
12
|
-
* @example
|
|
13
|
-
* ```typescript
|
|
14
|
-
* import { useBarrageState, BarrageType } from '@/states/BarrageState';
|
|
15
|
-
*
|
|
16
|
-
* // 在Vue组件中使用
|
|
17
|
-
* export default {
|
|
18
|
-
* setup() {
|
|
19
|
-
* const {
|
|
20
|
-
* messageList,
|
|
21
|
-
* sendTextMessage,
|
|
22
|
-
* sendCustomMessage,
|
|
23
|
-
* appendLocalTip
|
|
24
|
-
* } = useBarrageState();
|
|
25
|
-
*
|
|
26
|
-
* // 发送文本消息
|
|
27
|
-
* const handleSendText = async (text: string) => {
|
|
28
|
-
* try {
|
|
29
|
-
* await sendTextMessage({ text });
|
|
30
|
-
* console.log('消息发送成功');
|
|
31
|
-
* } catch (error) {
|
|
32
|
-
* console.error('消息发送失败:', error);
|
|
33
|
-
* }
|
|
34
|
-
* };
|
|
35
|
-
*
|
|
36
|
-
* // 发送礼物消息
|
|
37
|
-
* const handleSendGift = async (giftId: number, count: number) => {
|
|
38
|
-
* await sendCustomMessage({
|
|
39
|
-
* businessId: 'gift',
|
|
40
|
-
* data: JSON.stringify({ giftId, count })
|
|
41
|
-
* });
|
|
42
|
-
* };
|
|
43
|
-
*
|
|
44
|
-
* // 监听消息列表变化
|
|
45
|
-
* watch(messageList, (messages) => {
|
|
46
|
-
* console.log('当前消息数量:', messages.length);
|
|
47
|
-
*
|
|
48
|
-
* // 处理最新消息
|
|
49
|
-
* const latestMessage = messages[messages.length - 1];
|
|
50
|
-
* if (latestMessage) {
|
|
51
|
-
* if (latestMessage.messageType === BarrageType.text) {
|
|
52
|
-
* console.log('新文本消息:', latestMessage.textContent);
|
|
53
|
-
* } else if (latestMessage.messageType === BarrageType.custom) {
|
|
54
|
-
* console.log('新自定义消息:', latestMessage.businessId);
|
|
55
|
-
* }
|
|
56
|
-
* }
|
|
57
|
-
* });
|
|
58
|
-
*
|
|
59
|
-
* return {
|
|
60
|
-
* messageList,
|
|
61
|
-
* handleSendText,
|
|
62
|
-
* handleSendGift
|
|
63
|
-
* };
|
|
64
|
-
* }
|
|
65
|
-
* };
|
|
66
|
-
* ```
|
|
67
|
-
*/
|
|
68
3
|
export declare function useBarrageState(): {
|
|
69
4
|
messageList: import('vue').Ref<{
|
|
70
5
|
messageType: BarrageType;
|
|
@@ -1,78 +1,79 @@
|
|
|
1
|
-
import { ref as
|
|
2
|
-
import
|
|
3
|
-
import { useRoomEngine as
|
|
4
|
-
import { dataReport as
|
|
5
|
-
import { MetricsKey as
|
|
6
|
-
import { BarrageType as
|
|
7
|
-
import { useLoginState as
|
|
8
|
-
import { useLiveListState as
|
|
9
|
-
const { loginUserInfo:
|
|
1
|
+
import { ref as I, watch as l } from "vue";
|
|
2
|
+
import T, { TUIRoomEvents as m } from "@tencentcloud/tuiroom-engine-js";
|
|
3
|
+
import { useRoomEngine as p } from "../../hooks/useRoomEngine.js";
|
|
4
|
+
import { dataReport as i } from "../../report/dataReport.js";
|
|
5
|
+
import { AtomicMetrics as u, MetricsKey as E } from "../../report/MetricsKey.js";
|
|
6
|
+
import { BarrageType as v } from "../../types/barrage.js";
|
|
7
|
+
import { useLoginState as f } from "../LoginState.js";
|
|
8
|
+
import { useLiveListState as R } from "../LiveListState/LiveListState.js";
|
|
9
|
+
const { loginUserInfo: r } = f(), c = p(), { currentLive: A } = R(), a = I([]), _ = (e) => {
|
|
10
10
|
var n;
|
|
11
|
-
const t =
|
|
12
|
-
return
|
|
11
|
+
const t = E.T_METRICS_STATE_API_BARRAGE_SEND_TEXT_MSG_COUNT;
|
|
12
|
+
return i.reportCount(t), i.reportAtomicMetrics(u.LIVE_BARRAGE_STORE_ACTIVATE), (n = c.instance) == null ? void 0 : n.sendTextMessage({
|
|
13
13
|
textContent: e.text,
|
|
14
14
|
extensionInfo: (e == null ? void 0 : e.extensionInfo) || {}
|
|
15
15
|
});
|
|
16
16
|
}, M = (e) => {
|
|
17
17
|
var t;
|
|
18
|
-
return (t =
|
|
18
|
+
return i.reportAtomicMetrics(u.LIVE_BARRAGE_STORE_ACTIVATE), (t = c.instance) == null ? void 0 : t.sendCustomMessage({
|
|
19
19
|
businessId: e.businessId,
|
|
20
20
|
data: e.data
|
|
21
21
|
});
|
|
22
|
-
},
|
|
23
|
-
|
|
22
|
+
}, x = (e) => {
|
|
23
|
+
a.value.push(e);
|
|
24
24
|
}, S = (e) => {
|
|
25
|
-
var n,
|
|
25
|
+
var n, s, o;
|
|
26
26
|
const t = { ...e.sender };
|
|
27
|
-
t.userId === ((n =
|
|
27
|
+
t.userId === ((n = r.value) == null ? void 0 : n.userId) && (t.userName = t.userName || ((s = r.value) == null ? void 0 : s.userName), t.avatarUrl = t.avatarUrl || ((o = r.value) == null ? void 0 : o.avatarUrl)), a.value.push({
|
|
28
28
|
liveId: e.roomId,
|
|
29
29
|
sender: t,
|
|
30
30
|
sequence: e.sequence,
|
|
31
31
|
timestampInSecond: e.timestampInSecond,
|
|
32
|
-
messageType:
|
|
32
|
+
messageType: v.text,
|
|
33
33
|
textContent: e.textContent,
|
|
34
34
|
extensionInfo: e.extensionInfo
|
|
35
35
|
});
|
|
36
36
|
}, C = (e) => {
|
|
37
|
-
var n,
|
|
37
|
+
var n, s, o;
|
|
38
38
|
const t = { ...e.sender };
|
|
39
|
-
t.userId === ((n =
|
|
39
|
+
t.userId === ((n = r.value) == null ? void 0 : n.userId) && (t.userName = t.userName || ((s = r.value) == null ? void 0 : s.userName), t.avatarUrl = t.avatarUrl || ((o = r.value) == null ? void 0 : o.avatarUrl)), a.value.push({
|
|
40
40
|
liveId: e.roomId,
|
|
41
41
|
sender: t,
|
|
42
42
|
sequence: e.sequence,
|
|
43
43
|
timestampInSecond: e.timestampInSecond,
|
|
44
|
-
messageType:
|
|
44
|
+
messageType: v.custom,
|
|
45
45
|
businessId: e.businessId,
|
|
46
46
|
data: e.data
|
|
47
47
|
});
|
|
48
|
-
},
|
|
49
|
-
{ event:
|
|
50
|
-
{ event:
|
|
51
|
-
],
|
|
52
|
-
|
|
48
|
+
}, L = [
|
|
49
|
+
{ event: m.onReceiveTextMessage, handler: S },
|
|
50
|
+
{ event: m.onReceiveCustomMessage, handler: C }
|
|
51
|
+
], U = () => {
|
|
52
|
+
L.forEach(({ event: e, handler: t }) => {
|
|
53
53
|
var n;
|
|
54
|
-
(n =
|
|
54
|
+
(n = c.instance) == null || n.on(e, t);
|
|
55
55
|
});
|
|
56
|
-
},
|
|
57
|
-
|
|
56
|
+
}, g = () => {
|
|
57
|
+
a.value = [];
|
|
58
58
|
};
|
|
59
|
-
|
|
59
|
+
l(() => {
|
|
60
60
|
var e;
|
|
61
|
-
return (e =
|
|
61
|
+
return (e = A.value) == null ? void 0 : e.liveId;
|
|
62
62
|
}, (e) => {
|
|
63
|
-
e ||
|
|
63
|
+
e || g();
|
|
64
64
|
});
|
|
65
|
-
|
|
66
|
-
|
|
65
|
+
T.once("ready", () => {
|
|
66
|
+
U();
|
|
67
67
|
});
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
68
|
+
let d = !1;
|
|
69
|
+
function q() {
|
|
70
|
+
return d || (i.reportAtomicMetrics(u.LIVE_BARRAGE_STORE_LOAD), d = !0), {
|
|
71
|
+
messageList: a,
|
|
72
|
+
sendTextMessage: _,
|
|
72
73
|
sendCustomMessage: M,
|
|
73
|
-
appendLocalTip:
|
|
74
|
+
appendLocalTip: x
|
|
74
75
|
};
|
|
75
76
|
}
|
|
76
77
|
export {
|
|
77
|
-
|
|
78
|
+
q as useBarrageState
|
|
78
79
|
};
|
|
@@ -1,101 +1,5 @@
|
|
|
1
1
|
import { BattleEvent, DeviceStatus, BattleConfig, BattleInfo, SeatUserInfo } from '../../types';
|
|
2
2
|
|
|
3
|
-
/**
|
|
4
|
-
* PK状态管理组合式函数
|
|
5
|
-
* @memberof module:BattleState
|
|
6
|
-
* @description 提供直播PK功能的所有状态和操作方法,包括PK邀请、接受、拒绝、退出以及事件监听
|
|
7
|
-
* @returns {Object} PK状态管理对象
|
|
8
|
-
* @returns {Ref<BattleInfo | undefined>} returns.currentBattleInfo - 当前PK信息
|
|
9
|
-
* @returns {Ref<SeatUserInfo[]>} returns.battleUsers - PK参与用户列表
|
|
10
|
-
* @returns {Ref<Map<string, number>>} returns.battleScore - PK积分映射
|
|
11
|
-
* @returns {Function} returns.subscribeEvent - 订阅PK事件
|
|
12
|
-
* @returns {Function} returns.unsubscribeEvent - 取消订阅PK事件
|
|
13
|
-
* @returns {Function} returns.requestBattle - 发起PK邀请
|
|
14
|
-
* @returns {Function} returns.cancelBattleRequest - 取消PK邀请
|
|
15
|
-
* @returns {Function} returns.acceptBattle - 接受PK邀请
|
|
16
|
-
* @returns {Function} returns.rejectBattle - 拒绝PK邀请
|
|
17
|
-
* @returns {Function} returns.exitBattle - 退出PK
|
|
18
|
-
* @example
|
|
19
|
-
* ```typescript
|
|
20
|
-
* import { useBattleState, BattleEvent } from '@/states/BattleState';
|
|
21
|
-
*
|
|
22
|
-
* // 在Vue组件中使用
|
|
23
|
-
* export default {
|
|
24
|
-
* setup() {
|
|
25
|
-
* const {
|
|
26
|
-
* currentBattleInfo,
|
|
27
|
-
* battleUsers,
|
|
28
|
-
* battleScore,
|
|
29
|
-
* subscribeEvent,
|
|
30
|
-
* unsubscribeEvent,
|
|
31
|
-
* requestBattle,
|
|
32
|
-
* acceptBattle,
|
|
33
|
-
* rejectBattle,
|
|
34
|
-
* exitBattle
|
|
35
|
-
* } = useBattleState();
|
|
36
|
-
*
|
|
37
|
-
* // 监听PK事件
|
|
38
|
-
* const handleBattleEvents = () => {
|
|
39
|
-
* // PK开始事件
|
|
40
|
-
* subscribeEvent(BattleEvent.onBattleStarted, (eventInfo) => {
|
|
41
|
-
* console.log('PK开始:', eventInfo.battleInfo);
|
|
42
|
-
* console.log('参与者:', eventInfo.inviter, eventInfo.invitees);
|
|
43
|
-
* });
|
|
44
|
-
*
|
|
45
|
-
* // PK结束事件
|
|
46
|
-
* subscribeEvent(BattleEvent.onBattleEnded, (eventInfo) => {
|
|
47
|
-
* console.log('PK结束:', eventInfo.reason);
|
|
48
|
-
* });
|
|
49
|
-
*
|
|
50
|
-
* // 积分变化事件
|
|
51
|
-
* subscribeEvent(BattleEvent.onBattleScoreChanged, (eventInfo) => {
|
|
52
|
-
* console.log('积分更新:', battleScore.value);
|
|
53
|
-
* });
|
|
54
|
-
* };
|
|
55
|
-
*
|
|
56
|
-
* // 发起PK
|
|
57
|
-
* const startBattle = async (targetUserId: string) => {
|
|
58
|
-
* try {
|
|
59
|
-
* await requestBattle({
|
|
60
|
-
* config: {
|
|
61
|
-
* duration: 300, // 5分钟
|
|
62
|
-
* needResponse: true,
|
|
63
|
-
* extensionInfo: { type: 'singing' }
|
|
64
|
-
* },
|
|
65
|
-
* userIdList: [targetUserId],
|
|
66
|
-
* timeout: 30
|
|
67
|
-
* });
|
|
68
|
-
* } catch (error) {
|
|
69
|
-
* console.error('发起PK失败:', error);
|
|
70
|
-
* }
|
|
71
|
-
* };
|
|
72
|
-
*
|
|
73
|
-
* // 处理PK邀请
|
|
74
|
-
* subscribeEvent(BattleEvent.onBattleRequestReceived, async (eventInfo) => {
|
|
75
|
-
* const { battleId, inviter } = eventInfo;
|
|
76
|
-
* const shouldAccept = confirm(`是否接受来自 ${inviter.userName} 的PK邀请?`);
|
|
77
|
-
*
|
|
78
|
-
* if (shouldAccept) {
|
|
79
|
-
* await acceptBattle({ battleId });
|
|
80
|
-
* } else {
|
|
81
|
-
* await rejectBattle({ battleId });
|
|
82
|
-
* }
|
|
83
|
-
* });
|
|
84
|
-
*
|
|
85
|
-
* onMounted(() => {
|
|
86
|
-
* handleBattleEvents();
|
|
87
|
-
* });
|
|
88
|
-
*
|
|
89
|
-
* return {
|
|
90
|
-
* currentBattleInfo,
|
|
91
|
-
* battleUsers,
|
|
92
|
-
* battleScore,
|
|
93
|
-
* startBattle
|
|
94
|
-
* };
|
|
95
|
-
* }
|
|
96
|
-
* };
|
|
97
|
-
* ```
|
|
98
|
-
*/
|
|
99
3
|
export declare function useBattleState(): {
|
|
100
4
|
currentBattleInfo: import('vue').Ref<BattleInfo | undefined, BattleInfo | undefined>;
|
|
101
5
|
battleUsers: import('vue').Ref<{
|