【问题标题】:How to control mediaelement.js player from external links?如何从外部链接控制 mediaelement.js 播放器?
【发布时间】:2013-05-06 13:03:32
【问题描述】:

我想使用外部链接播放和暂停 mediaelement.js 播放器,而不是播放器本身控制。

怎么做?

编辑:只是为了让问题更清楚。

我使用以下代码初始化了 mediaelements.js 播放器:

jQuery(document).ready(function($) {
    $('#wp_mep_1').mediaelementplayer({
        m:1
        ,features: ['playpause','tracks','fullscreen']
        ,audioWidth:26,audioHeight:26
    });
});

现在我在播放器旁边有一个歌曲文件的链接。单击链接时,我会在链接旁边播放或暂停播放器。

我试过这段代码,它可以工作,但它会创建一个独立于已经初始化的新播放器:

$(".songlink").click(function() {
    player = MediaElementPlayer($(this).siblings(".mejs-container").find("audio"));
    if (player.playing) {
        player.pause();
    } else {
        player.play();
    }
    return false;
});

是否可以这样控制播放器:

$('#wp_mep_1').mediaelementplayer(play);

【问题讨论】:

  • 如何再次打开这个问题?
  • 问题是如何在已经存在的播放器上使用 mediaelements.js 事件而不创建新对象。
  • 播放器的访问权限不同:试试这个:
    stackoverflow.com/questions/7729305/…
  • 该问题的代码不起作用。它说“播放器不是函数”

标签: jquery mediaelement.js


【解决方案1】:

好的,在我失去了太多头发之后,我决定通过在点击链接时触发对 mediaelment 播放器控件的点击来做到这一点。

我不敢相信这么好的脚本没有灵活的 api 和好的文档。

这是对我有用的代码:

$(".songlink").click(function() {
    $(this).siblings(".mejs-container").find(".mejs-button")[0].click();
    return false;
});

【讨论】:

    【解决方案2】:

    我想你会在这个页面上找到你需要的一切:https://github.com/johndyer/mediaelement/wiki/Events-and-Methods
    (或在 wiki 的其他页面上。)

    编辑:
    要在已经存在的播放器上调用事件,只需将其从 dom 中取出:
    例如:$('#wp_mep_1').play()

    【讨论】:

    • 问题是如何在已经存在的玩家上使用这些事件而不创建新对象。
    • 当然可以。您可以触发播放器的事件。想象一个你自己创建的按钮(或任何你能想象到的东西......),一旦你点击它,你想要的任何事件(例如播放媒体播放器)都会被触发。
    • 问题是像play()pause()这样的媒体方法需要特定的上下文才能工作,它们不是全局定义的。只需在脚本中执行 $('#wp_mep_1').play() 就会给出“未定义不是函数”未捕获的类型错误。
    • 更新:为了使其正常工作,必须使用var player = new MediaElementPlayer(... 方法创建媒体播放器对象,如mediaelementjs.com 所述。
    • 请详细说明,这个插件的文档很糟糕
    猜你喜欢
    • 2011-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-20
    • 1970-01-01
    相关资源
    最近更新 更多