为VideoJS 5编写插件

时间:2015-06-17 15:35:09

标签: javascript video.js

当我尝试使用最新版本的videojs 5时,以下代码不再有效。我正在尝试编写一个videojs插件,但videojs 5使用ecmascript 6,这对我来说是新的。任何帮助都表示赞赏。

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

videojs.SharingButton.prototype.createEl = function(tagName,options) {
    return videojs.Component.prototype.createEl(tagName,{
        className: this.buildCSSClass(),
        innerHTML: '',
        role: 'button',
        'aria-live': 'polite', // let the screen reader user know that the text of the button may change
        tabIndex: 0
    });
}

videojs.SharingButton.prototype.buttonText = 'Share Video';

videojs.SharingButton.prototype.options_ = {};

videojs.SharingButton.prototype.buildCSSClass = function(){
    return 'vjs-sharing-control ';
};

1 个答案:

答案 0 :(得分:1)

您好我有同样的问题,替换此代码

videojs.SharingButton = videojs.Button.extend({

通过

var SharingButton = videojs.getComponent('Button');
videojs.SharingButton = videojs.extend(SharingButton , {...});
videojs.registerComponent('SharingButton', SharingButton);

var myButton = myPlayer.addChild('SharingButton');

如果要添加不是播放器元素的直接子元素的Component,则必须爬上子元素并添加Component。 像:

parentComponent = myPlayer.getChild('component1').getChild('component2')...
parentComponent.addChild('SharingButton')

请注意播放器组件必须以小写字母开头,例如controlBar

在此Define function in leaflet cluster options中找到组件树。

在构建5.0版本时已经进行了很多更改(请参阅此link),不幸的是大多数videojs插件都没有更新他们的代码!其中一个主题是社交按钮分享