我使用Ant Media Server来实现超低延迟的WebRTC流媒体。但是,当我在iPhone Safari浏览器上播放视频时,视频流会冻结。我该如何解决这个问题呢?
发布于 2020-08-01 18:12:40
是的,这是关于WebRTC中的safari自动播放场景。在documentation中,它说
但是,对于单向视频会议场景,例如网络研讨会,用户不会向摄像机提供明确的权限。如果没有用户手势来指示回放,视频将无法开始。将播放按钮添加到您的媒体控件以获得单向WebRTC体验,以便用户可以开始播放视频。
文档中的Another place也提到
默认情况下,仅当视频不包含音轨,或者视频元素包含静音属性时,才会执行自动播放。
因此,解决方案是,要么显式播放内容,要么将播放器静音,让safari自动播放为您工作。在某些情况下,如果它被静音,它甚至不会自动播放,因此您需要再次进行一些故障转移。
根据我们的经验,如果它冻结在第一帧与未静音的内容,只需点击屏幕上的播放按钮,如下所示每次工作。

发布于 2021-02-12 17:11:17
使用
setTimeOut(()=>{
video.play();
});Safari浏览器希望用户介入以启动/停止视频流。上面的代码片段模仿了这种行为,并在video元素中启动视频流。
如果要在画布上绘制视频元素,则必须将视频元素的opacity=0.001和宽度和高度至少设置为1px。
发布于 2021-02-14 01:01:17
浏览器只有在静音时才会自动播放视频元素。解决方案是添加一个音频点击,并启动它静音或点击播放按钮,如果重要的是开始与声音。就像这个HTML5 Videocall App一样。
https://stackoverflow.com/questions/63159627
复制相似问题