【问题标题】:MediaElementJs ended callback not firedMediaElementJs 结束回调未触发
【发布时间】:2013-02-08 13:25:06
【问题描述】:

在我的 Web 应用程序中使用 MediaElementPlayer 类时遇到问题。我想要完成的是每次播放器播放到最后时触发一个方法。我的代码如下所示:

$(document).ready(function()
{
    $('#audio-player').mediaelementplayer("#audio-player", 
    {
        alwaysShowControls: true,
        features: ['playpause','volume','progress'],
        audioVolume: 'horizontal',
        audioWidth: 400,
        audioHeight: 120,
        success: function(mediaElement, domObject)
        {
            mediaElement.addEventListener('ended', loadNew, false);
        }
    });

    function loadNew()
    {
        Alert("Track ended callback");
    }

    $(".play-button").click(function()
    {
        alert("Load new");
    });
});

我的 jQuery 版本是 1.7.2。我尝试过其他变体,例如var player = new Media...,然后是player.addEventListener,但都没有任何运气。有趣的是,这在昨天确实有效,而今天却没有。

有什么建议吗?谢谢!

【问题讨论】:

    标签: javascript jquery html mediaelement.js mediaelement


    【解决方案1】:

    我已经设法修复它,对于所有未来的读者,代码发布在下面。变化不大,但它就像魅力一样。

    $(document).ready(function()
    {
        var player = new MediaElementPlayer("#audio-player",
        {
           alwaysShowControls: true,
           features: ['playpause','volume','progress'],
           audioVolume: 'horizontal',
           audioWidth: 400,
           audioHeight: 120,
           success: function(mediaElement, domObject)
           {
               mediaElement.addEventListener('ended', loadNextTrack, false);
           }
        });
    
        $(".play-button").click(function()
        {
            alert("Load new");
        });
    });
    
    function loadNextTrack(mediaElement, domObject)
    {
       alert("Next track callback");
    }
    

    【讨论】:

      【解决方案2】:

      在您的 mediaelementplayer() 函数调用中,请确保不要重复“#audio-player”作为第一个参数:

      $(document).ready(function()
      {
          $('#audio-player').mediaelementplayer( 
          {
              alwaysShowControls: true,
              features: ['playpause','volume','progress'],
              audioVolume: 'horizontal',
              audioWidth: 400,
              audioHeight: 120,
              success: function(mediaElement, domObject)
              {
                  mediaElement.addEventListener('ended', loadNew, false);
              }
          });
      
          function loadNew()
          {
              Alert("Track ended callback");
          }
      
          $(".play-button").click(function()
          {
              alert("Load new");
          });
      });
      

      它应该可以解决您的问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-05-10
        • 2016-06-18
        • 1970-01-01
        • 2011-02-12
        • 2020-08-08
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多