2011-03-31 19 views
9

¡Estoy atascado! Estoy usando jquery para, al hacer clic, extraer un feed de json-c de youtube, tomar la primera identificación y usarla para anteponer el video del iframe html5 a la parte superior de la ul. Luego lo incremente y tire de la segunda identificación, tercera identificación, etc. y anteponga en consecuencia.¿Detener todas las incrustaciones iframe de YouTube?

El problema es que, cuando se agrega un video nuevo, quiero que los videos anteriores dejen de reproducirse. ¿Hay alguna manera de lograr esto con javascript/jquery?

Aquí está la llamada a la función:

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'); 
}); 
} 
+0

clase añadir a iframe obtener el iframe src borrar y de nuevo poner el src se detendrá la vídeo – pareshm

Respuesta

2

Usted debe ser capaz de hacer algo como esto:

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'); 
Cuestiones relacionadas