2016-09-19 2 views
0

Donc, fondamentalement, j'ai incorporé une vidéo qui ne devrait pas être jouée automatiquement et quand elle est jouée, le code fonctionne bien, mais je veux seulement que la fonction onStateChange fonctionne la vidéo coupe la vidéo. Est-ce que quelqu'un sait comment limiter cette fonction à une seule exécution? L'aide est très appréciée :)Limiter la fonction à 1 exécution youtube player api

function onYouTubeIframeAPIReady() { 
    player = new YT.Player('video-placeholder', { 
     videoId: 'sAhYEfQ1168', 
     playerVars: { 
      'autoplay': 0, 
      'controls': 0, 
      'autohide': 1, 
      'wmode': 'opaque', 
      'showinfo': 0, 
      'loop': 1, 
      'fs':0, 
      'rel':0 
     }, 
     events: { 
      'onReady': onPlayerReady 
     } 
    }); 

} 

function onPlayerReady(event) { 
    player.mute(); 
} 

Répondre

3

Vous pouvez définir la propriété onReady de player.events objet à null à l'intérieur et à la dernière ligne de onPlayerReady fonction

function onPlayerReady(event) { 
    player.mute(); 
    player.events.onReady = null; 
} 
+0

Désolé, ne fonctionne pas :( –

+0

En fait, réussi à utiliser votre réponse, mais en utilisant l'événement "onReady" –

+0

@IndianaPorter modification suggérée contient des références différentes de l'original Question: Original Question encore des références 'onStateChange',' onPayerStateChange'. Peut-être mettre à jour la question originale? Le modèle est le même – guest271314

1

Il semble que « OnStateChange » utilise les états suivants:

-1 (unstarted) 
0 (ended) 
1 (playing) 
2 (paused) 
3 (buffering) 
5 (video cued) 

Documentation: https://developers.google.com/youtube/iframe_api_reference?hl=de

L'événement avec la donnée a "-1" ne semble être exécuté qu'une seule fois lors de la première exécution.

Voici un exemple:

http://jsfiddle.net/w4d6t32m/

Si vous voulez seulement couper la vidéo que vous pouvez regarder aussi dans l'événement « onReady ».

+0

Merci compagnon est venu à la même conclusion que vous avez posté ceci :) Merci pour l'aide! –