2014-09-01 5 views
2

Я пытаюсь использовать mediaelement.js для воспроизведения видео на нашем сайте. мы хотим представить рекламные ролики перед mainvideo. чтобы отслеживать, какое объявление просматривалось сколько раз, я хочу отправить ajax-вызов на свой собственный 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).

Я думаю, что функция объявления t.container отличается от mediaElement в функции успеха.

по некоторым исследованиям с console.log() Я понял, что t.container является элементом <div id="mep_0". mediaElement является <video> тег Похоронен в class=mejs-inner и class=mejs-mediaelement

Так как я зарегистрировать слушателя mejsprerollended?

ответ

1

я понял это сам:

mejs использует Jquery .trigger функцию, так что я должен использовать Jquery EventListener-регистровой функции .on:

var player = new MediaElementPlayer('#video',{ 
    features: ['playpause','progress','current','duration','volume','fullscreen','ads'], 
    adsPrerollMediaUrl: '../media/echo-hereweare.mp4', 
}); 
player.container.on('mejsprerollended',function(e){ 
    alert('ad is over!'); 
}); 

 Смежные вопросы

  • Нет связанных вопросов^_^