12

我有这段代码可以在 html5 页面中播放视频:

  <video autoplay loop id="bgvid">
    <source src="video-background.mp4" poster="/poster.png" type="video/mp4">
  </video>

问题是它不适用于移动 chrome(Android 手机)和移动 safari(iPhone)。但它适用于桌面的“每一个”浏览器(用 Safari、Chrome、Firefox 测试),也适用于移动 Firefox(Android 手机)。

我怎样才能克服这个问题?

编辑: 添加此代码:

  var myVideo = document.getElementById("bgvid");

  function playVid() {
      myVideo.play();
  }

  function pauseVid() {
      myVideo.pause();
  }

如果我添加一个触发函数 playVid() 的按钮,它就可以工作。所以我认为问题出在自动播放上。我试图用 load 事件触发该功能,但它不起作用。

4

1 回答 1

5

很简单,移动 safari 上不支持自动播放。请测试所有安卓浏览器。

我使用一种技巧(或显示一些弹出窗口以使用事件):

var ONLYONETIME_EXECUTE = null;
window.addEventListener('load', function(){ // on page load
 
      document.body.addEventListener('touchstart', function(e){
    
    if (ONLYONETIME_EXECUTE == null) {   

        video.play();

        //if you want to prepare more than one video/audios use this trick :             
          video2.play();
          video2.pause();
          // now video2 is buffering and you can play it programmability later 
          // My personal testing was maximum 6 video/audio for android 
          // and maybe 3 max for iOS using single click or touch.
          // Every next click also can prepare more audios/videos.

        ONLYONETIME_EXECUTE = 0;
    }

  }, false)
 
}, false)


// It is very usually that user touch screen  ...

审查 :

我不明白 ios html5 政治。他们停止支持javascript控制台记录器(我现在要求:从版本5.1 ios)。自动播放禁用,webrtc ...他们想要完美运行的设备。加载时自动播放可能很危险。在不久的将来,我希望在所有移动设备上激活完整的 html5 支持。

新更新:我发现这就像肯定的答案:

自 iOS 10 发布以来,Apple 允许静音视频自动播放:https ://webkit.org/blog/6784/new-video-policies-for-ios/

于 2017-02-16T08:02:26.453 回答