package com.ard.zlm.hook;
|
|
import com.ard.zlm.api.domain.MediaInfo;
|
import com.ard.zlm.domain.RecordInfo;
|
import com.ard.zlm.api.domain.ZlmMediaServer;
|
import com.ard.zlm.event.MediaArrivalEvent;
|
import com.ard.zlm.event.MediaEvent;
|
import com.ard.zlm.mediaServer.MediaPublishEvent;
|
import com.ard.zlm.mediaServer.MediaRecordMp4Event;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
import lombok.Data;
|
|
/**
|
* Hook返回的内容
|
*/
|
@Data
|
public class HookData {
|
/**
|
* 应用名
|
*/
|
private String app;
|
/**
|
* 流ID
|
*/
|
private String stream;
|
/**
|
* 流媒体节点
|
*/
|
private ZlmMediaServer mediaServer;
|
/**
|
* 协议
|
*/
|
private String schema;
|
|
/**
|
* 流信息
|
*/
|
private MediaInfo mediaInfo;
|
|
/**
|
* 录像信息
|
*/
|
private RecordInfo recordInfo;
|
|
@Schema(description = "推流的额外参数")
|
private String params;
|
|
public static HookData getInstance(MediaEvent mediaEvent) {
|
HookData hookData = new HookData();
|
if (mediaEvent instanceof MediaPublishEvent) {
|
MediaPublishEvent event = (MediaPublishEvent) mediaEvent;
|
hookData.setApp(event.getApp());
|
hookData.setStream(event.getStream());
|
hookData.setSchema(event.getSchema());
|
hookData.setMediaServer(event.getMediaServer());
|
hookData.setParams(event.getParams());
|
} else if (mediaEvent instanceof MediaArrivalEvent) {
|
MediaArrivalEvent event = (MediaArrivalEvent) mediaEvent;
|
hookData.setApp(event.getApp());
|
hookData.setStream(event.getStream());
|
hookData.setSchema(event.getSchema());
|
hookData.setMediaServer(event.getMediaServer());
|
hookData.setMediaInfo(event.getMediaInfo());
|
} else if (mediaEvent instanceof MediaRecordMp4Event) {
|
MediaRecordMp4Event event = (MediaRecordMp4Event) mediaEvent;
|
hookData.setApp(event.getApp());
|
hookData.setStream(event.getStream());
|
hookData.setSchema(event.getSchema());
|
hookData.setMediaServer(event.getMediaServer());
|
hookData.setRecordInfo(event.getRecordInfo());
|
} else {
|
hookData.setApp(mediaEvent.getApp());
|
hookData.setStream(mediaEvent.getStream());
|
hookData.setSchema(mediaEvent.getSchema());
|
hookData.setMediaServer(mediaEvent.getMediaServer());
|
}
|
return hookData;
|
}
|
}
|