新增RPC录像回放暂停和恢复

This commit is contained in:
648540858
2024-12-13 17:28:38 +08:00
parent 381d92e047
commit e16ca179a6
9 changed files with 135 additions and 13 deletions

View File

@@ -18,4 +18,7 @@ public interface IRedisRpcPlayService {
void queryRecordInfo(String serverId, Integer channelId, String startTime, String endTime, ErrorCallback<RecordInfo> callback);
void pauseRtp(String serverId, String streamId);
void resumeRtp(String serverId, String streamId);
}

View File

@@ -131,6 +131,56 @@ public class RedisRpcChannelPlayController extends RpcController {
return null;
}
/**
* 暂停录像回放
*/
@RedisRpcMapping("pauseRtp")
public RedisRpcResponse pauseRtp(RedisRpcRequest request) {
String streamId = request.getParam().toString();
RedisRpcResponse response = request.getResponse();
if (streamId == null) {
response.setStatusCode(ErrorCode.ERROR400.getCode());
response.setBody("param error");
return response;
}
try {
channelPlayService.pauseRtp(streamId);
response.setStatusCode(ErrorCode.SUCCESS.getCode());
}catch (ControllerException e) {
response.setStatusCode(ErrorCode.ERROR100.getCode());
response.setBody(e.getMessage());
}
return response;
}
/**
* 恢复录像回放
*/
@RedisRpcMapping("resumeRtp")
public RedisRpcResponse resumeRtp(RedisRpcRequest request) {
String streamId = request.getParam().toString();
RedisRpcResponse response = request.getResponse();
if (streamId == null) {
response.setStatusCode(ErrorCode.ERROR400.getCode());
response.setBody("param error");
return response;
}
try {
channelPlayService.resumeRtp(streamId);
response.setStatusCode(ErrorCode.SUCCESS.getCode());
}catch (ControllerException e) {
response.setStatusCode(ErrorCode.ERROR100.getCode());
response.setBody(e.getMessage());
}
return response;
}
/**
* 停止点播国标设备

View File

@@ -118,6 +118,34 @@ public class RedisRpcPlayServiceImpl implements IRedisRpcPlayService {
}
}
@Override
public void pauseRtp(String serverId, String streamId) {
RedisRpcRequest request = buildRequest("channel/pauseRtp", streamId);
request.setToId(serverId);
RedisRpcResponse response = redisRpcConfig.request(request, 5, TimeUnit.SECONDS);
if (response == null) {
log.info("[RPC 暂停回放] 失败, streamId: {}", streamId);
}else {
if (response.getStatusCode() != ErrorCode.SUCCESS.getCode()) {
log.info("[RPC 暂停回放] 失败, {}, streamId: {}", response.getBody(), streamId);
}
}
}
@Override
public void resumeRtp(String serverId, String streamId) {
RedisRpcRequest request = buildRequest("channel/resumeRtp", streamId);
request.setToId(serverId);
RedisRpcResponse response = redisRpcConfig.request(request, 5, TimeUnit.SECONDS);
if (response == null) {
log.info("[RPC 恢复回放] 失败, streamId: {}", streamId);
}else {
if (response.getStatusCode() != ErrorCode.SUCCESS.getCode()) {
log.info("[RPC 恢复回放] 失败, {}, streamId: {}", response.getBody(), streamId);
}
}
}
@Override
public void download(String serverId, Integer channelId, String startTime, String endTime, int downloadSpeed, ErrorCallback<StreamInfo> callback) {