你如何将embedded式Youtube播放器静音?

我正在试验Youtube播放器,但默认情况下我无法将其设置为静音。

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

我如何从一开始就将其静音?

小提琴


更新:

JavaScript Player API已被弃用 。
使用iframeembedded代替。

原来player.mute()工作正常。 它只需要参数enablejsapi=1 。 在小提琴初始testing不起作用,因为玩家启动有一个错误。 以下的作品。

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()本地侦听器而不是命名函数在标记中运行此API。

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

尝试下面的代码

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

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

注意:必须在videourl中包含enablejsapi = 1

  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希望这有助于…