javascript - 如何让 YouTube API 在 Internet Explorer 11 和 Safari 中静音

标签 javascript jquery internet-explorer youtube safari

如您所见,我已尝试使 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": 1mute() 选项时 - 每隔几次您在 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/

相关文章:

javascript - 我应该如何编辑或重命名 CKEDITOR 工具栏按钮(悬停文本)?有可能吗?

javascript - 使用 node.js 将参数发送到 API

javascript - 在javascript中制作anagrams生成器仅查找列表中包含的单词

javascript - 仅在页面中重新加载 jquery

javascript - 试图理解 jquery 上的 JSONP

javascript - Php Mysql Ajax 插入多行

javascript - 如何更新使用 CSV 文件中的数据创建元素的 HTML 元素?

css - 复选框图像样式在 IE 上的表单中无法正常工作

javascript - 等待光标在 IE10 中不显示

jquery - IE 和翻转动画问题