From e0d641064aac2988d270cc71197da430922aa309 Mon Sep 17 00:00:00 2001
From: xiaoxie <hotcoffie@163.com>
Date: 星期四, 28 四月 2022 14:23:17 +0800
Subject: [PATCH] 多屏界面,切换分屏数时播放器正确调整尺寸
---
web_src/src/components/common/jessibuca.vue | 3 ++-
web_src/src/components/live.vue | 19 ++++++++++++++-----
2 files changed, 16 insertions(+), 6 deletions(-)
diff --git a/web_src/src/components/common/jessibuca.vue b/web_src/src/components/common/jessibuca.vue
index 23e68d7..ebf5bef 100644
--- a/web_src/src/components/common/jessibuca.vue
+++ b/web_src/src/components/common/jessibuca.vue
@@ -1,5 +1,5 @@
<template>
- <div ref="container" @dblclick="fullscreenSwich" style="background-color: #eee;margin:0 auto;">
+ <div ref="container" @dblclick="fullscreenSwich" style="width:100%;height:100%;background-color: #eee;margin:0 auto;">
<div class="buttons-box" id="buttonsBox">
<div class="buttons-box-left">
<i v-if="!playing" class="iconfont icon-play jessibuca-btn" @click="playBtnClick"></i>
@@ -74,6 +74,7 @@
let dom = this.$refs.container;
let width = dom.parentNode.clientWidth
let height = (9 / 16) * width
+
const clientHeight = Math.min(document.body.clientHeight, document.documentElement.clientHeight)
if (height > clientHeight) {
height = clientHeight
diff --git a/web_src/src/components/live.vue b/web_src/src/components/live.vue
index 87d7ea8..797be84 100644
--- a/web_src/src/components/live.vue
+++ b/web_src/src/components/live.vue
@@ -17,7 +17,8 @@
:style="liveStyle" :class="{redborder:playerIdx == (i-1)}"
@click="playerIdx = (i-1)">
<div v-if="!videoUrl[i-1]" style="color: #ffffff;font-size: 30px;font-weight: bold;">{{ i }}</div>
- <player v-else :videoUrl="videoUrl[i-1]" fluent autoplay @screenshot="shot" @destroy="destroy"/>
+ <player ref="player" v-else :videoUrl="videoUrl[i-1]" fluent autoplay @screenshot="shot"
+ @destroy="destroy"/>
</div>
</div>
</el-main>
@@ -59,14 +60,22 @@
computed: {
liveStyle() {
+ let style = {width: '100%', height: '100%'}
switch (this.spilt) {
case 4:
- return {width: '49%', height: '49%'}
+ style = {width: '49%', height: '49%'}
+ break
case 9:
- return {width: '32%', height: '32%'}
- default:
- return {width: '100%', height: '100%'}
+ style = {width: '32%', height: '32%'}
+ break
}
+ this.$nextTick(() => {
+ for (let i = 0; i < this.spilt; i++) {
+ const player = this.$refs.player
+ player && player[i] && player[i].updatePlayerDomSize()
+ }
+ })
+ return style
}
},
watch: {
--
Gitblit v1.8.0