首页 > 解决方案 > Vimeo javascript api player.play() 不播放

问题描述

这种奇怪的行为似乎是在上周左右开始的。

下面的 html/javascript 组合应该加载一个 Vimeo 视频,然后当用户按下播放时,它应该加载并播放一个不同的视频。如果您想在主视频之前播放前贴片,这很有用。

如果你在桌面浏览器(我试过 Safari、Chrome 和 Firefox)上测试它,它会加载第二个视频,然后暂停它。更奇怪的是,它有时第一次起作用,然后如果您重新加载页面并重试,就会出现问题。

将不胜感激有关如何解决此问题的任何想法。

<iframe allowfullscreen="" scrolling="no" src="https://player.vimeo.com/video/258684937" width="500" height="281" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen allow="autoplay; encrypted-media"></iframe>

<script src="https://player.vimeo.com/api/player.js"></script>

<script>
var iframe = document.querySelector('iframe');
var player = new Vimeo.Player(iframe);

player.on('play', function(){
    player.off('play')
    player.loadVideo(76979871).then(function(){
        player.setAutopause(false).then(function(autopause) {
            player.play();
       });
    });
});
</script>

标签: javascriptapivideovimeoautoplay

解决方案


一个简单的解决方法是延迟 player.play() 调用......

var iframe = document.querySelector('iframe');
var player = new Vimeo.Player(iframe);

player.on('play', function(){
    player.off('play')
    player.loadVideo(76979871).then(function(){
        player.setAutopause(false).then(function(autopause) {
          // wait 1 second then play  
          setTimeout(play2,1000);
       });
    });
});
function play2(){
  player.play();
}

推荐阅读