|  |  |  | 
|---|
|  |  |  | package com.ruoyi.utils.forest; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import com.dtflys.forest.annotation.Get; | 
|---|
|  |  |  | import com.dtflys.forest.annotation.JSONBody; | 
|---|
|  |  |  | import com.dtflys.forest.annotation.Post; | 
|---|
|  |  |  | import com.dtflys.forest.annotation.Var; | 
|---|
|  |  |  | import com.dtflys.forest.annotation.*; | 
|---|
|  |  |  | import com.ruoyi.media.domain.Conf; | 
|---|
|  |  |  | import com.ruoyi.media.domain.Config; | 
|---|
|  |  |  | import com.ruoyi.media.domain.Items; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * @Description: mediamtx流媒体客户端 | 
|---|
|  |  |  | 
|---|
|  |  |  | * @Date: 2023年07月06日9:51 | 
|---|
|  |  |  | * @Version: 1.0 | 
|---|
|  |  |  | **/ | 
|---|
|  |  |  | @BaseRequest(baseURL = "http://#{mediamtx.host}:9997/v3") | 
|---|
|  |  |  | public interface MediaClient { | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 增加路径 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Post("{apiUrl}/config/paths/add/{name}") | 
|---|
|  |  |  | String addPath(@Var("apiUrl") String apiUrl, @Var("name") String name, @JSONBody Conf body); | 
|---|
|  |  |  | @Post("/config/paths/add/{name}") | 
|---|
|  |  |  | public String addPath(@Var("name") String name, @JSONBody Conf body); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 修改路径 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Patch("/config/paths/patch/{name}") | 
|---|
|  |  |  | public String editPath(@Var("name") String name, @JSONBody Conf body); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 移除路径 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Post("{apiUrl}/config/paths/remove/{name}") | 
|---|
|  |  |  | String removePath(@Var("apiUrl") String apiUrl, @Var("name") String name); | 
|---|
|  |  |  | @Delete("/config/paths/delete/{name}") | 
|---|
|  |  |  | public String removePath(@Var("name") String name); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 获取路径详情 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Get(url ="/config/paths/get/{name}") | 
|---|
|  |  |  | public Conf getPathInfo(@Var("name") String name); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 查询所有路径 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Get("{apiUrl}/paths/list") | 
|---|
|  |  |  | String paths(@Var("apiUrl") String apiUrl); | 
|---|
|  |  |  | @Get("/paths/list") | 
|---|
|  |  |  | public String paths(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 查询所有rtsp会话 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Get("{apiUrl}/rtspsessions/list") | 
|---|
|  |  |  | String rtspsessions(@Var("apiUrl") String apiUrl); | 
|---|
|  |  |  | @Get("/rtspsessions/list") | 
|---|
|  |  |  | public String rtspsessions(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 查询所有rtsp连接 | 
|---|
|  |  |  | * 按sessionId查询rtsp会话 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Get("{apiUrl}/rtspconns/list") | 
|---|
|  |  |  | String rtspconns(@Var("apiUrl") String apiUrl); | 
|---|
|  |  |  | @Get("/rtspsessions/get/{sessionId}") | 
|---|
|  |  |  | public String getRtspsessionById(@Var("sessionId") String sessionId); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 按id查询rtsp会话 | 
|---|
|  |  |  | * 按sessionId查询webrtc会话 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Get("{apiUrl}/rtspsessions/get/{sessionId}") | 
|---|
|  |  |  | String getRtspsessionById(@Var("apiUrl") String apiUrl, @Var("sessionId") String sessionId); | 
|---|
|  |  |  | @Get("/webrtcsessions/get/{sessionId}") | 
|---|
|  |  |  | public String getWebrtcsessionById(@Var("sessionId") String sessionId); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 按sessionId查询rtmp会话 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Get("/rtmpconns/get/{sessionId}") | 
|---|
|  |  |  | public String getRtmpsessionById(@Var("sessionId") String sessionId); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 按sessionId删除rtsp会话 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Post("/rtspsessions/kick/{sessionId}") | 
|---|
|  |  |  | public String kickRtspSessions(@Var("sessionId") String sessionId); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 按sessionId删除rtmp连接 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Post("/rtmpconns/kick/{sessionId}") | 
|---|
|  |  |  | public String kickRtmpSessions(@Var("sessionId") String sessionId); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 按sessionId删除webrtc会话 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Post("/webrtcsessions/kick/{sessionId}") | 
|---|
|  |  |  | public String kickWebrtcSessions(@Var("sessionId") String sessionId); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 配置流媒体参数 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Post("/config/set") | 
|---|
|  |  |  | public String setConfig(@JSONBody Config config); | 
|---|
|  |  |  | } | 
|---|