Видео продолжает воспроизводиться после перехода на новый маршрут - PullRequest
0 голосов
/ 19 января 2020

У меня есть 2 вида A и B, которые загружаются в маршруты «routeA» и «routeB».

В представлении A я загружаю видео.

Когда я нажмите на кнопку, которая существует в представлении A, которое выполняет $router.push({ name: 'routeB'}), оно загружает представление B, но я все еще могу слушать видео аудио, то есть DOM не очищал то, что загружалось в предыдущем представлении.

Способ загрузки маршрутов выглядит следующим образом:

const routeA = () => import('./components/A.vue');
const routeB = () => import('./components/B.vue');

export default [
{
    path: '/routeA',
    name: 'routeA',
    component: routeA,
},
{
    path: '/routeB',
    name: 'routeB',
    component: routeB,
},
];

Код, который я использую для загрузки видео:

let url = window.URL || window.webkitURL;
var vid = document.getElementById("my_video_player");
vm.video.profile_video_src = url.createObjectURL(xhr.response)+'#t=1';
vid.load();

Это связано с утечкой памяти, которая объясняется здесь: https://vuejs.org/v2/cookbook/avoiding-memory-leaks.html?

Есть ли шанс, что я смогу очистить DOM после перехода в другое представление? Или, по крайней мере, убедиться, что такие вещи, как видео, не продолжают загружаться / воспроизводиться?

...