有点晚了,但必须自己解决这个问题。我注意到 MediaElement 文档说成功函数的第一个参数是一个 mediaElement 对象。恰好播放器 html 被包装在一个元素中,无论它是什么类型的视频。您不能直接将其作为 jQuery 对象访问,但一个简单的调整就可以解决所有问题。
无论您传入哪个元素,以下内容都用于获取最近的玩家
function getVideo(el) {
var $el = $(el);
if ($el.find('mediaelementwrapper').length) {
return $el.find('mediaelementwrapper')[0];
} else if ($el.parents('mediaelementwrapper').length) {
return $el.parents('mediaelementwrapper')[0];
}
return $el.is('mediaelementwrapper') ? $el : false;
}
请注意,我们必须通过 [0] 返回文档节点而不是 jQuery 对象来访问它。
但是从那里我们可以像这样使用它。
$video = getVideo('#playerID');
$video.addEventListener('playing', function () {
debugger;
}, false);
或者在没有助手的情况下进行
$video = jQuery('#playerID mediaelementwrapper')[0];