Commit 0bb46f35a4c7d5730278b485f6ae945c552dde6d
Merge branch 'perf/camera-manage' into 'main_dev'
perf: 优化手动输入流地址携带参数时无法获取视频协议类型 See merge request yunteng/thingskit-front!1292
Showing
3 changed files
with
13 additions
and
3 deletions
| 1 | 1 | <script setup lang="ts"> |
| 2 | - import Player, { Events, IError } from 'xgplayer'; | |
| 2 | + import Player, { Events } from 'xgplayer'; | |
| 3 | 3 | import { FlvPlugin } from 'xgplayer-flv'; |
| 4 | 4 | import Mp4Plugin from 'xgplayer-mp4'; |
| 5 | 5 | import { HlsPlugin } from 'xgplayer-hls'; |
| ... | ... | @@ -26,8 +26,16 @@ |
| 26 | 26 | (eventName: 'onUnmounted', player: PresetPlayer): void; |
| 27 | 27 | }>(); |
| 28 | 28 | |
| 29 | + function parsePlayUrl(url: string) { | |
| 30 | + try { | |
| 31 | + return new URL(url).pathname; | |
| 32 | + } catch { | |
| 33 | + return url; | |
| 34 | + } | |
| 35 | + } | |
| 36 | + | |
| 29 | 37 | function getStreamTypeByUrl(url = ''): StreamType | undefined { |
| 30 | - url = url || ''; | |
| 38 | + url = parsePlayUrl(url) || ''; | |
| 31 | 39 | if (url.endsWith('.m3u8')) return 'hls'; |
| 32 | 40 | else if (url.endsWith('.mp4')) return 'mp4'; |
| 33 | 41 | else if (url.endsWith('.flv')) { | ... | ... |
| ... | ... | @@ -18,6 +18,7 @@ |
| 18 | 18 | import { useFingerprint } from '/@/utils/useFingerprint'; |
| 19 | 19 | import { GetResult } from '@fingerprintjs/fingerprintjs'; |
| 20 | 20 | import XGPlayer from '/@/components/Video/src/XGPlayer.vue'; |
| 21 | + import { isNullOrUnDef } from '/@/utils/is'; | |
| 21 | 22 | |
| 22 | 23 | const props = defineProps({ |
| 23 | 24 | mode: { |
| ... | ... | @@ -90,7 +91,7 @@ |
| 90 | 91 | |
| 91 | 92 | const { getResult } = useFingerprint(); |
| 92 | 93 | const beforeVideoPlay = async (record: CameraRecordItem) => { |
| 93 | - if (!record.accessMode) return; | |
| 94 | + if (isNullOrUnDef(record.accessMode)) return; | |
| 94 | 95 | const { url, type } = await getPlayUrl(record); |
| 95 | 96 | record.playSourceUrl = url; |
| 96 | 97 | record.streamType = type; | ... | ... |