首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用自动播放和滚动停止功能将视频添加到Wordpress

使用自动播放和滚动停止功能将视频添加到Wordpress
EN

Stack Overflow用户
提问于 2019-10-31 16:55:39
回答 2查看 3.4K关注 0票数 0

我需要在我的Wordpress页面中插入媒体库中上传的视频。此视频必须在浏览器视图中自动播放,并在用户滚动时停止。

我试着使用带有自动播放功能的标签,它是可以的。然后,我在我的js文件夹(在主题文件夹中)添加了一个带有Javascript代码的文件,以便添加stop on scroll功能。我怀疑我尝试过的代码只有YouTube链接才能正常工作。

这是我尝试过的代码

代码语言:javascript
运行
复制
//play when video is visible
var videos = document.getElementsByTagName("iframe"), fraction = 0.8;

function checkScroll() {

  for(var i = 0; i < videos.length; i++) {
    var video = videos[i];

    var x = 0,
        y = 0,
        w = video.width,
        h = video.height,
        r, //right
        b, //bottom 
        visibleX, visibleY, visible,
        parent;


    parent = video;
    while (parent && parent !== document.body) {
      x += parent.offsetLeft;
      y += parent.offsetTop;
      parent = parent.offsetParent;
    }

    r = x + parseInt(w);
    b = y + parseInt(h);


    visibleX = Math.max(0, Math.min(w, window.pageXOffset + window.innerWidth - x, r - window.pageXOffset));
    visibleY = Math.max(0, Math.min(h, window.pageYOffset + window.innerHeight - y, b - window.pageYOffset));


    visible = visibleX * visibleY / (w * h);


    if (visible > fraction) {
      playVideo();
    } else {
      pauseVideo();

    }
  }

};


var tag = document.createElement('script');

tag.src = "https://www.youtube.com/iframe_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);

// 3. This function creates an <iframe> (and YouTube player)
//    after the API code downloads.
var player;

function onYouTubeIframeAPIReady() {
  player = new YT.Player('player', {
    events: {
      'onReady': onPlayerReady,
      'onStateChange': onPlayerStateChange
    }
  });
};

// 4. The API will call this function when the video player is ready.
function onPlayerReady(event) {
    window.addEventListener('scroll', checkScroll, false);
    window.addEventListener('resize', checkScroll, false);

    //check at least once so you don't have to wait for scrolling for the    video to start
    window.addEventListener('load', checkScroll, false);
};


function onPlayerStateChange(event) {
    if (event.data == YT.PlayerState.PLAYING) {
      //console.log("event played");
    } else {
      //console.log("event paused");
    }
};

function stopVideo() {
    player.stopVideo();
};

function playVideo() {
  player.playVideo();
};

function pauseVideo() {
  player.pauseVideo();
};

使用Youtube链接,该脚本可以在滚动上暂停视频,但不会自动播放。我希望自动播放和暂停滚动使用我的Wordpress媒体库中的视频

EN

回答 2

Stack Overflow用户

发布于 2021-06-29 21:51:07

代码语言:javascript
运行
复制
var autoPlayVideo = document.getElementById("ocScreencapVideo");
    autoPlayVideo.oncanplaythrough = function() {
        autoPlayVideo.muted = true;
        autoPlayVideo.play();
        autoPlayVideo.pause();
        autoPlayVideo.play();
    }
代码语言:javascript
运行
复制
<video id="ocScreencapVideo" autoplay="autoplay" muted="muted" loop="loop" playsinline="playsinline" preload="metadata" data-aos="fade-up">
  <source src="https://www.youtube.com/watch?v=W6NZfCO5SIk">
    Your browser does not support MP4 Format videos or HTML5 Video.
</video>

票数 0
EN

Stack Overflow用户

发布于 2019-10-31 20:26:42

你可以使用Wordpress库提供的这个插件,而不是使用自定义脚本,这样可以节省时间和精力。

另一种解决方案是使用以下javascript来自动播放视频:

代码语言:javascript
运行
复制
https://codepen.io/bloodcrow777/pen/QBVKKy

代码语言:javascript
运行
复制
var autoPlayVideo = document.getElementById("ocScreencapVideo");
    autoPlayVideo.oncanplaythrough = function() {
        autoPlayVideo.muted = true;
        autoPlayVideo.play();
        autoPlayVideo.pause();
        autoPlayVideo.play();
    }
代码语言:javascript
运行
复制
<video id="ocScreencapVideo" autoplay="autoplay" muted="muted" loop="loop" playsinline="playsinline" preload="metadata" data-aos="fade-up">
  <source src="http://clips.vorwaerts-gmbh.de/VfE_html5.mp4"
          type="video/mp4">
    Your browser does not support MP4 Format videos or HTML5 Video.
</video>

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58639732

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档