Commit a68aa190e63ee3cf5cfa4312d1d4d1315c52ab5e
1 parent
b0bc2358
perf: video component implement code
Showing
1 changed file
with
19 additions
and
38 deletions
| @@ -14604,9 +14604,10 @@ class HandleDynamicEffect { | @@ -14604,9 +14604,10 @@ class HandleDynamicEffect { | ||
| 14604 | * @description 播放视频 | 14604 | * @description 播放视频 |
| 14605 | */ | 14605 | */ |
| 14606 | videoPlay() { | 14606 | videoPlay() { |
| 14607 | - const basicAttr = Sidebar.prototype.enumCellBasicAttribute | ||
| 14608 | const enumAccessMode = HandleDynamicEffect.enumVideoAccessMode | 14607 | const enumAccessMode = HandleDynamicEffect.enumVideoAccessMode |
| 14609 | const reg = /(?:.*)(?<=\.)/ | 14608 | const reg = /(?:.*)(?<=\.)/ |
| 14609 | + const graph = this.graph | ||
| 14610 | + const createVideoTemplate = this.createVideoTemplate | ||
| 14610 | const videoPlayConfig = { | 14611 | const videoPlayConfig = { |
| 14611 | controls: true, | 14612 | controls: true, |
| 14612 | autoPlay: true, | 14613 | autoPlay: true, |
| @@ -14620,58 +14621,38 @@ class HandleDynamicEffect { | @@ -14620,58 +14621,38 @@ class HandleDynamicEffect { | ||
| 14620 | const { accessMode, videoUrl, id } = additional | 14621 | const { accessMode, videoUrl, id } = additional |
| 14621 | const cell = this.getCellByCellId(nodeId) | 14622 | const cell = this.getCellByCellId(nodeId) |
| 14622 | if (!cell) continue | 14623 | if (!cell) continue |
| 14623 | - const { geometry = {} } = cell | ||
| 14624 | - const { width, height } = geometry | ||
| 14625 | - const idEl = getIdEl() | ||
| 14626 | if (Number(accessMode) === enumAccessMode.MANUAL_ENTER) { | 14624 | if (Number(accessMode) === enumAccessMode.MANUAL_ENTER) { |
| 14627 | - this.graph.getModel().beginUpdate() | ||
| 14628 | - try { | ||
| 14629 | - let type | ||
| 14630 | - if (videoUrl.replace(reg, '') === 'm3u8') type = 'application/x-mpegURL' | ||
| 14631 | - const template = this.createVideoTemplate(idEl, width, height, videoUrl, type) | ||
| 14632 | - cell.setAttribute('label', template) | ||
| 14633 | - this.graph.refresh(cell); | ||
| 14634 | - } finally { | ||
| 14635 | - this.graph.getModel().endUpdate() | ||
| 14636 | - videojs(idEl, | ||
| 14637 | - { | ||
| 14638 | - ...videoPlayConfig | ||
| 14639 | - }, | ||
| 14640 | - function () { | ||
| 14641 | - this.play() | ||
| 14642 | - }) | ||
| 14643 | - } | 14625 | + handleVideoPlay(videoPlayConfig, cell, videoUrl) |
| 14644 | } else { | 14626 | } else { |
| 14645 | - getStreamingVideoPlayUrl.call(this, id, nodeId) | 14627 | + getStreamingVideoPlayUrl(id, nodeId) |
| 14646 | } | 14628 | } |
| 14647 | } | 14629 | } |
| 14648 | 14630 | ||
| 14649 | - async function getStreamingVideoPlayUrl(id, nodeId) { | 14631 | + async function getStreamingVideoPlayUrl(id, cell) { |
| 14650 | const [err, res = {}] = await to(ConfigurationNodeApi.getStreamingVideoPlayUrl(id)) | 14632 | const [err, res = {}] = await to(ConfigurationNodeApi.getStreamingVideoPlayUrl(id)) |
| 14651 | const { url } = res?.data || {} | 14633 | const { url } = res?.data || {} |
| 14652 | if (!url) return | 14634 | if (!url) return |
| 14653 | - const cell = this.getCellByCellId(nodeId) | 14635 | + handleVideoPlay({ ...videoPlayConfig, hls: { withCredentials: true } }, cell, url) |
| 14636 | + } | ||
| 14637 | + | ||
| 14638 | + function handleVideoPlay(videoPlayConfig, cell, videoUrl) { | ||
| 14654 | if (!cell) return | 14639 | if (!cell) return |
| 14655 | const { geometry = {} } = cell | 14640 | const { geometry = {} } = cell |
| 14656 | const { width, height } = geometry | 14641 | const { width, height } = geometry |
| 14657 | const idEl = getIdEl() | 14642 | const idEl = getIdEl() |
| 14658 | - this.graph.getModel().beginUpdate() | 14643 | + console.log({ idEl }) |
| 14644 | + graph.getModel().beginUpdate() | ||
| 14659 | try { | 14645 | try { |
| 14660 | - const template = this.createVideoTemplate(idEl, width, height, url, 'application/x-mpegURL') | 14646 | + let type |
| 14647 | + if (videoUrl.replace(reg, '') === 'm3u8') type = 'application/x-mpegURL' | ||
| 14648 | + const template = createVideoTemplate(idEl, width, height, videoUrl, type) | ||
| 14661 | cell.setAttribute('label', template) | 14649 | cell.setAttribute('label', template) |
| 14662 | - this.graph.refresh(cell); | 14650 | + graph.refresh(cell); |
| 14663 | } finally { | 14651 | } finally { |
| 14664 | - this.graph.getModel().endUpdate() | ||
| 14665 | - videojs(idEl, | ||
| 14666 | - { | ||
| 14667 | - ...videoPlayConfig, | ||
| 14668 | - hls: { | ||
| 14669 | - withCredentials: true | ||
| 14670 | - } | ||
| 14671 | - }, | ||
| 14672 | - function () { | ||
| 14673 | - this.play() | ||
| 14674 | - }) | 14652 | + graph.getModel().endUpdate() |
| 14653 | + videojs(idEl, videoPlayConfig, function () { | ||
| 14654 | + this.play() | ||
| 14655 | + }) | ||
| 14675 | } | 14656 | } |
| 14676 | } | 14657 | } |
| 14677 | 14658 |