mirror of
https://gitee.com/xiaochemgzi/RuoYi-Wvp.git
synced 2025-12-30 04:42:25 +00:00
zzz
This commit is contained in:
@@ -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 # 端口范围
|
||||
|
||||
|
||||
# [根据业务需求配置]
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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',
|
||||
})
|
||||
}
|
||||
|
||||
@@ -92,9 +92,9 @@
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" align="center" width="150" class-name="small-padding fixed-width" fixed="right">
|
||||
<template #default="scope">
|
||||
<!-- <el-button v-bind:disabled="device == null || device.online === 0" icon="el-icon-video-play"-->
|
||||
<!-- type="text" @click="sendDevicePush(scope.row)">播放-->
|
||||
<!-- </el-button>-->
|
||||
<el-button v-bind:disabled="device == null || device.online === 0" icon="el-icon-video-play"
|
||||
type="text" @click="start(scope.row)">播放
|
||||
</el-button>
|
||||
<el-button v-bind:disabled="device == null || device.online === 0"
|
||||
icon="el-icon-switch-button"
|
||||
type="text" style="color: #f56c6c" v-if="!!scope.row.streamId"
|
||||
@@ -477,6 +477,12 @@
|
||||
<ChooseCivilCode ref="chooseCivilCodeRef" @onSubmit="gbCivilCodeOnSubmit"></ChooseCivilCode>
|
||||
|
||||
<ChooseGroup ref="chooseGroupRef" @onSubmit="gbParentOnSubmit"></ChooseGroup>
|
||||
|
||||
<el-dialog title="播放视频" v-model="openPlay" width="1000px" append-to-body>
|
||||
<div style="width: 100%; height: 600px">
|
||||
<easy-player class="player" :video-url="vUrl" autoplay :live="true"></easy-player>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -110,16 +110,16 @@
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" align="center" width="200" class-name="small-padding fixed-width" fixed="right">
|
||||
<template #default="scope">
|
||||
<!-- <el-button link type="primary" :disabled="scope.row.online===0" icon="Edit"-->
|
||||
<!-- @click="refDevice(scope.row)"-->
|
||||
<!-- @mouseover="getTooltipContent(scope.row.deviceId)">刷新-->
|
||||
<!-- </el-button>-->
|
||||
<!-- <el-button link type="primary" :disabled="scope.row.online===0" icon="Edit"-->
|
||||
<!-- @click="refDevice(scope.row)"-->
|
||||
<!-- @mouseover="getTooltipContent(scope.row.deviceId)">刷新-->
|
||||
<!-- </el-button>-->
|
||||
<el-button type="text" icon="Edit"
|
||||
@click="showChannelList(scope.row)">通道
|
||||
</el-button>
|
||||
|
||||
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)"
|
||||
>修改
|
||||
>修改
|
||||
</el-button>
|
||||
|
||||
<el-dropdown @command="(command)=>{moreClick(command, scope.row)}">
|
||||
|
||||
Reference in New Issue
Block a user