package com.genersoft.iot.vmp.media.event.hook; import com.genersoft.iot.vmp.media.bean.MediaInfo; import com.genersoft.iot.vmp.media.bean.RecordInfo; import com.genersoft.iot.vmp.media.event.media.MediaArrivalEvent; import com.genersoft.iot.vmp.media.event.media.MediaEvent; import com.genersoft.iot.vmp.media.event.media.MediaPublishEvent; import com.genersoft.iot.vmp.media.event.media.MediaRecordMp4Event; import com.genersoft.iot.vmp.media.bean.MediaServer; import io.swagger.v3.oas.annotations.media.Schema; /** * Hook返回的内容 */ public class HookData { /** * 应用名 */ private String app; /** * 流ID */ private String stream; /** * 流媒体节点 */ private MediaServer 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; } public String getApp() { return app; } public void setApp(String app) { this.app = app; } public String getStream() { return stream; } public void setStream(String stream) { this.stream = stream; } public MediaServer getMediaServer() { return mediaServer; } public void setMediaServer(MediaServer mediaServer) { this.mediaServer = mediaServer; } public String getSchema() { return schema; } public void setSchema(String schema) { this.schema = schema; } public MediaInfo getMediaInfo() { return mediaInfo; } public void setMediaInfo(MediaInfo mediaInfo) { this.mediaInfo = mediaInfo; } public String getParams() { return params; } public void setParams(String params) { this.params = params; } public RecordInfo getRecordInfo() { return recordInfo; } public void setRecordInfo(RecordInfo recordInfo) { this.recordInfo = recordInfo; } }