package com.ruoyi.media.controller;
|
|
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
|
import com.ruoyi.common.core.controller.BaseController;
|
import com.ruoyi.common.core.domain.AjaxResult;
|
import com.ruoyi.common.core.page.TableDataInfo;
|
import com.ruoyi.media.domain.StreamInfo;
|
import com.ruoyi.media.service.IMediaService;
|
import io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiOperation;
|
import org.springframework.security.access.prepost.PreAuthorize;
|
import org.springframework.web.bind.annotation.*;
|
|
import javax.annotation.Resource;
|
|
/**
|
* @Description:
|
* @ClassName: controller
|
* @Author: 刘苏义
|
* @Date: 2023年07月13日9:26
|
* @Version: 1.0
|
**/
|
@RestController
|
@Api(tags = "流媒体接口")
|
@RequestMapping("/media/stream")
|
public class MediaController extends BaseController {
|
@Resource
|
private IMediaService mediaService;
|
|
@PostMapping("/add")
|
@ApiOperation("增加转码")
|
@ApiOperationSupport(includeParameters = {"streamInfo.name","streamInfo.rtspSource"})
|
public AjaxResult addPath(@RequestBody StreamInfo streamInfo) {
|
String rtsp = mediaService.addPath(streamInfo.getName(), streamInfo.getRtspSource());
|
return AjaxResult.success(rtsp);
|
}
|
|
@PostMapping("/remove")
|
@ApiOperation("移除转码")
|
@ApiOperationSupport(includeParameters = {"streamInfo.name"})
|
public AjaxResult removePath(@RequestBody StreamInfo streamInfo) {
|
mediaService.removePath(streamInfo.getName());
|
return AjaxResult.success();
|
}
|
|
@GetMapping("/getPaths")
|
@ApiOperation("获取当前转码列表")
|
public AjaxResult getPaths() {
|
return AjaxResult.success(mediaService.paths());
|
}
|
|
@GetMapping("/getRtspSessions")
|
@ApiOperation("获取rtsp会话列表")
|
public AjaxResult getRtspSessions() {
|
return AjaxResult.success(mediaService.rtspsessions());
|
}
|
|
@GetMapping("/getRtspConns")
|
@ApiOperation("获取rtsp连接列表")
|
public AjaxResult getRtspConns() {
|
return AjaxResult.success(mediaService.rtspconns());
|
}
|
|
@GetMapping("/getRtspSessionById")
|
@ApiOperation("按ID查询会话")
|
public AjaxResult getRtspSessionById(String sessionId) {
|
return AjaxResult.success(mediaService.getRtspSessionById(sessionId));
|
}
|
|
@GetMapping("/getPushStreams")
|
@ApiOperation("获取推流信息")
|
public AjaxResult getPushStreams() {
|
return AjaxResult.success(mediaService.getPushStreams());
|
}
|
|
@GetMapping("/getPullStreams")
|
@ApiOperation("获取拉流信息")
|
public AjaxResult getPullStreams() {
|
return AjaxResult.success(mediaService.getPullStreams());
|
}
|
|
@PreAuthorize("@ss.hasPermi('media:stream:list')")
|
@GetMapping("/pushList")
|
@ApiOperation("获取推流列表")
|
public TableDataInfo getPushStreamList() {
|
startPage();
|
return getDataTable(mediaService.getPushStreamList());
|
}
|
/**
|
* 新增流媒体推流
|
*/
|
@PreAuthorize("@ss.hasPermi('media:stream:add')")
|
@PostMapping
|
@ApiOperationSupport(includeParameters = {"streamInfo.name"})
|
public AjaxResult add(@RequestBody StreamInfo streamInfo) throws InterruptedException {
|
String rtsp = mediaService.addPath(streamInfo.getName(), streamInfo.getRtspSource());
|
return AjaxResult.success(rtsp);
|
}
|
/**
|
* 删除流媒体推流
|
*/
|
@PreAuthorize("@ss.hasPermi('media:stream:remove')")
|
@DeleteMapping("/path/{name}")
|
public AjaxResult remove(@PathVariable String name) {
|
mediaService.removePath(name);
|
return AjaxResult.success();
|
}
|
/**
|
* 删除流媒体拉流
|
*/
|
@PreAuthorize("@ss.hasPermi('media:stream:remove')")
|
@DeleteMapping("/{id}")
|
public AjaxResult removePullStreamSession(@PathVariable String id) {
|
return AjaxResult.success(mediaService.kickRtspSession(id));
|
}
|
|
@PreAuthorize("@ss.hasPermi('media:stream:list')")
|
@GetMapping("/pullList")
|
@ApiOperation("获取拉流列表")
|
public TableDataInfo getPullStreamList() {
|
startPage();
|
return getDataTable(mediaService.getPullStreamList());
|
}
|
}
|