Остановить воспроизведение всех встроенных вставок YouTube? - PullRequest
9 голосов
/ 31 марта 2011

Я застрял! Я использую jquery, чтобы при нажатии вытащить канал YouTube json-c, захватить первый идентификатор и использовать его для добавления видео html5 iframe к вершине ul. Затем я увеличиваю его, извлекаю второй идентификатор, третий идентификатор и т. Д. И добавляю их соответственно.

Проблема в том, что при добавлении нового видео я хочу, чтобы любое из предыдущих видео перестало воспроизводиться. Есть ли способ сделать это с помощью javascript / jquery?

Вот вызов функции:

function videoCall(i) {
$.getJSON('http://gdata.youtube.com/feeds/api/standardfeeds/most_recent?v=2&max-results=50&alt=jsonc', function(vid) { 
    var fullItem ='';
    var videoID = (vid.data.items[i].id);
    var videoLink = 'http://www.youtube.com/watch?v=' + videoID;
    var videoTitle = (vid.data.items[i].title);

    fullItem += '<li class="videoItem">';
    fullItem += '<iframe title="YouTube video player" width="900" height="536" src="http://www.youtube.com/embed/' + videoID + '" frameborder="0" allowfullscreen></iframe>';
    fullItem += '<a href="mailto:?subject=ThinkerBot Video&body=' + videoLink + '">Email This</a>';
    fullItem += '</li>';

    $(fullItem).hide().prependTo('#content ul').slideDown('slow');
});
}

1 Ответ

2 голосов
/ 10 декабря 2014

Вы должны быть в состоянии сделать что-то вроде этого:

function players(func, args) {
    var iframes = document.getElementsByTagName('iframe');
    for (var i=0; i<iframes.length; ++i) {
        if (iframes[i]) {
            var src = iframes[i].getAttribute('src');
            if (src) {
                if (src.indexOf('youtube.com/embed') != -1) {
                    iframes[i].contentWindow.postMessage(JSON.stringify({'event': 'command','func': func,'args': args || []}), "*");
                }
            }
        }
    }
}

// example usage
players('stopVideo');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...