Javascript 自动播放视频元素在 iOS Safari 上不起作用

Sha*_*ham 4 html javascript mobile-safari webrtc

我正在尝试从手机摄像头获取视频流并在视频元素上显示该流。这是我的代码的要点:

    ...
    navigator.mediaDevices.getUserMedia(constraints)
    .then((stream)=>{
        video.srcObject=stream;
        video.volume=0;
        video.mute=0;
        video.play(); //error here on  iOS Safari
        ...
Run Code Online (Sandbox Code Playgroud)

虽然这适用于所有桌面和 Android 浏览器,但这似乎不适用于 iOS,给了我在线错误video.play()

据我目前了解,这似乎是移动设备上 Safari 的一项安全措施,旨在防止网站消耗过多用户数据。这意味着,除非用户明确启动,否则浏览器将不允许video.play()

我尝试muted在视频元素本身上添加“”属性(除了autoplay),但这似乎没有解决问题。

因此,我想知道是否有任何其他补救措施可以解决此问题,或者我是否应该寻找其他方法来显示视频源。非常感谢任何帮助/建议。

thi*_*ery 9

您是否尝试过添加playsinline视频元素?

https://webkit.org/blog/6784/new-video-policies-for-ios/

  • 你节省了我很多时间。 (4认同)