Как правильно выгрузить / уничтожить элемент ВИДЕО - PullRequest
38 голосов
/ 15 июля 2010

Я работаю над приложением для просмотра / воспроизведения мультимедиа в реальном времени, которое использует <video> объекты в браузере для воспроизведения, когда это возможно.

Я использую сочетание прямого javascript и jQuery,

Меня беспокоит именно память.Приложение никогда не перезагружается в окне, и пользователь может смотреть много видео, поэтому со временем управление памятью становится большой проблемой.На сегодняшнем тестировании я вижу, как профиль памяти прыгает по размеру видео, которое будет передаваться при каждой последующей загрузке, и никогда не опускается до базовой линии.

Я пробовал следующие вещи с тем же результатом:

1 - очистить родительский контейнер, содержащий созданный элемент, например:

$(container_selector).empty();

2 - приостановить и удалить дочерние элементы, соответствующие 'video', а затем очистить родительский контейнер:

$(container_selector).children().filter("video").each(function(){
    this.pause();
    $(this).remove();
});
$(container_selector).empty();

Кто-нибудь еще сталкивался с этой проблемой, и есть ли лучший способ сделать это?

Ответы [ 13 ]

0 голосов
/ 19 июля 2018

Не очень сложно.Просто установите ваш src на ноль.

Eg: document.querySelector('#yourVideo').src = null;

Это удалит ваш атрибут видео src.Готово.

0 голосов
/ 05 июня 2018
var video = document.getElementById('video');
        if (video.firstChild) {
            video.removeChild(video.firstChild);
            video.load();
        }
0 голосов
/ 20 июня 2015

Вот ответ о том, как закрыть камеру - не только пауза.Это поток, который должен быть остановлен, а не ссылка на элементы видео: stream.stop ()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...