59 lines
1.9 KiB
TypeScript
59 lines
1.9 KiB
TypeScript
/**
|
|
* @module LiveSummaryState
|
|
* @module_description
|
|
* 统计信息状态管理模块
|
|
* 核心功能:统计和展示直播过程中的关键数据,包括观看人数、点赞数、礼物数等实时统计。
|
|
* 技术特点:支持实时数据采集、数据聚合、统计分析等功能,提供完整的直播数据视图。
|
|
* 业务价值:为直播平台提供数据分析能力,支持直播效果评估和优化改进。
|
|
* 应用场景:直播数据展示、主播分析、流量统计、商业数据报表等数据分析场景。
|
|
*/
|
|
import { ref } from "vue";
|
|
import { getRTCRoomEngineManager } from "./rtcRoomEngine";
|
|
|
|
/**
|
|
* 直播间统计信息
|
|
* @type {Ref<any>}
|
|
* @memberof module:LiveSummaryState
|
|
* @example
|
|
* import { useLiveSummaryState } from '@/uni_modules/tuikit-atomic-x/state/LiveSummaryState';
|
|
* const { summaryData } = useLiveSummaryState('your_live_id');
|
|
*
|
|
* // 监听统计数据变化
|
|
* watch(summaryData, (newData) => {
|
|
* if (newData) {
|
|
* console.log('直播统计数据更新:', newData);
|
|
* }
|
|
* });
|
|
*
|
|
* // 获取当前统计数据
|
|
* const data = summaryData.value;
|
|
* if (data) {
|
|
* console.log('当前直播统计数据:', data);
|
|
* }
|
|
*/
|
|
const summaryData = ref<any>();
|
|
|
|
const onLiveSummaryStoreChanged = (eventName : string, res : string) : void => {
|
|
try {
|
|
if (eventName === "summaryData") {
|
|
const data = JSON.parse(res);
|
|
summaryData.value = data;
|
|
console.log("直播统计数据更新", summaryData.value)
|
|
}
|
|
} catch (error) {
|
|
console.error("onLiveSummaryStoreChanged error:", error);
|
|
}
|
|
};
|
|
|
|
function bindEvent(liveID : string) : void {
|
|
getRTCRoomEngineManager().on("liveSummaryStoreChanged", onLiveSummaryStoreChanged, liveID);
|
|
}
|
|
|
|
export function useLiveSummaryState(liveID : string) {
|
|
bindEvent(liveID);
|
|
return {
|
|
summaryData, // 直播间统计信息
|
|
};
|
|
}
|
|
|
|
export default useLiveSummaryState; |