Как отключить встроенный проигрыватель Youtube?
Я экспериментирую с проигрывателем Youtube, но я не могу заставить его отключать звук по умолчанию.
function onPlayerReady() {
player.playVideo();
// Mute?!
player.mute();
player.setVolume(0);
}
Как отключить его с самого начала?
Fiddle
Update:
API JavaScript Player устарел.
Вместо этого используйте iframe Embeds.
Ответы
Ответ 1
Выключается 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();
}
Fiddle
Благодарим Гагандипа Сингха и Антона Кинга за указание на enablejsapi=1
Ответ 2
Все приведенные выше ответы не помогли мне по какой-то причине. Это может быть странная тема 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>
Ответ 3
Важно отметить, что API YouTube требует, чтобы вы запускали это в своей разметке непосредственно в теге <script>
или через стандартный document.onLoad()
собственный прослушиватель, а не как именованную функцию.
В противном случае он не свяжет функцию onYouTubeIframeAPIReady()
с DOM.
Ответ 4
Попробуйте ввести код
var youtubeplayer = iframe.getElementById('ytplayer');
youtubeplayer .setVolume(0);
И ниже ваша обновленная версия скрипта,
ПРИМЕЧАНИЕ. Должен включать 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
Надеюсь, это поможет...