This commit is contained in:
acgist
2023-03-14 07:53:32 +08:00
parent 72e4b34630
commit 0cd054dbb0
25 changed files with 242 additions and 203 deletions

View File

@@ -15,6 +15,7 @@ import io.swagger.v3.oas.annotations.media.Content;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
/**
* 配置
@@ -24,6 +25,7 @@ import io.swagger.v3.oas.annotations.tags.Tag;
@Tag(name = "配置", description = "配置管理")
@RestController
@RequestMapping("/config")
@RequiredArgsConstructor
public class ConfigController {
private final MediaProperties mediaProperties;
@@ -31,18 +33,6 @@ public class ConfigController {
private final SocketProperties socketProperties;
private final WebrtcProperties webrtcProperties;
public ConfigController(
MediaProperties mediaProperties,
CameraProperties cameraProperties,
SocketProperties socketProperties,
WebrtcProperties webrtcProperties
) {
this.mediaProperties = mediaProperties;
this.cameraProperties = cameraProperties;
this.socketProperties = socketProperties;
this.webrtcProperties = webrtcProperties;
}
@Operation(summary = "媒体配置", description = "媒体配置")
@GetMapping("/media")
@ApiResponse(content = @Content(schema = @Schema(implementation = MediaProperties.class)))

View File

@@ -27,6 +27,7 @@ import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.validation.Valid;
import jakarta.validation.constraints.NotNull;
import lombok.RequiredArgsConstructor;
/**
* 控制
@@ -37,6 +38,7 @@ import jakarta.validation.constraints.NotNull;
@Validated
@RestController
@RequestMapping("/control")
@RequiredArgsConstructor
public class ControlController {
private final ControlAiProtocol controlAiProtocol;
@@ -49,28 +51,6 @@ public class ControlController {
private final ControlConfigAudioProtocol controlConfigAudioProtocol;
private final ControlConfigVideoProtocol controlConfigVideoProtocol;
public ControlController(
ControlAiProtocol controlAiProtocol,
ControlPtzProtocol controlPtzProtocol,
ControlBellProtocol controlBellProtocol,
ControlBeautyProtocol controlBeautyProtocol,
ControlRecordProtocol controlRecordProtocol,
ControlWatermarkProtocol controlWatermarkProtocol,
ControlPhotographProtocol controlPhotographProtocol,
ControlConfigAudioProtocol controlConfigAudioProtocol,
ControlConfigVideoProtocol controlConfigVideoProtocol
) {
this.controlAiProtocol = controlAiProtocol;
this.controlPtzProtocol = controlPtzProtocol;
this.controlBellProtocol = controlBellProtocol;
this.controlBeautyProtocol = controlBeautyProtocol;
this.controlRecordProtocol = controlRecordProtocol;
this.controlWatermarkProtocol = controlWatermarkProtocol;
this.controlPhotographProtocol = controlPhotographProtocol;
this.controlConfigAudioProtocol = controlConfigAudioProtocol;
this.controlConfigVideoProtocol = controlConfigVideoProtocol;
}
@Operation(summary = "AI识别", description = "AI识别控制")
@GetMapping("/ai/{clientId}")
public Message ai(@PathVariable String clientId, @Valid AiProperties aiProperties) {

View File

@@ -7,6 +7,7 @@ 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.boot.model.MessageCode;
import com.acgist.taoyao.signal.protocol.platform.PlatformRebootProtocol;
import com.acgist.taoyao.signal.protocol.platform.PlatformShutdownProtocol;
@@ -38,6 +39,9 @@ public class PlatformController {
@Operation(summary = "重启平台", description = "重启平台")
@GetMapping("/reboot")
public Message platformReboot() {
if(this.platformRebootProtocol == null) {
return Message.fail(MessageCode.CODE_3406, "功能没有开启");
}
this.platformRebootProtocol.execute();
return Message.success();
}
@@ -45,6 +49,9 @@ public class PlatformController {
@Operation(summary = "关闭平台", description = "关闭平台")
@GetMapping("/shutdown")
public Message platformShutdown() {
if(this.platformShutdownProtocol == null) {
return Message.fail(MessageCode.CODE_3406, "功能没有开启");
}
this.platformShutdownProtocol.execute();
return Message.success();
}

View File

@@ -7,6 +7,7 @@ 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.boot.model.MessageCode;
import com.acgist.taoyao.signal.protocol.system.SystemRebootProtocol;
import com.acgist.taoyao.signal.protocol.system.SystemShutdownProtocol;
@@ -38,6 +39,9 @@ public class SystemController {
@Operation(summary = "重启系统", description = "重启系统")
@GetMapping("/reboot")
public Message systemReboot() {
if(this.systemRebootProtocol == null) {
return Message.fail(MessageCode.CODE_3406, "功能没有开启");
}
this.systemRebootProtocol.execute();
return Message.success();
}
@@ -45,6 +49,9 @@ public class SystemController {
@Operation(summary = "关闭系统", description = "关闭系统")
@GetMapping("/shutdown")
public Message systemShutdown() {
if(this.systemShutdownProtocol == null) {
return Message.fail(MessageCode.CODE_3406, "功能没有开启");
}
this.systemShutdownProtocol.execute();
return Message.success();
}

View File

@@ -80,7 +80,7 @@ public class SocketSignalTest {
}
""";
// {"header":{"v":"1.0.0","id":1215310510002009,"signal":"room::enter"},"body":{"roomId":"8260e615-3081-4bfc-96a8-574f4dd780d9"}}
// {"header":{"v":"1.0.0","id":1215310510002010,"signal":"media::transport::plain::in"},"body":{"roomId":"8260e615-3081-4bfc-96a8-574f4dd780d9","rtcpMux":false,"comedia":true}}
// {"header":{"v":"1.0.0","id":1215310510002010,"signal":"media::transport::plain"},"body":{"roomId":"8260e615-3081-4bfc-96a8-574f4dd780d9","rtcpMux":false,"comedia":true}}
// {"header":{"v":"1.0.0","id":1215375110006012,"signal":"media::produce"},"body":{"kind":"video","roomId":"8260e615-3081-4bfc-96a8-574f4dd780d9","transportId":"14dc9307-bf9c-4442-a9ad-ce6a97623ef4","appData":{},"rtpParameters":{"codecs":[{"mimeType":"video/vp8","clockRate":90000,"payloadType":102,"rtcpFeedback":[]}],"encodings":[{"ssrc":123123}]}}}
// ffplay -protocol_whitelist "file,udp,rtp" taoyao.sdp
// ffmpeg -re -i video.mp4 -vcodec copy -map 0:0 -f rtp rtp://localhost:6666 > taoyao.sdp