我正在与Electron制作游戏,允许在一个页面上访问许多视频。 Electron通过在暂停后播放视频时不断地将视频读入内存来消耗无穷无尽的记忆。这导致单个6mb视频在游戏中的某些点占用数百mbs的内存。垃圾收集最终会启动,但是当应用程序达到内存限制时,视频的响应能力会受到影响。
游戏是线性的,因此我使用video.pause();video.src ="";video.load();
在游戏的某些部分手动删除页面中的视频。这有效,但并不适合所有用户。我想在暂停时从ram中卸载视频,但不要从页面中删除它们,允许它们再次重新加载并在被调用时播放。
目前我将视频放在HTML中,如下所示:
<video id="video1" width="100%" preload="none" loop muted >
<source src="video1.webm" type="video/webm">
</video>
它是这样玩的:
function playvideo1(){
var video = document.getElementById("video1");
var isPlaying = video.currentTime > 0 && !video.paused && !video.ended &&
video.readyState > 2;
if (!isPlaying) {video.currentTime = 0;video.play();}}
暂停了这样:
function video1(){
var video = document.getElementById("video1");
var isPlaying = video.currentTime > 0;
if (isPlaying) {video.pause();}}
我已经搜索过并搜索过,但无论如何我还是没有删除其来源而无法播放视频。如何在不从页面中删除视频的情况下从内存中卸载视频?