| | |
| | | import com.ruoyi.common.core.page.TableDataInfo; |
| | | import com.ruoyi.common.utils.StringUtils; |
| | | import com.ruoyi.common.utils.uuid.IdUtils; |
| | | import com.ruoyi.media.domain.Config; |
| | | import com.ruoyi.media.domain.StreamInfo; |
| | | import com.ruoyi.media.domain.Vtdu; |
| | | import com.ruoyi.media.service.IMediaService; |
| | |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | | * @Description: |
| | | * @Description: 流媒体业务 |
| | | * @ClassName: controller |
| | | * @Author: 刘苏义 |
| | | * @Date: 2023年07月13日9:26 |
| | |
| | | if (StringUtils.isEmpty(streamInfo.getRtspSource())) { |
| | | return AjaxResult.error("rtsp地址不能为空"); |
| | | } |
| | | String rtsp = mediaService.addPath(streamInfo.getName(), streamInfo.getRtspSource(), streamInfo.getMode(), streamInfo.getIsCode()); |
| | | Map<String, String> map = mediaService.addPath(streamInfo.getName(), streamInfo.getRtspSource(), streamInfo.getMode(), streamInfo.getIsCode()); |
| | | map.get("rtspUrl"); |
| | | Vtdu vtdu = new Vtdu(); |
| | | vtdu.setName(streamInfo.getName()); |
| | | vtdu.setRtspUrl(streamInfo.getRtspSource()); |
| | | vtdu.setRtspSource(streamInfo.getRtspSource()); |
| | | vtdu.setIsCode(streamInfo.getIsCode()); |
| | | vtdu.setCodeType(streamInfo.getMode()); |
| | | vtdu.setMode(streamInfo.getMode()); |
| | | vtdu.setRtspUrl(map.get("rtspUrl")); |
| | | vtdu.setRtmpUrl(map.get("rtmpUrl")); |
| | | vtdu.setWebrtcUrl(map.get("webrtcUrl")); |
| | | vtduService.insertVtdu(vtdu); |
| | | return AjaxResult.success(rtsp); |
| | | return AjaxResult.success(map); |
| | | } |
| | | |
| | | |
| | |
| | | @PreAuthorize("@ss.hasPermi('media:stream:edit')") |
| | | @PutMapping |
| | | public AjaxResult edit(@RequestBody StreamInfo streamInfo) { |
| | | mediaService.removePath(new String[]{streamInfo.getName()}); |
| | | vtduService.deleteVtduByName(streamInfo.getName()); |
| | | String rtsp = mediaService.addPath(streamInfo.getName(), streamInfo.getRtspSource(), streamInfo.getMode(), streamInfo.getIsCode()); |
| | | Map<String, String> map = mediaService.editPath(streamInfo.getName(), streamInfo.getRtspSource(), streamInfo.getMode(), streamInfo.getIsCode()); |
| | | Vtdu vtdu = new Vtdu(); |
| | | vtdu.setName(streamInfo.getName()); |
| | | vtdu.setRtspUrl(streamInfo.getRtspSource()); |
| | | vtdu.setRtspSource(streamInfo.getRtspSource()); |
| | | vtdu.setIsCode(streamInfo.getIsCode()); |
| | | vtdu.setCodeType(streamInfo.getMode()); |
| | | vtduService.insertVtdu(vtdu); |
| | | return AjaxResult.success(rtsp); |
| | | vtdu.setMode(streamInfo.getMode()); |
| | | vtdu.setRtspUrl(map.get("rtspUrl")); |
| | | vtdu.setRtmpUrl(map.get("rtmpUrl")); |
| | | vtdu.setWebrtcUrl(map.get("webrtcUrl")); |
| | | vtduService.updateVtdu(vtdu); |
| | | return AjaxResult.success(map); |
| | | } |
| | | |
| | | /** |
| | |
| | | @ApiOperation("移除拉流") |
| | | @ApiOperationSupport(order =4 ) |
| | | @PreAuthorize("@ss.hasPermi('media:stream:remove')") |
| | | @DeleteMapping("/{id}") |
| | | @DeleteMapping("/{sessionId}") |
| | | public AjaxResult removePullStreamSession(@PathVariable String sessionId) { |
| | | List<StreamInfo> pullStreamList = mediaService.getPullStreamList(); |
| | | StreamInfo streamInfo = pullStreamList.stream() |
| | |
| | | return getDataTable(mediaService.getPushStreamList()); |
| | | } |
| | | |
| | | |
| | | |
| | | /** |
| | | * 获取拉流列表 |
| | | */ |
| | |
| | | startPage(); |
| | | return getDataTable(mediaService.getPullStreamList()); |
| | | } |
| | | |
| | | /** |
| | | * 配置流媒体参数 |
| | | */ |
| | | @PostMapping("/setConfig") |
| | | @ApiOperation("配置流媒体参数") |
| | | @ApiOperationSupport(order = 8) |
| | | public AjaxResult setConfig(@RequestBody Config config) { |
| | | return AjaxResult.success(mediaService.setConfig(config)); |
| | | } |
| | | } |