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; | ... | ... |