backbone.js - 手动清除或删除 mediaelement.js 播放器

标签 backbone.js mediaelement.js

我正在尝试在 backbone.js 站点中使用 mediaelement.js 播放器,但当我进出我设置的各种路线时,我无法手动删除视频/音频播放器。

假设我的页面上有两个视频。当我离开这个页面时,这两个视频仍然保存在内存中:

> mejs.players
> [object, object]

当我返回页面时,原来的两个视频仍在内存中,另外 2 个视频被添加到播放器对象中:

> mejs.players
> [object, object, object, object]

事实上,每次我离开页面然后返回时,都会向 mejs.players 对象添加额外的 2 个玩家。

有没有办法手动清除/移除所有玩家?

我试过以下方法:

mejs.players[0].remove()

这似乎从页面中删除了播放器控件,留下了 HTML5 视频播放器。但是,当我检查 mejs.players 时,播放器仍然存在。我可能是错的,但这似乎不是性能的最佳选择。

最佳答案

因为这是一个 Backbone 站点(它有 UnderscoreJS),这会起作用,你可以使用 _.keys() 而不是 Object.keys()

if (mejs) {
    var players = _.keys(mejs.players);
    _.each(players, function(player) {
        mejs.players[player].remove();
    });
}

关于backbone.js - 手动清除或删除 mediaelement.js 播放器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9423600/

相关文章:

javascript - 主干处理 session 过期

backbone.js - Backbone.js 是完成这项任务的正确框架吗?

javascript - mediaelement.js 自动播放在移动设备上不起作用

jquery - 如何在父 Bootstrap Collapse 面板折叠时动态暂停视频?

javascript - MediaElement.js 音频播放器 - 有趣的移动包装

internet-explorer - FancyBox + MediaElement 播放器 + IE

javascript - Backbone.js 如何处理获取的项目

javascript - 什么是导出对象?

javascript - 如何防止 Backbones 保存方法尝试更新每个模型?

Javascript 执行顺序 : how to detect object creation