【问题标题】:How do I toggle video mute in an iframe ( youtube ) with a button?如何使用按钮在 iframe ( youtube ) 中切换视频静音?
【发布时间】:2021-12-24 19:54:36
【问题描述】:

你好吗?

我正在尝试在 wordpress 标题中为 youtube iframe 的播放/静音过程制作一个按钮...

<iframe id="wp-custom-header-video" name="video-wp" frameborder="0" allowfullscreen="1" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" title="YouTube video player" width="2000" height="1200" src="https://www.youtube.com/embed/4vGzJ3nTzp4?autoplay=1&amp;controls=0&amp;disablekb=1&amp;fs=0&amp;iv_load_policy=3&amp;loop=1&amp;modestbranding=1&amp;playsinline=1&amp;rel=0&amp;showinfo=0&amp;enablejsapi=1&amp;origin=https%3A%2F%2Fepistolariodelamemoria.cl&amp;widgetid=1" data-gtm-yt-inspected-1_19="true" data-initial-width="2000" data-initial-height="1200"></iframe>

<div id="mute">
</div>  

JS

$("#mute").on("click", function () {
  var mute_toggle = $(this);

  if (player.isMuted()) {
    player.unMute();
    mute_toggle.text("volume_up");
  } else {
    player.mute();
    mute_toggle.text("volume_off");
  }
});

但它对我不起作用,你能帮我解决这个问题

【问题讨论】:

    标签: javascript wordpress iframe youtube


    【解决方案1】:

    也许这有帮助?: https://stackoverflow.com/a/26478263/17135631

    $("video").prop('muted', true);
    
    $(".mute-video").click(function () {
        if ($("video").prop('muted')) {
            $("video").prop('muted', false);
            $(this).addClass('unmute-video');
    
        } else {
            $("video").prop('muted', true);
            $(this).removeClass('unmute-video');
        }
        console.log($("video").prop('muted'))
    });
    

    【讨论】:

      【解决方案2】:

      js

      var tag = document.createElement('script');
      tag.src = "https://www.youtube.com/iframe_api";
      var firstScriptTag = document.getElementsByTagName('script')[0];
      firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
      
      var player;
      
      function onYouTubeIframeAPIReady() {
        player = new YT.Player('youtube-video', {
          events: {
            'onReady': onPlayerReady,
            'onStateChange': onPlayerStateChange
          }
        });
      }
      
      function onPlayerReady() {
        console.log("hey Im ready");
        //do whatever you want here. Like, player.playVideo();
      }
      
      function onPlayerStateChange() {
        console.log("my state changed");
      }
      
      document.getElementById("mute").addEventListener('click', function(event) {
        console.log(player);
      
        if (player.isMuted()) {
          player.unMute();
        } else {
          player.mute();
        }
      });
      

      html

      <h1>Mute Youtube Video Using a Button</h1>
      
      <p>
        <button id="mute">Mute/UnMute</button>
      </p>
      
      <iframe id="youtube-video" src="https://www.youtube.com/embed/M7lc1UVf-VE?enablejsapi=1&autoplay=1&rel=0&mute=0" frameborder="0" width="600" height="400"></iframe>
      

      参考链接:https://codepen.io/rno1d/pen/XzLKwj

      【讨论】:

        【解决方案3】:

        这对我有用,谢谢!

        var tag = document.createElement('script');
        tag.src = "https://www.youtube.com/iframe_api";
        var firstScriptTag = document.getElementsByTagName('script')[0];
        firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
        
        var player;
        
        function onYouTubeIframeAPIReady() {
          player = new YT.Player('wp-custom-header-video', {
            events: {
              'onReady': onPlayerReady,
              'onStateChange': onPlayerStateChange
            }
          });
        }
        
        function onPlayerReady() {
          console.log("hey Im ready");
          //do whatever you want here. Like, player.playVideo();
        }
        
        function onPlayerStateChange() {
          console.log("my state changed");
        }
        
        document.getElementById("mute").addEventListener('click', function(event) {
          console.log(player);
        
          if (player.isMuted()) {
            player.unMute();
          } else {
            player.mute();
          }
        });
        #mute {
          cursor:pointer;
          padding: 10px 20px;
          background:#000;
          color: #fff;
          border-radius: 4px;
          display: inline-block;
        }
        <p>
          <button id="mute">Mute/UnMute</button>
        </p>
        <iframe id="wp-custom-header-video" name="video-wp" frameborder="0" allowfullscreen="1" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" title="YouTube video player" width="600" height="400" src="https://www.youtube.com/embed/4vGzJ3nTzp4?autoplay=1&amp;controls=0&amp;disablekb=1&amp;fs=0&amp;iv_load_policy=3&amp;loop=1&amp;modestbranding=1&amp;playsinline=1&amp;rel=0&amp;showinfo=0&amp;enablejsapi=1&amp;widgetid=1;origin=https%3A%2F%2Fepistolariodelamemoria.cl&amp" data-gtm-yt-inspected-1_19="true" data-initial-width="2000" data-initial-height="1200"></iframe>

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2020-07-01
          • 2017-04-11
          • 2017-05-02
          • 2011-12-09
          • 2022-07-25
          • 2016-05-12
          • 2016-03-31
          相关资源
          最近更新 更多