web-dev-qa-db-fra.com

Comment désactiver un lecteur Youtube intégré?

J'expérimente avec le lecteur Youtube mais je n'arrive pas à le désactiver par défaut.

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

Comment puis-je le couper depuis le début?

Violon


Mise à jour:

L'API JavaScript Player est déconseillée .
Utilisez plutôt iframe Embeds .

20
Jonathan

Il s'avère que player.mute() fonctionne très bien. Il avait seulement besoin du paramètre enablejsapi=1. Le test initial au violon n'a pas fonctionné car l'initiation du joueur avait une erreur. Les œuvres suivantes.

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();
}

Violon

Nous remercions Gagandeep Singh et Anton King d'avoir indiqué enablejsapi=1

24
Jonathan

Toutes les réponses ci-dessus n'ont pas fonctionné pour moi pour une raison quelconque. Cela pourrait être bizarre 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 de couper le lecteur était d'insérer le code ci-dessous dans la balise.

// 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>
8
Artem Kiselev

Il est important de noter que l'API YouTube vous oblige à l'exécuter dans votre balisage directement dans une balise <script>, Ou via un écouteur natif document.onLoad() standard et non en tant que fonction nommée.

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

2
Paul Kane

Essayez le code ci-dessous

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

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

REMARQUE: Doit inclure enablejsapi = 1 dans l'url de la 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);
    }

DÉMO J'espère que cela vous aidera ...

1
Anto King