Video.js:最后显示大播放按钮

时间:2013-07-08 11:44:16

标签: video.js

我想在视频结尾处显示大播放按钮,以便用户轻松重播。

似乎默认显示了这个大的播放按钮(我读过的每个帖子都是隐藏它而不是显示它...),但对我来说情况并非如此......

我尝试编辑以下功能(在video.dev.js文件中)但没有任何改变:

vjs.Player.prototype.onEnded = function(){
  if (this.options_['loop']) {
      this.currentTime(0);
      this.play();
  }
  else {  // I am not using loop mode
      this.bigPlayButton.show();
      this.pause();
  }
};

感谢您的回复。

4 个答案:

答案 0 :(得分:9)

有几种方法可以做到这一点。当视频以API

结尾时,您可以显示该按钮
videojs("myPlayer").ready(function(){
  var myPlayer = this;
  myPlayer.on("ended", function(){
    myPlayer.bigPlayButton.show();
  });
});

或者,如果您确实想要修改video.dev.js,您只需要取消注释执行相同操作的行:

vjs.BigPlayButton = vjs.Button.extend({
  /** @constructor */
  init: function(player, options){
    vjs.Button.call(this, player, options);

    if (!player.controls()) {
      this.hide();
    }

    player.on('play', vjs.bind(this, this.hide));
    // player.on('ended', vjs.bind(this, this.show)); // uncomment this
  }
});

或者使用CSS,您可以在视频未播放(结束或暂停)时强制显示按钮:

.video-js.vjs-default-skin.vjs-paused .vjs-big-play-button {display:block !important;}

你看过关于隐藏它的帖子可能是指video.js的第3版,因为最后会显示播放按钮。

答案 1 :(得分:4)

将此代码放在videojs代码之后。效果很好。它不仅可以显示海报和大播放按钮,还可以让您一次又一次地重播视频:

<script type="text/javascript">
    var vid = videojs("YOUR-VIDEO-ID"); 
    vid.on("ended", function()
        { 
            vid.posterImage.show(); //shows your poster image//
            vid.currentTime(0);
            vid.controlBar.hide(); //hides your controls//
            vid.bigPlayButton.show(); //shows your play button//
            vid.cancelFullScreen(); //cancels your fullscreen//
            document.mozCancelFullScreen(); //cancels your fullscreen in firefox//
        });  
    vid.on("play", function()  //function to play the video again//
        {  
            vid.posterImage.hide(); //hides your poster//
            vid.controlBar.show(); //shows your controls//
            vid.bigPlayButton.hide(); //hides your play button//
        });
</script>

我唯一可以开始工作的是使用firefox退出全屏...但我不知道还能做什么。

答案 2 :(得分:1)

我创建了这个插件来“重置”播放器并显示大播放按钮和视频的海报

https://github.com/brianpkelley/video-js-4-plugins/blob/master/showPosterAtEnd/videojs.showPosterAtEnd.js

答案 3 :(得分:0)

我不知道为什么,但我无法得到这里提到的答案,也许是因为我在播放器的新版本上,所以像vid.posterImage.show()这样的事情对我来说没有做任何事情

在版本5.19.2(当前版本)上,通过在事件监听器“结束”时将hasStarted设置为false,我能够将播放器重置为默认状态(在第一次按下播放按钮之前)。 / p>

示例:

var player = videojs('player');

player.on("ended",function(){

    player.hasStarted(false);
});

带回大按钮,海报,并隐藏控件。