6

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

似乎默认显示了这个大播放按钮(我阅读的每个帖子都是为了隐藏它而不是显示它......),但对我来说不是这样......

我试图编辑以下函数(在 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

4 回答 4

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 版,因为播放按钮显示在末尾。

于 2013-07-08T22:34:35.403 回答
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 退出全屏...但我不知道还能做什么。

于 2014-04-09T21:28:55.487 回答
1

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

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

于 2014-05-13T21:23:39.593 回答
1

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

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

例子:

var player = videojs('player');

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

    player.hasStarted(false);
});

这会带回大按钮、海报并隐藏控件。

于 2017-06-07T16:28:03.933 回答