[*] 调整接口
This commit is contained in:
@@ -7,6 +7,7 @@ import org.springframework.web.bind.annotation.RestController;
|
||||
import com.acgist.taoyao.boot.config.MediaProperties;
|
||||
import com.acgist.taoyao.boot.config.WebrtcProperties;
|
||||
import com.acgist.taoyao.boot.model.Message;
|
||||
import com.acgist.taoyao.signal.config.camera.CameraProperties;
|
||||
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.media.Content;
|
||||
@@ -25,10 +26,12 @@ import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
public class ConfigController {
|
||||
|
||||
private final MediaProperties mediaProperties;
|
||||
private final CameraProperties cameraProperties;
|
||||
private final WebrtcProperties webrtcProperties;
|
||||
|
||||
public ConfigController(MediaProperties mediaProperties, WebrtcProperties webrtcProperties) {
|
||||
public ConfigController(MediaProperties mediaProperties, CameraProperties cameraProperties, WebrtcProperties webrtcProperties) {
|
||||
this.mediaProperties = mediaProperties;
|
||||
this.cameraProperties = cameraProperties;
|
||||
this.webrtcProperties = webrtcProperties;
|
||||
}
|
||||
|
||||
@@ -38,6 +41,13 @@ public class ConfigController {
|
||||
public Message media() {
|
||||
return Message.success(this.mediaProperties);
|
||||
}
|
||||
|
||||
@Operation(summary = "摄像头配置", description = "摄像头配置")
|
||||
@GetMapping("/camera")
|
||||
@ApiResponse(content = @Content(schema = @Schema(implementation = CameraProperties.class)))
|
||||
private Message camera() {
|
||||
return Message.success(this.cameraProperties);
|
||||
}
|
||||
|
||||
@Operation(summary = "WebRTC配置", description = "WebRTC配置")
|
||||
@GetMapping("/webrtc")
|
||||
|
||||
@@ -7,6 +7,9 @@ import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import com.acgist.taoyao.boot.model.Message;
|
||||
import com.acgist.taoyao.signal.config.camera.AiProperties;
|
||||
import com.acgist.taoyao.signal.model.control.PtzControl;
|
||||
import com.acgist.taoyao.signal.protocol.control.ControlAiProtocol;
|
||||
import com.acgist.taoyao.signal.protocol.control.ControlBellProtocol;
|
||||
import com.acgist.taoyao.signal.protocol.control.ControlPhotographProtocol;
|
||||
import com.acgist.taoyao.signal.protocol.control.ControlPtzProtocol;
|
||||
@@ -14,6 +17,7 @@ import com.acgist.taoyao.signal.protocol.control.ControlRecordProtocol;
|
||||
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import jakarta.validation.Valid;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
|
||||
/**
|
||||
@@ -27,53 +31,54 @@ import jakarta.validation.constraints.NotNull;
|
||||
@RequestMapping("/control")
|
||||
public class ControlController {
|
||||
|
||||
private final ControlAiProtocol controlAiProtocol;
|
||||
private final ControlPtzProtocol controlPtzProtocol;
|
||||
private final ControlBellProtocol controlBellProtocol;
|
||||
private final ControlRecordProtocol controlRecordProtocol;
|
||||
private final ControlPhotographProtocol controlPhotographProtocol;
|
||||
|
||||
public ControlController(
|
||||
ControlAiProtocol controlAiProtocol,
|
||||
ControlPtzProtocol controlPtzProtocol,
|
||||
ControlBellProtocol controlBellProtocol,
|
||||
ControlRecordProtocol controlRecordProtocol,
|
||||
ControlPhotographProtocol controlPhotographProtocol
|
||||
) {
|
||||
this.controlAiProtocol = controlAiProtocol;
|
||||
this.controlPtzProtocol = controlPtzProtocol;
|
||||
this.controlBellProtocol = controlBellProtocol;
|
||||
this.controlRecordProtocol = controlRecordProtocol;
|
||||
this.controlPhotographProtocol = controlPhotographProtocol;
|
||||
}
|
||||
|
||||
@Operation(summary = "AI识别", description = "AI识别")
|
||||
@GetMapping("/ai/{clientId}")
|
||||
public Message ai(@PathVariable String clientId, @Valid AiProperties aiProperties) {
|
||||
return Message.success(this.controlAiProtocol.execute(clientId, aiProperties));
|
||||
}
|
||||
|
||||
@Operation(summary = "PTZ", description = "PTZ")
|
||||
@GetMapping("/ptz/{clientId}")
|
||||
public Message ptz(
|
||||
@NotNull(message = "PTZ类型不能为空") ControlPtzProtocol.Type type,
|
||||
@NotNull(message = "PTZ参数不能为空") Double value,
|
||||
@PathVariable String clientId
|
||||
) {
|
||||
this.controlPtzProtocol.execute(type, value, clientId);
|
||||
return Message.success();
|
||||
public Message ptz(@PathVariable String clientId, @Valid PtzControl ptzControl) {
|
||||
return Message.success(this.controlPtzProtocol.execute(clientId, ptzControl));
|
||||
}
|
||||
|
||||
@Operation(summary = "响铃", description = "响铃")
|
||||
@GetMapping("/bell/{clientId}")
|
||||
public Message bell(@PathVariable String clientId) {
|
||||
this.controlBellProtocol.execute(clientId);
|
||||
return Message.success();
|
||||
public Message bell(@PathVariable String clientId, @NotNull(message = "没有指定操作") Boolean active) {
|
||||
return Message.success(this.controlBellProtocol.execute(clientId, active));
|
||||
}
|
||||
|
||||
@Operation(summary = "录像", description = "录像")
|
||||
@GetMapping("/record/{clientId}")
|
||||
public Message record(@PathVariable String clientId) {
|
||||
this.controlRecordProtocol.execute(clientId);
|
||||
return Message.success();
|
||||
public Message record(@PathVariable String clientId, @NotNull(message = "没有指定操作") Boolean active) {
|
||||
return Message.success(this.controlRecordProtocol.execute(clientId, active));
|
||||
}
|
||||
|
||||
@Operation(summary = "拍照", description = "拍照")
|
||||
@GetMapping("/photograph/{clientId}")
|
||||
public Message photograph(@PathVariable String clientId) {
|
||||
this.controlPhotographProtocol.execute(clientId);
|
||||
return Message.success();
|
||||
return Message.success(this.controlPhotographProtocol.execute(clientId));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -158,6 +158,35 @@ taoyao:
|
||||
port: 3478
|
||||
username: taoyao
|
||||
password: taoyao
|
||||
# 摄像头配置
|
||||
camera:
|
||||
# 混音
|
||||
audio-mixer: false
|
||||
# 变声
|
||||
audio-changer: false
|
||||
# 降噪
|
||||
audio-denoise: true
|
||||
# 存储目录
|
||||
storage-path: /data/taoyao/storage
|
||||
# 图片存储目录
|
||||
storage-image-path: /data/taoyao/storage/image
|
||||
# 视频存储目录
|
||||
storage-video-path: /data/taoyao/storage/video
|
||||
# AI识别
|
||||
ai:
|
||||
enabled: false
|
||||
type: PERSON
|
||||
# 美颜
|
||||
beauty:
|
||||
enabled: false
|
||||
level: 10
|
||||
# 水印
|
||||
watermark:
|
||||
enabled: false
|
||||
text: taoyao
|
||||
posx: 10
|
||||
posy: 10
|
||||
opacity: 0.8
|
||||
# 安全配置
|
||||
security:
|
||||
enabled: true
|
||||
|
||||
Reference in New Issue
Block a user