我在动态创建和丢弃视频播放器的界面中使用 video.js,但一次最多只显示 1 个播放器。理想情况下,我只想找到一种方法来干净地清理 swf 视频播放器,而不是重构一个重用一个播放器的解决方案。
我在 IE8 中看到内存泄漏(使用 Flash 播放器时)。在“丢弃”每个新播放器后,IE 使用的内存保持不变,在“创建”每个新播放器后,内存使用量会增加。Firefox 中的相同实现(使用 Flash 播放器)不会导致内存泄漏,因此问题很可能归因于 IE8。
在我删除播放器/视频之前,我设置player.src('')
并调用player.destroy()
它删除事件绑定和触发器等。
我也尝试过使用swfobject.removeSwf()
,因为它会进行一些额外的拆解以避免 IE 中的内存泄漏(与将 swf 对象的每个函数属性设置为空有关)。
if(player.techName == 'flash'){
player.src('');
swfobject.removeSwf(playerID); // some attempt to leverage swfobject
player.destroy();
$(player.el).remove();
}
我能找到的最接近其他有同样问题的人是: http ://help.videojs.com/discussions/problems/861-how-to-destroy-a-video-js-object#comment_14896105 它已经消失了没有回答。
任何帮助或线索将不胜感激。谢谢!