如何静音嵌入的Youtube播放器



我正在尝试使用Youtube播放器,但我无法将其默认为静音。

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

如何一开始就静音?

小提琴


更新:

JavaScript Player API已弃用。
使用iframe Embeds

证明player.mute()工作良好。它只需要参数enablejsapi=1。小提琴的初始测试没有工作,因为玩家初始化有一个错误。

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

小提琴

感谢Gagandeep Singh和Anton King指出enablejsapi=1

由于某些原因,以上所有的答案都不适合我。它可能是奇怪的wordpress主题,我不得不使用或折旧的方法在Youtube API,我不确定。让播放器静音的唯一方法是将下面的代码插入到标签中。

// 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>

值得注意的是,YouTube API要求您在标记中直接在<script>标记中运行此功能,或者通过标准的document.onLoad()本机侦听器运行此功能,而不是作为命名函数。

否则,它不会将onYouTubeIframeAPIReady()函数本地绑定到DOM。

试试下面的代码

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

下面是你的小提琴更新版本,

注意:必须包含enablejsapi=1在视频url

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

演示

相关内容

  • 没有找到相关文章

最新更新