mediaElementjs:如何获取播放器的实例

时间:2011-07-18 09:32:06

标签: javascript jquery html5 html5-video mediaelement

我遇到了MediaElement.js播放器的一个小问题。

要获取播放器的实例,我这样做(使用兼容html5的浏览器):

    // Get player
this.playerId = $('div#shotlist-player video').attr('id');
this.player = window[this.playerId];

但是它一旦闪回闪回,就不能正常工作。事实上,它不起作用,因为我没有调用MediaElement本身的实例。但我不明白我怎么称呼它。

使用

创建播放器
$('video').mediaelementplayer({....});

如何获取mediaelement对象?

------------ ---------------- EDIT

好的,我终于找到了如何使其有效:

    // Get player
mePlayer = $('div#shotlist-player video.video-js')[0];
this.player = new MediaElementPlayer(mePlayer);

现在我可以正确地使用mediaElement实例。

2 个答案:

答案 0 :(得分:2)

这篇文章有很多猜测,但可能是正确的。文档缺乏(;

如果您希望创建一个新的MediaElement实例并获得它的句柄,sidonaldson的答案是完全可以接受的。如果有一个已存在,它似乎试图重新初始化该元素上的另一个实例并且吓坏了。

我非常确定mediaelement.js通过提供JavaScript API来通过这些元素操作Flash / Silverlight播放器来增强内置HTML5控件。我可能错了,但我在多个地方看到的关于这个问题的其他建议是做一些事情:

$playButton.click(function() {
    $('video, audio').each(function() {
        $(this)[0].player.play();
    });
});

创建一个播放按钮作为外部DOM元素,它将触发页面上的所有玩家。这向我表明实施是我所描述的。

答案 1 :(得分:1)

尝试:

var player = $('video').mediaelementplayer({                
    success: function (me) {
         me.play();
    }
});
// then you can use player.id to return the id
// or player.play();