1

I am using Ant Media Server for ultra-low latency WebRTC streaming. But video stream is freezing when I play it from the iPhone Safari browser. How can I solve this?

4

3 回答 3

2

是的,这是关于 WebRTC 中的 Safari 自动播放场景。在文档中,它说

但是,对于单向视频会议场景,例如网络研讨会,用户不会明确授予摄像头权限。如果没有用户手势来指示播放,视频将无法开始。为您的媒体控件添加一个播放按钮以获得单向 WebRTC 体验,以便用户可以开始播放视频。

文档中的另一个地方也说

默认情况下,仅当视频不包含音轨或视频元素包含 muted 属性时,才会执行自动播放。

所以解决方案是,您可以显式播放内容,也可以将播放器静音并让 safari 自动播放为您工作。在某些情况下,如果它被静音,它甚至不会自动播放,因此您需要再次进行一些故障转移方案。

根据我们的经验,如果它在未静音的内容的第一帧中冻结,只需单击屏幕上的播放按钮,如下所示每次都有效。

在此处输入图像描述

于 2020-08-01T10:12:40.407 回答
0

浏览器仅在静音时才会自动播放 VIDEO 元素。解决方案是添加一个 Tap for Audio 并将其静音启动,或者如果重要的话,添加一个 Tap to Play 按钮以从声音开始。就像在这个HTML5 Videocall App中一样。

于 2021-02-13T17:01:16.707 回答
0

利用

setTimeOut(()=>{
   video.play();
});

Safari 浏览器希望用户干预来启动/停止视频流。上面的代码片段模仿了这种行为并在视频元素中启动视频流。

如果您在画布上绘制视频元素,则必须将 opacity=0.001 以及视频元素的宽度和高度至少设置为 1px。

于 2021-02-12T09:11:16.837 回答