Я создаю игру с Electron, которая позволяет получить доступ ко многим видео на одной странице.Electron поглощает бесконечную память, постоянно читая видео в память, когда они воспроизводятся после паузы.Это приводит к тому, что одно видео размером 6 МБ занимает несколько сотен МБ памяти в некоторых точках игры.Сборка мусора, в конце концов, запускается, но отзывчивость видео страдает, когда приложение достигает предела памяти.
Игра линейная, поэтому я использую video.pause();video.src ="";video.load();
для ручного удаления видео со страницы в определенных частях игры.Это работает, но не идеально для всех пользователей.Я хотел бы выгружать видео из оперативной памяти всякий раз, когда они находятся в режиме паузы, но не удалять их со страницы, чтобы их можно было повторно загружать и воспроизводить при вызове.
В настоящее время я размещаю видео в 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();}}
Я искал и искал, но так и не нашел, чтобы выгрузить видео без удаления его источника.Как я могу выгрузить видео из памяти, не удаляя его со страницы?