video.js: принудительная инициализация уже инициализированного вручную видео

Я динамически генерирую и изменяю содержимое своего сайта с помощью javascript.
Я добавляю видеофайлы и файлы videojs-javascript с помощью javascript и инициализирую видео, вызывая _V_(videos[i].id);.
Однако инициализирую только видео работает с первого раза!
Когда я затем изменяю содержимое сайта, а затем снова перехожу на страницу видео, повторная инициализация видео (видео-тег имеет тот же идентификатор) не работает не работает.
Браузерный видеопроигрыватель HTML5 есть, но не в стиле videojs.

Есть ли другой способ «принудительно» инициализировать плеер? Что может вызвать эту проблему?

Это мой сценарий:

videoPlayer = {
    check: function() {
        videos = document.getElementsByTagName("video");
        if (videos.length > 0) {
            this.init();
        }
    },
    init: function() {
        if (isPlayer) {
            //alert("init");
            for (var i = 0; i < videos.length; i++) var player = _V_(videos[i].id, {}, function() {
                alert("player init!")
            });
        }
        else {
            this.build();
        }
    },
    build: function() {
        //alert("build");
        if (isPlayer == false) {
            var head = document.getElementsByTagName("head")[0];
            var videoScript = document.createElement('script');
            videoScript.type = 'text/javascript';
            videoScript.src = './min/g=videojs';
            var videocss = document.createElement('link');
            videocss.type = 'text/css';
            videocss.rel = 'stylesheet';
            videocss.href = './min/g=videocss';
            isPlayer = true;
            videoScript.onload = this.init;
            head.appendChild(videocss);
            head.appendChild(videoScript);
        }
    }
}

Заранее большое спасибо!


person basbebe    schedule 19.11.2012    source источник


Ответы (2)


Пробовали ли вы создать новый элемент видео и (повторно) инициализировать его вместо повторного использования предыдущего элемента видео?

Вы также можете попробовать «сбросить» все, src, треки, подписи и т. д. с новыми значениями.

person b.kelley    schedule 26.11.2012

Я знаю, что уже довольно поздно, но вы можете попробовать проверить дочерние элементы видеоэлемента. Например, если он уже содержит div класса vjs-poster, ничего не делайте, иначе инициализируйте video-js.

person Patrick Geyer    schedule 06.01.2014