捕获和处理videojs的'bigplaybutton'的'click'事件不起作用

Posted

技术标签:

【中文标题】捕获和处理videojs的\'bigplaybutton\'的\'click\'事件不起作用【英文标题】:Capturing and handling the 'click' event of 'bigplaybutton' of videojs is not working捕获和处理videojs的'bigplaybutton'的'click'事件不起作用 【发布时间】:2019-03-26 16:09:22 【问题描述】:

我正在使用来自 https://vjs.zencdn.net/5.16.0/video.min.js 的 videojs 在我的页面中嵌入视频。单击“bigplaybutton”时,我有一个要执行的操作。

我尝试通过类名 vjs-big-play-button 获取元素(我还没有明确创建按钮...只是使用来自 videojs 的按钮)并向其添加事件侦听器。

document.getElementsByClassName("vjs-big-play-button").addEventListener('click', somefunction);

(或)

document.getElementsByClassName("vjs-big-play-button").onclick = function()
    console.log("play");
;

它们都不起作用。我不确定我的方法是否正确。请提出解决方案来实现这一目标。

【问题讨论】:

【参考方案1】:

所以我做了进一步的研究并找到了一个可行的解决方案。但仍然不确定为什么按类名获取元素不起作用。所以这是对我有用的解决方案。

var player = videojs("videoElementId");
player.bigPlayButton.on('click', function()
    // do the action
);

【讨论】:

【参考方案2】:

如果您想在 Big Play Button 上添加事件,您可以使用以下代码:

 var previewPlayer = videojs(document.querySelector('.video-js-preview'));

  previewPlayer.bigPlayButton.on('click', function () 
               // your action here.
            );

如果您想在视频播放中添加事件,您可以使用以下内容:

previewPlayer.on('play', () =>   // your action here. );

【讨论】:

player.on('play', ()=> console.log('play~'))【参考方案3】:

getElementsByClassName 将按类名返回元素数组。所以如果你只有一个,那么它可以被称为 document.getElementsByClassName("vjs-big-play-button")[0]

【讨论】:

以上是关于捕获和处理videojs的'bigplaybutton'的'click'事件不起作用的主要内容,如果未能解决你的问题,请参考以下文章

使用 videojs-record 和 videojs 进行直播

VideoJS 和 swfobject 嵌入问题

使用videojs进行实时流式传输的CORS和请求标头错误[重复]

VideoJS - 无缝循环视频

videoJs实现点击按钮播放切换视频

webpack 不支持 videojs-contrib-dash 格式