Events MediaElement.js闪存回退不执行onplay、onpase和onended事件

Events MediaElement.js闪存回退不执行onplay、onpase和onended事件,events,mediaelement.js,Events,Mediaelement.js,我有一个使用以下代码嵌入的视频: <video controls='false' preload='true' onplay='doPlayEvent()' onpause='doPauseEvent()' onended='doEndEvent()'; src='/the_video.mp4' id='VideoID'> <source type='video/mp4' src='/

我有一个使用以下代码嵌入的视频:

<video controls='false' preload='true' 
        onplay='doPlayEvent()' 
        onpause='doPauseEvent()'
        onended='doEndEvent()';
        src='/the_video.mp4' 
        id='VideoID'>
    <source type='video/mp4' src='/the_video.mp4'></source>
    <source type='video/ogg' src='/the_video.ogg'></source>
    <source type='video/webm' src='/the_video.webm'></source>
</video>

一些奇怪的行为是FireFox正在播放flash回退,更重要的是,在FF或IE8中没有触发onplay、pause和end事件(我假设任何使用flash的事件)


有人知道我在flash中启用事件时缺少了什么吗?

对于onplay、onpause等,要在flash回退中工作,您需要将事件侦听器添加到JavaScript中,在其中创建MediaElement,例如

mediaElement = new MediaElementPlayer('video',{
    //options etc

    // method that fires when the Flash or Silverlight object is ready
    success: function (mediaElement, domObject) {   

       // add event listeners
       mediaElement.addEventListener('timeupdate', function(e) {
           onVideoTimeUpdate(e);
       }, false);

       mediaElement.addEventListener('pause', function(e) {
           onVideoPaused(e);
       }, false);

       mediaElement.addEventListener('play', function(e) {
           onVideoPlayed(e);
       }, false);

       //etc
   }

对于onplay、onpause等,要在flash回退中工作,需要将事件侦听器添加到创建media元素的JavaScript中

mediaElement = new MediaElementPlayer('video',{
    //options etc

    // method that fires when the Flash or Silverlight object is ready
    success: function (mediaElement, domObject) {   

       // add event listeners
       mediaElement.addEventListener('timeupdate', function(e) {
           onVideoTimeUpdate(e);
       }, false);

       mediaElement.addEventListener('pause', function(e) {
           onVideoPaused(e);
       }, false);

       mediaElement.addEventListener('play', function(e) {
           onVideoPlayed(e);
       }, false);

       //etc
   }

谢谢Paul,我今天晚些时候会尝试这个。如果可以在实例化之外添加MediaElement事件侦听器,那将非常棒。谢谢Paul,我今天晚些时候会尝试这个。如果可以在实例化之外添加MediaElement事件侦听器,那将非常棒。