‘liusuyi’
2023-08-26 76817b8c752b12030ab285bcb5b2effebfa9a248
ard-work/src/main/java/com/ruoyi/media/controller/MediaController.java
@@ -7,6 +7,7 @@
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.device.camera.domain.ArdCameras;
import com.ruoyi.media.domain.StreamInfo;
import com.ruoyi.media.service.IMediaService;
@@ -16,6 +17,9 @@
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/**
 * @Description:
@@ -37,9 +41,16 @@
    @PreAuthorize("@ss.hasPermi('media:stream:add')")
    @ApiOperationSupport(includeParameters = {"streamInfo.name", "streamInfo.rtspSource", "streamInfo.mode"})
    public AjaxResult addPath(@RequestBody StreamInfo streamInfo) {
        String rtsp = mediaService.addPath(streamInfo.getName(), streamInfo.getRtspSource(), streamInfo.getMode());
        if (StringUtils.isEmpty(streamInfo.getName())) {
            return AjaxResult.error("通道名称不能为空");
        }
        if (StringUtils.isEmpty(streamInfo.getRtspSource())) {
            return AjaxResult.error("rtsp地址不能为空");
        }
        String rtsp = mediaService.addPath(streamInfo.getName(), streamInfo.getRtspSource(), streamInfo.getMode(), streamInfo.getIsCode());
        return AjaxResult.success(rtsp);
    }
    /**
     * 获取转码详细信息
     */
@@ -48,6 +59,7 @@
    public AjaxResult getInfo(@PathVariable("name") String name) {
        return success(mediaService.getPathInfo(name));
    }
    /**
     * 修改转码
     */
@@ -56,14 +68,14 @@
    @PutMapping
    public AjaxResult edit(@RequestBody StreamInfo streamInfo) {
        mediaService.removePath(new String[]{streamInfo.getName()});
        String rtsp = mediaService.addPath(streamInfo.getName(), streamInfo.getRtspSource(), streamInfo.getMode());
        String rtsp = mediaService.addPath(streamInfo.getName(), streamInfo.getRtspSource(), streamInfo.getMode(), streamInfo.getIsCode());
        return AjaxResult.success(rtsp);
    }
    @DeleteMapping("/path/{names}")
    @PreAuthorize("@ss.hasPermi('media:stream:remove')")
    @ApiOperation("移除转码")
    public AjaxResult removePath( @PathVariable String[] names) {
    public AjaxResult removePath(@PathVariable String[] names) {
        mediaService.removePath(names);
        return AjaxResult.success();
    }
@@ -119,7 +131,19 @@
    @PreAuthorize("@ss.hasPermi('media:stream:remove')")
    @DeleteMapping("/{id}")
    public AjaxResult removePullStreamSession(@PathVariable String id) {
        return AjaxResult.success(mediaService.kickRtspSession(id));
        List<StreamInfo> pullStreamList = mediaService.getPullStreamList();
        StreamInfo streamInfo = pullStreamList.stream()
                .filter(object -> object.getId().equals(id))
                .collect(Collectors.toList()).get(0);
        switch (streamInfo.getSessionType()) {
            case "rtsp":
                return AjaxResult.success(mediaService.kickRtspSession(id));
            case "webrtc":
                return AjaxResult.success(mediaService.kickWebrtcSession(id));
            case "rtmp":
                return AjaxResult.success(mediaService.kickRtmpSession(id));
        }
        return AjaxResult.error();
    }
    @PreAuthorize("@ss.hasPermi('media:stream:list')")