démarrer / lire intégré (iframe) youtube-vidéo sur un clic d'une image

j'essaie de commencer à lire une vidéo Youtube intégrée en cliquant sur une image. L'idée est d'avoir une image sur une vidéo, et lorsque l'image est cliqué, cela s'estompe et démarre la lecture de la vidéo.

j'utilise jquery pour effacer l'image, et j'espérais trouver un moyen de jouer ou de cliquer sur la vidéo en utilisant jquery aussi bien.

la décoloration fonctionne bien, mais je n'arrive pas à trouver comment déclencher la vidéo à lire. Je l'ai obtenu pour travailler sur un couple de les navigateurs en mettant la vidéo à autoplay et le cacher, puis s'estomper dans la vidéo lorsque l'image a été cliquée. Sur la plupart des navigateurs, La vidéo serait autoplay une fois fané, mais dans chrome il a commencé à autoplay même quand il était caché. Ça n'a pas marché non plus à iOS.

depuis que je suis assez nouveau à cela, je ne suis même pas sûr si je l'écris à 100% correct, mais j'ai essayé quelque chose comme ça sans succès:

     $('#IMAGE').click(function() { $('#VIDEO').play(); });

alors, comment pourrais-je faire la lecture de la vidéo sur un clic d'image? Y a-t-il un moyen de lire la vidéo lorsque l'image est cliquée, en utilisant jquery?

Merci d'avance.

44
demandé sur Corn 2011-06-06 04:48:40

7 réponses

le moyen rapide et sale est simplement d'échanger le iframe avec un qui a autoplay=1 ensemble en utilisant jQuery.

THE HTML

espace Réservé:

<div id="videoContainer">
  <iframe width="450" height="283" src="https://www.youtube.com/embed/VIDEO_ID_HERE?wmode=transparent" frameborder="0" allowfullscreen wmode="Opaque"></iframe>
</div>

"151970920 de lecture automatique de lien:

<a class="introVid" href="#video">Watch the video</a></p>



THE JQUERY

Le onClick catcher qui appelle la fonction

jQuery('a.introVid').click(function(){
  autoPlayVideo('VIDEO_ID_HERE','450','283');
});

la fonction

/*--------------------------------
  Swap video with autoplay video
---------------------------------*/

function autoPlayVideo(vcode, width, height){
  "use strict";
  $("#videoContainer").html('<iframe width="'+width+'" height="'+height+'" src="https://www.youtube.com/embed/'+vcode+'?autoplay=1&loop=1&rel=0&wmode=transparent" frameborder="0" allowfullscreen wmode="Opaque"></iframe>');
}
47
répondu gearsandcode 2012-04-06 19:14:12

Vous pouvez le faire simplement comme ceci

$('#image_id').click(function() {
  $("#some_id iframe").attr('src', $("#some_id iframe", parent).attr('src') + '?autoplay=1'); 
});

image_id est votre id d'image que vous cliquez et some_id est l'id de div dans lequel iframe est aussi vous pouvez utiliser iframe id directement.

20
répondu drupal_mohitsharma 2013-05-24 06:08:00

pour démarrer la vidéo

var videoURL = $('#playerID').prop('src');
videoURL += "&autoplay=1";
$('#playerID').prop('src',videoURL);

pour arrêter la vidéo

var videoURL = $('#playerID').prop('src');
videoURL = videoURL.replace("&autoplay=1", "");
$('#playerID').prop('src','');
$('#playerID').prop('src',videoURL);

, Vous pouvez remplacer "&autoplay=1" avec "?autoplay=1 " incase il n'y a pas de paramètres supplémentaires

fonctionne à la fois pour vimeo et youtube sur FF & Chrome

11
répondu Faiz Mohamed Haneef 2015-02-13 12:09:45

vous êtes censé être capable de spécifier un domaine qui est sûr pour le script. le document api mentionne "Comme mesure de sécurité supplémentaire, vous devriez également inclure le paramètre origin à L'URL" http://code.google.com/apis/youtube/iframe_api_reference.html src="http://www.youtube.com/embed/J---aiyznGQ?enablejsapi=1&origin=mydomain.com" serait le src de votre iframe.

toutefois, il n'est pas très bien documenté. Je suis en train d'essayer quelque chose de semblable à droite maintenant.

4
répondu matt 2011-07-21 13:56:58

Code Html: -

<a href="#" id="playerID">Play</a>
<iframe src="https://www.youtube.com/embed/videoID" class="embed-responsive-item" data-play="0" id="VdoID" ></iframe>

Code Jquery:-

$('#playerID').click(function(){
    var videoURL = $('#VdoID').attr('src'),
    dataplay = $('#VdoID').attr('data-play');

    //for check autoplay
    //if not set autoplay=1
    if(dataplay == 0 ){
        $('#VdoID').attr('src',videoURL+'?autoplay=1');
        $('#VdoID').attr('data-play',1);
     }
     else{
        var videoURL = $('#VdoID').attr('src');
        videoURL = videoURL.replace("?autoplay=1", "");
        $('#VdoID').prop('src','');
        $('#VdoID').prop('src',videoURL);

        $('#VdoID').attr('data-play',0);
     }

});

C'Est Ça!

1
répondu Anuj Khandelwal 2016-04-12 10:10:58

exemple youtube iframe

<iframe id="video" src="https://www.youtube.com/embed/xNM7jEHgzg4" frameborder="0"></iframe>

cliquez pour jouer de l'élément HTML

<div class="videoplay">Play</div> 

code jQuery pour lire la vidéo

$('.videoplay').on('click', function() {
    $("#video")[0].src += "?autoplay=1";
});

merci à https://codepen.io/martinwolf/pen/dyLAC

1
répondu alex 2016-07-12 12:56:38

cela devrait fonctionner parfait il suffit de copier ce code de div

<div onclick="thevid=document.getElementById('thevideo'); thevid.style.display='block'; this.style.display='none'">
<img style="cursor: pointer;" alt="" src="http://oi59.tinypic.com/33trpyo.jpg" />
</div>
<div id="thevideo" style="display: none;">
<embed width="631" height="466" type="application/x-shockwave-flash" src="https://www.youtube.com/v/26EpwxkU5js?version=3&amp;hl=en_US&amp;autoplay=1" allowFullScreen="true" allowscriptaccess="always" allowfullscreen="true" />
</div>
0
répondu Jamil Ahmed 2014-02-02 16:03:23