通用通道支持云台控制

This commit is contained in:
lin
2025-07-31 18:49:53 +08:00
parent edeb8d6b3f
commit 19b873ba5c
49 changed files with 941 additions and 381 deletions

View File

@@ -105,7 +105,7 @@ public class StreamPush extends CommonGBChannel implements Comparable<StreamPush
private String uniqueKey;
private Integer dataType = ChannelDataType.STREAM_PUSH.value;
private Integer dataType = ChannelDataType.STREAM_PUSH;
@Override
@@ -145,7 +145,7 @@ public class StreamPush extends CommonGBChannel implements Comparable<StreamPush
if (ObjectUtils.isEmpty(this.getGbName())) {
this.setGbName( app+ "-" +stream);
}
this.setDataType(ChannelDataType.STREAM_PUSH.value);
this.setDataType(ChannelDataType.STREAM_PUSH);
this.setDataDeviceId(this.getId());
return this;
}

View File

@@ -218,7 +218,7 @@ public class StreamPushController {
if (!streamPushService.add(stream)) {
throw new ControllerException(ErrorCode.ERROR100);
}
stream.setDataType(ChannelDataType.STREAM_PUSH.value);
stream.setDataType(ChannelDataType.STREAM_PUSH);
stream.setDataDeviceId(stream.getId());
return stream;
}

View File

@@ -14,7 +14,7 @@ import java.util.Set;
@Repository
public interface StreamPushMapper {
Integer dataType = ChannelDataType.GB28181.value;
Integer dataType = ChannelDataType.GB28181;
@Insert("INSERT INTO wvp_stream_push (app, stream, media_server_id, server_id, push_time, update_time, create_time, pushing, start_offline_push) VALUES" +
"(#{app}, #{stream}, #{mediaServerId} , #{serverId} , #{pushTime} ,#{updateTime}, #{createTime}, #{pushing}, #{startOfflinePush})")

View File

@@ -0,0 +1,53 @@
package com.genersoft.iot.vmp.streamPush.service.impl;
import com.genersoft.iot.vmp.common.StreamInfo;
import com.genersoft.iot.vmp.common.enums.ChannelDataType;
import com.genersoft.iot.vmp.gb28181.bean.CommonGBChannel;
import com.genersoft.iot.vmp.gb28181.bean.Platform;
import com.genersoft.iot.vmp.gb28181.bean.PlayException;
import com.genersoft.iot.vmp.gb28181.service.ISourcePlayService;
import com.genersoft.iot.vmp.service.bean.ErrorCallback;
import com.genersoft.iot.vmp.streamPush.service.IStreamPushPlayService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.sip.message.Response;
@Slf4j
@Service(ChannelDataType.PLAY_SERVICE + ChannelDataType.STREAM_PUSH)
public class SourcePlayServiceForStreamPushImpl implements ISourcePlayService {
@Autowired
private IStreamPushPlayService playService;
@Override
public void play(CommonGBChannel channel, Platform platform, Boolean record, ErrorCallback<StreamInfo> callback) {
String serverGBId = null;
String platformName = null;
if (platform != null) {
// 推流
serverGBId = platform.getServerGBId();
platformName = platform.getName();
}
// 推流
try {
playService.start(channel.getDataDeviceId(), callback, serverGBId, platformName);
}catch (PlayException e) {
callback.run(e.getCode(), e.getMsg(), null);
}catch (Exception e) {
log.error("[点播推流通道失败] 通道: {}({})", channel.getGbName(), channel.getGbDeviceId(), e);
callback.run(Response.BUSY_HERE, "busy here", null);
}
}
@Override
public void stopPlay(CommonGBChannel channel, String stream) {
// 推流
try {
playService.stop(channel.getDataDeviceId());
}catch (Exception e) {
log.error("[停止点播失败] {}({})", channel.getGbName(), channel.getGbDeviceId(), e);
}
}
}