我正在尝试使用Youtube播放器,但我无法将其默认为静音。
function onPlayerReady() {
player.playVideo();
// Mute?!
player.mute();
player.setVolume(0);
}
如何一开始就静音?
小提琴
更新:
JavaScript Player API已弃用。
使用iframe Embeds
证明player.mute()
工作良好。它只需要参数enablejsapi=1
。小提琴的初始测试没有工作,因为玩家初始化有一个错误。
<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);
}
演示