用popcorn.js在IE8中玩vimeo

时间:2013-04-30 20:52:20

标签: internet-explorer-8 vimeo popcornjs

我无法让popcorn.js与IE8一起打球。我只使用popcorn-ie8包装器,媒体原型和vimeo插件。

我的代码就像这样简单:

var video = Popcorn.HTMLVimeoVideoElement('#video');
video.src = 'http://vimeo.com/18359846';
var example = Popcorn(video);
example.play()

IE8抛出错误:

'MediaError未定义',popcorn._MediaElementProto.js(58)。

如果我使用popcorn.js的完整包发行版并将IE8垫片放在顶部,我的IE会迅速泄漏内存并崩溃。我还必须在IE8中禁用内存保护以捕获错误,否则整个浏览器崩溃。

所以我把它切成了爆米花+ ie8shim,mediaelement核心和vimeo插件。

我在这里设置了一个jsFiddle:http://jsfiddle.net/EtepN/

您必须使用此网址在IE8中查看结果,因为jsFiddle在IE8中不起作用:http://jsfiddle.net/EtepN/embedded/result/

- 修改 -

越来越近了;我为MediaError创建了一个闭包,这样IE8就不会因为未定义而抛出错误 - 只需将其定义为另一个对象并将 设置为MediaError对象。

(function(w) {
var _MediaError = w.MediaError;
if(!_MediaError) {
w.MediaError = _MediaError = (function() {
    function MediaError(code, msg) {
      this.code = code || null;
      this.message = msg || "";
    }
    MediaError.MEDIA_ERR_NONE_ACTIVE    = 0;
    MediaError.MEDIA_ERR_ABORTED        = 1;
    MediaError.MEDIA_ERR_NETWORK        = 2;
    MediaError.MEDIA_ERR_DECODE         = 3;
    MediaError.MEDIA_ERR_NONE_SUPPORTED = 4;

    return MediaError;
  }());
}
}(window));

仍然没有让它在IE8中工作,但这至少是一个错误....

0 个答案:

没有答案