我正尝试在我们的网站上使用mediaelement.js播放视频。我们希望在主视频前呈现广告视频。跟踪,哪些广告被查看了多少次,当广告完成时,我想发送一个ajax-call到我的自定义php脚本。mediaelement.js:收听由mep-feature-ads触发的事件
我的问题是,当mep-feature-ads
功能adsPrerollEnded
触发回调我不能添加一个侦听正确的项目:
adsPrerollEnded: function() {
console.log('adsPrerollEnded');
var t = this;
t.container.trigger('mejsprerollended');
t.adRestoreMainMedia();
},
在我的代码看起来像时间:
<script>
$(function() {
$('audio,video').mediaelementplayer({
features: ['playpause','progress','current','duration','volume','fullscreen','ads'],
adsPrerollMediaUrl: '../media/echo-hereweare.mp4',
success: function (mediaElement, domObject) {
// add event listener
mediaElement.addEventListener('mejsprerollended', function(e) {
alert('ad is over, do ajax now');
}, false);
// call the play method
mediaElement.play();
},
});
});
</script>
,但警报永远不会被解雇,除此之外,所有其他功能都可以正常工作(广告在mainvideo之前播放,并且在广告期间,mainvideo启动后的广告中没有任何控件可用)。
我认为ads-feature中的t.container
和成功函数中的mediaElement
不一样。
对console.log()
的一些研究我想通了,t.container
是<div id="mep_0"
元素。 mediaElement
是<video>
标签在class=mejs-inner
安葬和class=mejs-mediaelement
让我怎么上mejsprerollended
注册一个监听器?