Как получить доступ к видео Wistia с помощью API после его внедрения в DOM - PullRequest
0 голосов
/ 08 июня 2018

Я лениво загружаю видео Wistia, и они вставляются в DOM после щелчка изображения.Я пытаюсь обработать видео, чтобы приостановить видео, когда начинается воспроизведение нового видео, но обратный вызов Wistia API не запускается.

function getAllVideos() {
        window._wq = window._wq || [];
        console.log(window._wq)
        window._wq.push({
            id: "_all",
            onEmbedded: function(video) {
                console.log('inside ready');
            }
        })
        console.log(window._wq)
    }

Я всегда получаю пустой массив.Wistia.api.all() также возвращает пустой массив.Это может быть из-за асинхронности?Я делаю инъекцию iframe, вызывая API Wistia следующим образом:

$slide.getJSON('http://fast.wistia.com/oembed/?url=http://home.wistia.com/medias/' + embed + '&format=json')
                .then(res => {
                    var thumbnail = new Image(); // create image to hold thumbnail
                    thumbnail.src = res.thumbnail_url; // set thumbnail source
                    var videoContainer = document.getElementById('slick-slide0' + i); // each slide get video container
                    videoContainer.appendChild(thumbnail);
                    videoContainer.innerHTML += '<div class="play-button"></div>';
                    var slider = document.getElementById('slick-slide-control0' + i);

                    // on click of each image, create iframe, remove image, insert iframe
                    videoContainer.addEventListener('click', function() {
                        var iframeEmbed = document.getElementById('{{parent_custom_widget_name}}_' + i).innerHTML;
                        var iframe = document.createElement('iframe');
                        iframe.setAttribute('frameborder', '0');
                        iframe.setAttribute('allowfullscreen', 'true');
                        iframe.setAttribute('src', '//fast.wistia.net/embed/iframe/' + iframeEmbed + '?autoplay=true');
                        this.innerHTML = '';
                        this.appendChild(iframe);
                        getAllVideos();
                    });

                });

1 Ответ

0 голосов
/ 16 августа 2018

Вы можете создать объект wistia используя
var wistiaObj = Wistia.api("<id_of_wistia_tag>");

После этого вы можете вызвать функцию,
wistiaObj.play();
wistiaObj.time();

, которую вы можете ссылатьсяэто: https://wistia.com/support/developers/player-api
Надеюсь, это поможет вам.

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