diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml
index b0011af..4129177 100644
--- a/ruoyi-admin/src/main/resources/application.yml
+++ b/ruoyi-admin/src/main/resources/application.yml
@@ -159,24 +159,24 @@ sip:
alarm: false
##zlm 默认服务器配置
-#media:
-# id: haoxin-zlm-1
-# # [必须修改] zlm服务器的内网IP
-# ip: 192.168.158.199
-# # [必须修改] zlm服务器的http.port
-# http-port: 8092
-# # [可选] zlm服务器的hook所使用的IP, 默认使用sip.ip
-# hook-ip: 192.168.158.199
-# # [必选选] zlm服务器的hook.admin_params=secret
-# secret: haoxin
-# # 启用多端口模式, 多端口模式使用端口区分每路流,兼容性更好。 单端口使用流的ssrc区分, 点播超时建议使用多端口测试
-# rtp:
-# # [可选] 是否启用多端口模式, 开启后会在portRange范围内选择端口用于媒体流传输
-# enable: true
-# # [可选] 在此范围内选择端口用于媒体流传输, 必须提前在zlm上配置该属性,不然自动配置此属性可能不成功
-# port-range: 30000,30500 # 端口范围
-# # [可选] 国标级联在此范围内选择端口发送媒体流,
-# send-port-range: 30000,30500 # 端口范围
+media:
+ id: haoxin-zlm-1
+ # [必须修改] zlm服务器的内网IP
+ ip: 192.168.158.199
+ # [必须修改] zlm服务器的http.port
+ http-port: 8092
+ # [可选] zlm服务器的hook所使用的IP, 默认使用sip.ip
+ hook-ip: 192.168.158.199
+ # [必选选] zlm服务器的hook.admin_params=secret
+ secret: haoxin
+ # 启用多端口模式, 多端口模式使用端口区分每路流,兼容性更好。 单端口使用流的ssrc区分, 点播超时建议使用多端口测试
+ rtp:
+ # [可选] 是否启用多端口模式, 开启后会在portRange范围内选择端口用于媒体流传输
+ enable: true
+ # [可选] 在此范围内选择端口用于媒体流传输, 必须提前在zlm上配置该属性,不然自动配置此属性可能不成功
+ port-range: 40000,40300 # 端口范围
+ # [可选] 国标级联在此范围内选择端口发送媒体流,
+ send-port-range: 40000,40300 # 端口范围
##zlm 默认服务器配置
#media:
@@ -199,24 +199,24 @@ sip:
# send-port-range: 30000,30500 # 端口范围
#zlm 默认服务器配置
-media:
- id: hxkj_zlm
- # [必须修改] zlm服务器的内网IP
- ip: 192.168.158.39
- # [必须修改] zlm服务器的http.port
- http-port: 8092
- # [可选] zlm服务器的hook所使用的IP, 默认使用sip.ip
- hook-ip: 192.168.158.39
- # [必选选] zlm服务器的hook.admin_params=secret
- secret: hxkj_zlm
- # 启用多端口模式, 多端口模式使用端口区分每路流,兼容性更好。 单端口使用流的ssrc区分, 点播超时建议使用多端口测试
- rtp:
- # [可选] 是否启用多端口模式, 开启后会在portRange范围内选择端口用于媒体流传输
- enable: true
- # [可选] 在此范围内选择端口用于媒体流传输, 必须提前在zlm上配置该属性,不然自动配置此属性可能不成功
- port-range: 30000,30500 # 端口范围
- # [可选] 国标级联在此范围内选择端口发送媒体流,
- send-port-range: 30000,30500 # 端口范围
+#media:
+# id: hxkj_zlm
+# # [必须修改] zlm服务器的内网IP
+# ip: 192.168.158.39
+# # [必须修改] zlm服务器的http.port
+# http-port: 8092
+# # [可选] zlm服务器的hook所使用的IP, 默认使用sip.ip
+# hook-ip: 192.168.158.39
+# # [必选选] zlm服务器的hook.admin_params=secret
+# secret: hxkj_zlm
+# # 启用多端口模式, 多端口模式使用端口区分每路流,兼容性更好。 单端口使用流的ssrc区分, 点播超时建议使用多端口测试
+# rtp:
+# # [可选] 是否启用多端口模式, 开启后会在portRange范围内选择端口用于媒体流传输
+# enable: true
+# # [可选] 在此范围内选择端口用于媒体流传输, 必须提前在zlm上配置该属性,不然自动配置此属性可能不成功
+# port-range: 30000,30500 # 端口范围
+# # [可选] 国标级联在此范围内选择端口发送媒体流,
+# send-port-range: 30000,30500 # 端口范围
# [根据业务需求配置]
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java
index 511842b..23bca6b 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java
+++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java
@@ -23,7 +23,7 @@ import com.ruoyi.framework.security.handle.LogoutSuccessHandlerImpl;
/**
* spring security配置
- *
+ *
* @author ruoyi
*/
@EnableMethodSecurity(prePostEnabled = true, securedEnabled = true)
@@ -35,7 +35,7 @@ public class SecurityConfig
*/
@Autowired
private UserDetailsService userDetailsService;
-
+
/**
* 认证失败处理类
*/
@@ -53,7 +53,7 @@ public class SecurityConfig
*/
@Autowired
private JwtAuthenticationTokenFilter authenticationTokenFilter;
-
+
/**
* 跨域过滤器
*/
@@ -111,7 +111,7 @@ public class SecurityConfig
.authorizeHttpRequests((requests) -> {
permitAllUrl.getUrls().forEach(url -> requests.antMatchers(url).permitAll());
// 对于登录login 注册register 验证码captchaImage 允许匿名访问
- requests.antMatchers("/login", "/register", "/captchaImage").permitAll()
+ requests.antMatchers("/login", "/register", "/captchaImage", "/api/**").permitAll()
// 静态资源,可匿名访问
.antMatchers(HttpMethod.GET, "/", "/*.html", "/**/*.html", "/**/*.css", "/**/*.js", "/profile/**").permitAll()
.antMatchers("/swagger-ui.html", "/swagger-resources/**", "/webjars/**", "/*/api-docs", "/druid/**").permitAll()
diff --git a/ruoyi-ui-vue3/src/api/wvp/channel.js b/ruoyi-ui-vue3/src/api/wvp/channel.js
index 153c037..c92536b 100644
--- a/ruoyi-ui-vue3/src/api/wvp/channel.js
+++ b/ruoyi-ui-vue3/src/api/wvp/channel.js
@@ -49,3 +49,11 @@ export function updateChannelData(data) {
data: data,
})
}
+
+// 通知设备上传媒体流
+export function sendDevicePush(params) {
+ return request({
+ url: `/api/play/start/${params.deviceId}/${params.channelId}`,
+ method: 'get',
+ })
+}
diff --git a/ruoyi-ui-vue3/src/views/wvp/channel/index.vue b/ruoyi-ui-vue3/src/views/wvp/channel/index.vue
index 9055df0..4e658ce 100644
--- a/ruoyi-ui-vue3/src/views/wvp/channel/index.vue
+++ b/ruoyi-ui-vue3/src/views/wvp/channel/index.vue
@@ -92,9 +92,9 @@
-
-
-
+ 播放
+
+
+
+
+
+
+
@@ -493,7 +499,7 @@ import {
subChannels,
updateChannelStreamIdentification
} from "../../../api/wvp/device.js";
-import {getCommonChannel, resetChannel, updateChannelData} from "../../../api/wvp/channel.js";
+import {getCommonChannel, resetChannel, updateChannelData, sendDevicePush} from "../../../api/wvp/channel.js";
import {recordApi} from "../../../api/wvp/control.js";
import router from "@/router";
const route = useRoute();
@@ -506,6 +512,7 @@ const parentChannelId = ref('');
const device = ref({});
const showTree = ref(false);
const open = ref(false);
+const openPlay = ref(false);
const deviceChannelList = ref([])
const showSearch = ref(true);
const loadSnap = ref({});
@@ -513,6 +520,7 @@ const channelListTable = ref(null);
const channelCode = ref(null);
const chooseCivilCodeRef = ref(null);
const chooseGroupRef = ref(null);
+const vUrl = ref('');
const data = reactive({
form: {},
@@ -528,6 +536,16 @@ const data = reactive({
const {queryParams, form, rules} = toRefs(data);
+async function start(itemData){
+ const params = {
+ deviceId: deviceId.value,
+ channelId: itemData.deviceId
+ }
+ const res = await sendDevicePush(params);
+ console.log(res);
+
+}
+
/** 搜索按钮操作 */
function handleQuery() {
queryParams.value.pageNum = 1;
@@ -689,7 +707,6 @@ function getDeviceChannelList() {
channelType: queryParams.value.channelType,
}
).then(response => {
- console.log(response)
channelList.value = response.rows;
total.value = response.total;
loading.value = false;
@@ -866,4 +883,9 @@ onMounted(() => {
display: flex;
align-items: center;
}
+
+.player {
+ width: 1000px;
+ height: 600px;
+}
diff --git a/ruoyi-ui-vue3/src/views/wvp/device/index.vue b/ruoyi-ui-vue3/src/views/wvp/device/index.vue
index b462948..232f568 100644
--- a/ruoyi-ui-vue3/src/views/wvp/device/index.vue
+++ b/ruoyi-ui-vue3/src/views/wvp/device/index.vue
@@ -110,16 +110,16 @@
-
-
-
-
+
+
+
+
通道
修改
+ >修改
{moreClick(command, scope.row)}">