【问题标题】:HTML5 Video Player - video.js - Different behaviour at the end of video play on Chromium and Mozilla FirefoxHTML5 视频播放器 - video.js - 在 Chromium 和 Mozilla Firefox 上视频播放结束时的不同行为
【发布时间】:2014-07-08 07:26:35
【问题描述】:

我正在使用 video.js,

我正在两个不同的浏览器中渲染视频。

Chromium:版本 31.0.1650.63 Ubuntu 13.04 和

Mozilla 火狐:26.0

我已经给出了自动播放视频的选项

HTML 标记和 Jq 代码如下。

<script type="text/javascript">
  $("video").on("ended", function(){ 
      var vid = videojs($(this).attr("name"));
      vid.controlBar.hide();
      vid.bigPlayButton.show();
    });     
  $("video").on("pause", function()
    { 
       var vid = videojs($(this).attr("name"));
       vid.bigPlayButton.show(); 
    });  
  $("video").on("play", function(){  
       var vid = videojs($(this).attr("name"));
       vid.controlBar.show();
       vid.bigPlayButton.hide();
    });
 </script>

视频播放结束时 - Firefox 浏览器显示一些微调器,而 chromium 显示矩形框以单击以重新播放视频。

请说明为什么行为之间存在差异? 我们如何克服这个问题?

【问题讨论】:

  • 我认为它的浏览器是默认的。
  • 它出现在图片中是因为 FF 中的一些错误 - 刚才我在某个地方学习过,但如果可能的话想克服这个问题,否则我将不得不删除该微调器创建代码:(
  • 您是否尝试过使用 videojs 事件处理程序?
  • 不..我没有做过类似的事情..

标签: javascript html html5-video video.js


【解决方案1】:

您可以通过执行以下操作来尝试使用 videojs 事件:

var activePlayers = videojs.players;
$.each( activePlayers, function(key,value) { 
    value.on('ended', function() {
        this.controlBar.hide();
        this.bigPlayButton.show();
        this.loadingSpinner.hide();
    });
});

这相当快,主要是使用 $.eachfor( x in obj) 以及如果 jquery 将 value 包装在 jquery 对象中,可能会进行一些调整。

顺便说一句:我知道在循环中使用匿名函数是不受欢迎的,但这是给你的想法。

【讨论】:

  • 我添加了一行来隐藏加载微调器。这有点骇人听闻,但应该可以。
  • 仍然无法正常工作。我已经在我提到的所有 3 个函数中添加了this.loadingSpinner.hide();,我想我必须找到添加该 div 的 JS 代码并评论该 JS 代码本身
猜你喜欢
  • 1970-01-01
  • 2012-07-17
  • 2018-10-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-04
相关资源
最近更新 更多