2014-07-21 4 views
18

J'expérimente le lecteur Youtube mais je n'arrive pas à l'assourdir par défaut.Comment couper un lecteur Youtube intégré?

function onPlayerReady() { 
    player.playVideo(); 
    // Mute?! 
    player.mute(); 
    player.setVolume(0); 
} 

Comment le mettre en sourdine dès le départ?

Fiddle


Mise à jour:

. Utilisez à la place iframe Embeds.

+0

Hey Jonathan essayer http://stackoverflow.com/questions/8869372/how-do-i-automatically-play-a-youtube-video-iframe-api-muted –

+0

J'ai changé le code dans le fiddle son travail vérification \ –

+0

Vous devez utiliser enablejsapi = 1 dans l'URL –

Répondre

23

s'avère player.mute() fonctionne très bien. Il a seulement besoin du paramètre enablejsapi=1. Le test initial dans le violon n'a pas fonctionné parce que l'initiation du joueur a eu une erreur. Les travaux suivants.

HTML:

<iframe id="ytplayer" type="text/html" src="https://www.youtube-nocookie.com/embed/zJ7hUvU-d2Q?rel=0&enablejsapi=1&autoplay=1&controls=0&showinfo=0&loop=1&iv_load_policy=3" frameborder="0" allowfullscreen></iframe> 

JS:

var player; 

function onYouTubeIframeAPIReady() { 
    player = new YT.Player('ytplayer', { 
     events: { 
      'onReady': onPlayerReady 
     } 
    }); 
} 

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

Fiddle

Crédit Gagandeep Singh et Anton roi pour pointer enablejsapi=1

+0

Echec de l'exécution de 'postMessage' sur 'DOMWindow': L'origine cible fournie ('https://youtube.com') ne correspond pas à l'origine de la fenêtre du destinataire ('https://www.youtube.com'). – Suisse

+0

Cela ne fonctionne toujours pas pour moi. Et votre démo joue son. – YoTengoUnLCD

+3

Le fichier jsfiddle ne coupe pas la vidéo. – Alvaro

1

Essayez ci-dessous le code

var youtubeplayer = iframe.getElementById('ytplayer'); 
youtubeplayer .setVolume(0); 

Et ci-dessous est votre version mise à jour de violon,

NOTE: Doit inclure enablejsapi = 1 dans l'URL vidéo

 var tag = document.createElement('script'); 

    tag.src = "//www.youtube.com/iframe_api"; 
    var firstScriptTag = document.getElementsByTagName('script')[0]; 
    firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); 

    var player; 

    function onYouTubeIframeAPIReady() { 
     player = new YT.Player('ytplayer', { 
      events: { 
       'onReady': onPlayerReady, 
        'onStateChange': onPlayerStateChange 
      } 
     }); 
    } 

    function onPlayerReady(event) { 
     player.playVideo(); 
     // Mute?! 
     //player.mute(); instead of this use below 
     event.target.mute(); 
     //player.setVolume(0); 
    } 

DEMO Hope this helps ...

+1

Votre démo n'est pas muette quand je la joue. – Jonathan

+0

enablejsapi = 1 besoin d'être utilisé dans url ... j'ai mis à jour check @Jonathan –

+0

Je pense qu'il semble fonctionner car il se souvient si vous l'avez coupé à la main, je ne peux pas le faire fonctionner de manière cohérente. – Jonathan

8

Toutes les réponses ci-dessus n'ont pas fonctionné pour moi pour une raison quelconque. C'est peut-être un drôle de thème wordpress que j'ai dû utiliser ou des méthodes dépréciées à l'API Youtube, je ne suis pas sûr. La seule façon d'arrêter le joueur était d'insérer le code ci-dessous dans le tag.

// Loads the IFrame Player API code asynchronously. 
 
    var tag = document.createElement('script'); 
 
    tag.src = "https://www.youtube.com/player_api"; 
 
    var firstScriptTag = document.getElementsByTagName('script')[0]; 
 
    firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); 
 

 
    // Replaces the 'ytplayer' element with an <iframe> and 
 
    // YouTube player after the API code downloads. 
 
    var player; 
 
    function onYouTubePlayerAPIReady() { 
 
    player = new YT.Player('ytplayer', { 
 
     height: '390', 
 
     width: '640', 
 
     videoId: 'YOUR_VIDEO_ID', 
 
     playerVars: { 
 
      autoplay: 1, 
 
      controls: 1, 
 
      disablekb: 1, 
 
      hl: 'ru-ru', 
 
      loop: 1, 
 
      modestbranding: 1, 
 
      showinfo: 0, 
 
      autohide: 1, 
 
      color: 'white', 
 
      iv_load_policy: 3, 
 
      theme: 'light', 
 
      rel: 0 
 
     }, 
 
     events: { 
 
      'onReady': onPlayerReady, 
 
     } 
 
    }); 
 
    } 
 

 
function onPlayerReady(event){ 
 
    player.mute(); 
 
}
<div id="ytplayer"></div>

2

Il est important de noter que les mandats de l'API YouTube vous exécutez cela dans votre balisage directement dans une balise <script>, ou via un document.onLoad() norme locuteur natif et non en fonction du nom.

Sinon, il ne liera pas nativement la fonction onYouTubeIframeAPIReady() au DOM.

Questions connexes