WebRTC:Safari 阻止视频画中画?
WebRTC: Safari Blocks Video Picture-in-Picture?
我正在开发一个 WebRTC UI,它在一个小元素中显示用户的视频,该元素位于用户正在与之交谈的人的视频前面。
这是一个可用的代码笔:
https://codepen.io/VikR/pen/GXoXRp
CSS
#pipContainer {
position: relative;
top: 0;
left: 0;
width: 250px;
}
#otherCallerVideo {
position: relative;
top: 0;
left: 0;
width: 100%;
}
#myVideo {
width: 30%;
position: absolute;
bottom: 0;
right: 0;
transform: rotateY(-180deg);
z-index: 1000;
}
HTML
<p id="status">Loading room information...</p>
<div id="start">
<button onclick="start(event)">Start</button><br/>
</div>
<div id="pipContainer">
<video id="otherCallerVideo" playsInline="true" autoPlay></video>
<video id="myVideo" playsInline="true" autoPlay muted></video>
</div>
这在 Chrome 和 Firefox 中工作正常,但 Safari OS X 和 IOS 似乎不允许这样做。用户的视频消失。我已经尝试了很多不同的方法,使用 z-index 和不同类型的定位,但我还没有找到一种方法让它在 Safari 中工作。
是否可以在 Safari 中执行此操作?
我成功了。这是一个更新的 CodePen。
https://codepen.io/VikR/pen/Wgwwoa
关键是将此 overflow
代码放入视频容器中:
#pipContainer {
position: relative;
width: 300px;
height: 300px;
border: 5px solid black;
overflow: scroll;
-webkit-overflow-scrolling: touch;
}
很难追踪到。谷歌搜索 "safari z-index video elements" 显示许多人对此有困难,2011 年至 2018 年的帖子出现在结果的第一页。许多在其他情况下有效的修复在这种情况下似乎不起作用,可能是因为我将一个视频元素叠加在另一个视频元素之上。已找到有效的修复 here.
注意 1:overflow: 'hidden'
也有效,并且具有隐藏滚动条的额外好处。
注意 2:我的印象是可能无法通过 javascript 更改视频尺寸。在我的应用程序中,我目前通过参考 screen.height
.
在 HTML 渲染上设置它们
我正在开发一个 WebRTC UI,它在一个小元素中显示用户的视频,该元素位于用户正在与之交谈的人的视频前面。
这是一个可用的代码笔:
https://codepen.io/VikR/pen/GXoXRp
CSS
#pipContainer {
position: relative;
top: 0;
left: 0;
width: 250px;
}
#otherCallerVideo {
position: relative;
top: 0;
left: 0;
width: 100%;
}
#myVideo {
width: 30%;
position: absolute;
bottom: 0;
right: 0;
transform: rotateY(-180deg);
z-index: 1000;
}
HTML
<p id="status">Loading room information...</p>
<div id="start">
<button onclick="start(event)">Start</button><br/>
</div>
<div id="pipContainer">
<video id="otherCallerVideo" playsInline="true" autoPlay></video>
<video id="myVideo" playsInline="true" autoPlay muted></video>
</div>
这在 Chrome 和 Firefox 中工作正常,但 Safari OS X 和 IOS 似乎不允许这样做。用户的视频消失。我已经尝试了很多不同的方法,使用 z-index 和不同类型的定位,但我还没有找到一种方法让它在 Safari 中工作。
是否可以在 Safari 中执行此操作?
我成功了。这是一个更新的 CodePen。
https://codepen.io/VikR/pen/Wgwwoa
关键是将此 overflow
代码放入视频容器中:
#pipContainer {
position: relative;
width: 300px;
height: 300px;
border: 5px solid black;
overflow: scroll;
-webkit-overflow-scrolling: touch;
}
很难追踪到。谷歌搜索 "safari z-index video elements" 显示许多人对此有困难,2011 年至 2018 年的帖子出现在结果的第一页。许多在其他情况下有效的修复在这种情况下似乎不起作用,可能是因为我将一个视频元素叠加在另一个视频元素之上。已找到有效的修复 here.
注意 1:overflow: 'hidden'
也有效,并且具有隐藏滚动条的额外好处。
注意 2:我的印象是可能无法通过 javascript 更改视频尺寸。在我的应用程序中,我目前通过参考 screen.height
.