Javascript HTML5视频:暂停事件

Javascript HTML5视频:暂停事件,javascript,google-chrome,html5-video,Javascript,Google Chrome,Html5 Video,我正在Google Chrome上使用HTML5视频标签编写一个视频播放器:我需要显示一些视频(1),然后将它们从DOM文档中删除以显示其他视频,然后再创建一些指向与(1)相同文件的视频标签 我注意到有时候视频在我第二次加载时没有显示,而是触发了一个“暂停”事件……我应该怎么处理这个事件并能够显示视频?如果我保留对第一个视频标签的引用,然后在以后重用它,它会工作,但是保留对每个视频标签的引用可能会非常消耗内存 如果浏览器一次要加载两到三个以上的视频,其中一些视频会暂停。尽管HTML5视频提供了一

我正在Google Chrome上使用HTML5视频标签编写一个视频播放器:我需要显示一些视频(1),然后将它们从DOM文档中删除以显示其他视频,然后再创建一些指向与(1)相同文件的视频标签


我注意到有时候视频在我第二次加载时没有显示,而是触发了一个“暂停”事件……我应该怎么处理这个事件并能够显示视频?如果我保留对第一个视频标签的引用,然后在以后重用它,它会工作,但是保留对每个视频标签的引用可能会非常消耗内存

如果浏览器一次要加载两到三个以上的视频,其中一些视频会暂停。尽管HTML5视频提供了一种告诉它开始加载视频的方法,但没有办法告诉它停止。一旦您第一次开始播放它,只要它在内存中,它就会继续尝试加载更多数据,以防您决定再次播放它。它一次只能加载这么多视频,所以如果你还在加载前三个视频,第四个视频会等待很长时间

删除旧视频并稍后再次加载是正确的方法,但是您需要非常彻底地处理它,以使浏览器停止尝试加载它们。这是你需要做的

// 1) Pause the video
oldVideo.pause();

// 2) Clear the video source URL
oldVideo.src = "";

// 3) Tell the video to start loading "nothing"
oldVideo.load();
最后一步至关重要。即使将
src
设置为空字符串,视频也会忽略它,直到调用
load
。如果需要,还可以将其从DOM和任何数据结构中删除,以便完全对其进行垃圾收集。但即使这样做,它也不会被垃圾收集,除非您清除
src
并调用
load


下次加载视频时,无论是创建新元素还是在同一个元素上设置
src
,都应该可以正常工作。

你真是个天才!多谢各位@brianchirls这个程序还需要吗?这太可笑了。你是怎么得出这样的结论的:这样的东西能让它正常工作/