import { type } from "os";
export type DeviceType = 'pvg67' | 'pvgplus' | 'rtsp' | 'gb28181';
export type ProtocolType = 'httpflv' | 'websocketflv' | 'hls' | 'webrtc';
export type Streamtype = 'vod' | 'live';
export enum BarItemType {
BTN = 'btn',
LABEL = 'label'
}
export interface ToolBarItem {
type: BarItemType;
label?: string;
icon?: string;
className?: string;
cmd?: string;
cb?: Function;
tip?: string;
}
export interface StreamOpt {
user: string; // Pvg/gb登录用户名
password: string; // pvg/gb登录密码
ip: string; // pvg/gb的 ip
port: string; // pvg / gb端口
channel: string; // pvg/gb通道号, pvm中的id。pvgplus可在末尾用#传入媒体参数, 包括video、audio、profile, 具体取值: video:H264 H265 MPEG4;audio:AAC G711 G726 G729;profile:CIF D1 HD 0 1 2 三种媒体参数任意组合,无先后顺序,例如 #D1、#H264#HD#G711、#G711#HD#H264, profile中的0、1、2、...代表主子码流
title?: string; // 通道名称
url?: string; // Rtsp的地址
sipServerId?: string; // 国标网关id
streamtype?: Streamtype;
deviceType?: DeviceType;
protocolType?: ProtocolType;
isptz?: boolean; // 是否云台控制
beginTime?: string; // 录像开始时间
endTime?: string; // 录像结束时间
vod?: number; // 录像存储类型: 0:服务录像 1~255:设备录像,
headerToolBar?: Array<ToolBarItem>, // header toolbae
footerToolBar?: Array<ToolBarItem>, // footer toolbae
hideHeaderToolBar?: boolean; // 是否隐藏对应工具栏
hideFooterToolBar?: boolean; // 是否隐藏对应工具栏
enableWorker?: boolean; // 是否启用web worker
}
export const defaultStreamOpt = {
user: 'admin',
deviceType: "pvgplus",
isptz: false,
password: "a123456",
protocolType: "websocketflv",
streamtype: "live",
footerToolBar: [],
headerToolBar: [],
enableWorker: false
};
export const createDefaultStreamOpt = () => {
return Object.assign({}, defaultStreamOpt);
}
export type StreamSpeed = -4 | -3 | -2 | -1 | 0 | 1 | 2 | 3 | 4;
export interface PTZParam {
streamId?: string; // 流id
cmd: number;
value: number;
}
export enum JPEvent {
DESTROY = 'destroy',
INITED = 'inited',
CREATED = 'created',
SEEKED = 'seeked',
PLAY = 'play',
PAUSE = 'pause',
}