如何向视频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');
};
}
我想制作一个按钮,它是一个 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');
};
}