feat: 新增流媒体推流统计卡片

This commit is contained in:
yangsy
2026-01-04 11:27:46 +08:00
parent 80e879e61f
commit 670054ca01
7 changed files with 169 additions and 3 deletions
+2
View File
@@ -1 +1,3 @@
export * from './invite-stream-type';
export * from './send-rtp-info';
export * from './snap-result';
@@ -0,0 +1 @@
export type InviteStreamType = 'PLAY' | 'PLAYBACK' | 'DOWNLOAD' | 'PUSH' | 'PROXY' | 'CLOUD_RECORD_PUSH' | 'CLOUD_RECORD_PROXY';
+51
View File
@@ -0,0 +1,51 @@
import type { InviteStreamType } from '@/apis';
import type { Nullable } from '@/types';
export type SendRtpInfo = Nullable<{
ip: string;
port: number;
ssrc: string;
platformId: string;
deviceId: string;
channelId: string;
app: string;
streamId: string;
/**
* 推流状态
* 0 等待设备推流上来
* 1 等待上级平台回复ack
* 2 推流中
*/
status: number;
/**
* 是否为tcp
*/
tcp: boolean;
/**
* 是否为tcp主动模式
*/
tcpActive: boolean;
localPort: number;
mediaServerId: string;
serverId: string;
callId: string;
fromTag: string;
toTag: string;
/**
* 发送时,rtp的ptuint8_t,不传时默认为96
*/
pt: number;
/**
* 发送时,rtp的负载类型。为true时,负载为ps;为false时,为es;
*/
usePs: boolean;
/**
* 当usePs 为false时,有效。为1时,发送音频;为0时,发送视频;不传时默认为0
*/
onlyAudio: boolean;
/**
* 是否开启rtcp保活
*/
rtcp: boolean;
playType: InviteStreamType;
}>;
@@ -1,6 +1,16 @@
import { ndmClient, userClient, type MediaServerStatus, type Station } from '@/apis';
import { ndmClient, userClient, type MediaServerStatus, type SendRtpInfo, type Station } from '@/apis';
import { unwrapResponse } from '@/utils';
export const getAllPushApi = async (options?: { stationCode?: Station['code']; signal?: AbortSignal }) => {
const { stationCode, signal } = options ?? {};
const client = stationCode ? ndmClient : userClient;
const prefix = stationCode ? `/${stationCode}` : '';
const endpoint = `${prefix}/api/ndm/ndmServiceAvailable/mediaServer/getAllPush`;
const resp = await client.get<SendRtpInfo[]>(endpoint, { signal });
const data = unwrapResponse(resp);
return data;
};
export const isMediaServerAliveApi = async (options?: { stationCode?: Station['code']; signal?: AbortSignal }) => {
const { stationCode, signal } = options ?? {};
const client = stationCode ? ndmClient : userClient;