【问题标题】:Video Conferencing like video grid using css grid视频会议,如使用 css 网格的视频网格
【发布时间】:2020-08-17 02:51:18
【问题描述】:

我正在尝试创建一个像网格一样的视频会议。我正在尝试使用 css-grid 但不知何故我无法完成我正在寻找的东西。这个想法很简单,在屏幕上有一个视频网格,并将视频分页到下一页,这不适合第一页。

我尝试使用以下方法:

<div className="videoContainer">
    <div className="videoWrapper">Cam 1</div>
    <div className="videoWrapper">Cam 2</div>
    <div className="videoWrapper">Cam 3</div>  
</div>

CSS

.videoContainer {
    display: grid;
    width: 100%;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    border: 2px solid blue;
}
.videoWrapper {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 250px;
    border: 1px solid green;
}

我正在寻找的是一些指向我想要去的方向的指针/提示/任何文章(没有找到任何有用的东西)。

我有一个简单的布局解释如下(左栏为大屏设备,右栏为移动设备):

【问题讨论】:

  • 您找到解决方案了吗?
  • 不。如果你找到任何东西,请告诉我。

标签: html css reactjs css-grid


【解决方案1】:

我不建议使用百分比的宽度和高度。这里重要的是尊重纵横比。

例子:

https://alicunde.github.io/Videoconference-Dish-CSS-JS/

代码:

https://github.com/Alicunde/Videoconference-Dish-CSS-JS

我今天解决了这个问题。首先我开始使用 CSS3 Grid,但结果没有考虑相机的纵横比。

然后我尝试了 Flex,但无法覆盖已定义的表面。所以我创建了这个非常基本的脚本。

您需要的其余屏幕很容易开发。

手机版:

速度很快(调整大小事件,加载事件):

对不起,我的英语不好。

【讨论】:

  • 嗯,这看起来不错。当然是朝着正确的方向前进,但是如果参与者超过 250 人怎么办?参与者屏幕变得太小了。是否可以通过添加某种分页并限制相机屏幕不低于一定宽度来解决?
  • 另外,在移动设备上,如果有 4 名参与者,目前他们会被堆叠起来,但如果它像上面显示的线框那样发生,那就太好了。
  • 是的,但这不需要任何复杂的编程,它只是将每个相机放置在绝对位置。肯定会在 1 周内添加该功能。这里唯一困难的是保持纵横比。为此,为每个摄像头添加一个点击事件并修改该摄像头的 css。如果您想拥有像您这样的精确方案,您应该根据摄像机的数量创建不同的屏幕。没有任何 CSS 功能对此很聪明。我发布的脚本是同时有30个参与者。
  • 我建议您查看 Agora Web SDK,他们有一个看起来更像您正在寻找的示例。他们利用网格。 webdemo.agora.io/agora-web-showcase(很多例子)
  • 现在有动画(重新加载缓存):alicunde.github.io/Videoconference-Dish-CSS-JS
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-08-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-14
  • 2021-04-30
  • 1970-01-01
相关资源
最近更新 更多