【问题标题】:MediaElement.js stop all playersMediaElement.js 停止所有播放器
【发布时间】:2011-02-05 15:49:23
【问题描述】:

我已经使用 MediaElement.js 有一段时间了,并且有一个在单个页面上使用 20 个播放器的新应用程序。我希望能够在播放另一首歌曲时停止歌曲 - 并且在播放时不要重叠曲目。我似乎找不到破解此问题的简单方法 - 也许有人知道方法?

谢谢。

【问题讨论】:

    标签: javascript html media html5-audio mediaelement.js


    【解决方案1】:

    在jQuery中,你可以这样做

    $('video,audio').each(function() {
          $(this)[0].pause();
    });
    

    让我知道这是否有效。

    【讨论】:

    • John 那肯定没有用,但是控制台似乎正在找到所有元素(它会吐出一个元素列表)。它也不会引发错误......这是一个好兆头。但玩家不会停止!
    • 我可以通过取出播放器参考来暂停:$(this)[0].pause();
    • @starpause 是对的,从“暂停”之前删除“播放器”,它工作正常。谢谢!
    【解决方案2】:

    一个又快又脏的;)

    $(".mejs-play").live('click',function(){
      $(".mejs-pause").trigger('click');                              
    });
    

    【讨论】:

      【解决方案3】:

      MediaElement.js 创建一个全局对象“mejs”,该对象具有属性“players”,其中包含有关您已创建的所有播放器的信息。玩家被命名为 mep_0、mep_1 等。

      如果你使用下划线/lodash,你可以写类似

      _.each(mejs.players, function(player) {
          player.media.stop();
      });
      

      如果你需要纯js代码,你可以使用'for'操作符

      for (var player in mejs.players) {
          mejs.players[player].media.stop();
      }
      

      【讨论】:

        【解决方案4】:

        我用 jQuery 找到的最简单的方法:

        $('video,audio').trigger('pause');
        

        单线制胜! 它还避免了 JS 错误,因为它不直接针对元素,感谢 jQuery。

        【讨论】:

        • 简单有效
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多