如您所见,我已尝试使 YouTube API 静音,但它适用于 Chrome 和 Firefox。我怎样才能在 Internet Explorer 和 Safari 中也将其静音。有没有办法用 JavaScript 解决这个问题?到处谷歌搜索,但找不到任何合适的答案来解决这个问题。
var player;
var player2;
function onYouTubeIframeAPIReady(){
player = new YT.Player("video1", {
videoId: "KKp9g8fTBDQ",
width: 300,
height: 200,
playerVars: {
"autoplay": 1,
"controls": 1,
"showinfo": 0,
"modestbranding": 0,
"loop": 1,
"fs": 0,
"cc_load_policy": 0,
"iv_load_policy": 3,
"mute": 1
},
events: {
"onReady": onPlayerReady
}
});
player2 = new YT.Player("video2", {
videoId: "O5-o0DpB6z0",
width: 300,
height: 200,
playerVars: {
"autoplay": 1,
"controls": 1,
"showinfo": 0,
"modestbranding": 0,
"loop": 1,
"fs": 0,
"cc_load_policy": 0,
"iv_load_policy": 3,
"mute": 1
},
events: {
"onReady": onPlayerReady
}
});
}
function onPlayerReady(event) {
event.target.setPlaybackQuality("hd1080");
event.target.setVolume(50);
player.mute();
}
//tried these options as well, but nothing works.
var video1 = document.getElementById("video1");
var video2 = document.getElementById("video2");
video1.mute();
video2.mute();
video1.volume = 0.0;
video2.volume = 0.0;
最佳答案
不应在 onPlayerReady
函数中使用 player.mute();
,而应使用 event.target.mute()
。通过这种方式,您可以调用与调用 onPlayerReady
回调的特定视频相关的 mute
函数。
这是一个工作代码笔:
http://codepen.io/anon/pen/kXOXWo
(由于跨源和 iframe,它不能在 codepen 中使用 IE,但代码已在 Chrome、Firefox、IE 和 Safari 中检查过,所有工作正常)。
更新
由于某些原因,当使用 "autoplay": 1
和 mute()
选项时 - 每隔几次您在 ie
中刷新一次> 您的视频仍未静音。我找到的解决方案是将 "autoplay": 0
与
function onPlayerReady(event) {
event.target.mute();
event.target.playVideo();
}
这是完整的代码笔:
http://codepen.io/anon/pen/NAQXar
希望现在它会起作用:)
关于javascript - 如何让 YouTube API 在 Internet Explorer 11 和 Safari 中静音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39174776/