Chrome не освобождает память от <video> - PullRequest
1 голос
/ 27 апреля 2011

У меня есть страница, которая загружает много видео. Это должно работать только в Chrome.

Каждый раз, когда создается видео, я удаляю и воссоздаю тег видео, чтобы обойти проблемы. здесь

однако память, используемая Chrome, продолжает увеличиваться при каждом воспроизведении видео, но никогда не освобождается (даже если это одно и то же видео).

Как заставить Chrome освободить эту память?

Вот код js / jQuery о том, как я добавляю и удаляю видео:

function playVideo(videoName) {
    $("#VideoShow").fadeIn(300).html("<video width=800 height=600><source src=\"" + videoName + "\"'></video>");
    var Vid = document.getElementsByTagName('video')[0];
    Vid.play();
    Vid.addEventListener('ended', function(e) {
        closeVideo();
    }, false);
}

function closeVideo() {
    var Vid = document.getElementsByTagName('video')[0];
    Vid.removeEventListener('ended', arguments.callee, false);
    $("#VideoShow").fadeOut(300).html("");
}

Я предполагаю, что это ошибка в Chrome, но я хочу убедиться, что я не делаю ничего плохого, прежде чем сообщать об этом.

1 Ответ

1 голос
/ 10 января 2013

РЕДАКТИРОВАТЬ По состоянию на обновление Chrome в январе 2013 года эта утечка памяти была исправлена!

Я создал проблему с хромом по этому поводу: http://code.google.com/p/chromium/issues/detail?id=166830

Это происходит из-за аппаратного ускорения, оно не освобождает память.

Если вы включите функцию «отключить ускоренное декодирование видео» в chrome: // flags /, тогда она вообще не будет этого делать.Похоже, что один из разработчиков хрома в ближайшее время изучает это

...