如何向视频js播放器添加自定义按钮

How to add a custom button to video js player

我想制作一个按钮,它是一个 link 到我正在使用的视频 js 视频播放器的另一个页面,但似乎没有任何效果。添加按钮后,它被添加到播放器的控制面板,但用户看不到该按钮。另外,我想向该按钮添加一个 link ,一旦按下它应该会打开一个新页面。我找不到与此处发布的我正在尝试的代码相同的良好文档。

var player = videojs('my-video');
  var button = player.addChild('button');
  var myButton = player.controlBar.addChild('button', {
      text: "Press me",
      // other options
    });

如何扩展这个功能,比如onclick事件之类的。我想我可以在里面定义一些方法 player.controlBar.addChild('button' 这本身

您在选项中传递的文本可用作控件文本,而不是显示文本。 ControlText 在您的按钮中创建一个跨度,悬停时会显示该跨度。此控制文本存在于视频js中的所有组件中。

这里在videojs中添加文字是一种简单的方法。

var player = videojs('my_video_1');

// When you pass text in options it just creates a control text,
// which is displayed as tooltip when hovered on 
// this button viz the span in you div,
var myButton = player.controlBar.addChild("button");

// There are many functions available for button component 
// like below mentioned in this docs 
// https://docs.videojs.com/button. 
// You can set attributes and clasess as well.

// Getting html DOM
var myButtonDom = myButton.el();
// Since now you have the html dom element 
// you can add click events


// Now I am setting the text as you needed.
myButtonDom.innerHTML = "Hello";

myButtonDom.onclick = function(){
  alert("Redirecting");
  window.location.href = "https://www.google.com"
}  

您可以随意添加任何 html DOM 属性,而不是设置内部 html,因为最后它只是一个按钮。

添加Codepen link用于代码演示 https://codepen.io/vaibhav281128/pen/NWawWjr

如果您想将按钮注册为自定义组件 https://codepen.io/vaibhav281128/pen/bGoYGPR

如果您还想控制按钮的位置,我的解决方案是:

addButtonToPlayer() {
      let myButton = player.controlBar.addChild('button');
      myButton.controlText('tooltip text');
      player.controlBar
        .el()
        .insertBefore(
          myButton.el(),
          player.controlBar.getChild('fullscreenToggle').el()
        );
      let buttonDom = myButton.el();
      buttonDom.innerHTML = '⬇'; // button text/emoji
      buttonDom.onclick = function() {
        alert('Hey');
      };
    }