你如何将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希望这有助于…