Jquery 嵌入式youtube播放器未静音
我正在使用管状jQuery插件,将YouTube视频作为背景播放,我正在尝试在背景中静音视频,默认情况下,脚本在查看脚本代码时应该这样做,但由于某些奇怪的原因,它没有这样做 代码如下:Jquery 嵌入式youtube播放器未静音,jquery,html,youtube,tubular,Jquery,Html,Youtube,Tubular,我正在使用管状jQuery插件,将YouTube视频作为背景播放,我正在尝试在背景中静音视频,默认情况下,脚本在查看脚本代码时应该这样做,但由于某些奇怪的原因,它没有这样做 代码如下: /* jQuery tubular plugin |* by Sean McCambridge |* http://www.seanmccambridge.com/tubular |* Copyright 2012 |* licensed under the MIT License |* Enjoy. |* |
/* jQuery tubular plugin
|* by Sean McCambridge
|* http://www.seanmccambridge.com/tubular
|* Copyright 2012
|* licensed under the MIT License
|* Enjoy.
|*
|* Thanks,
|* Sean */
// default params
var videoWidth = 853; // needed a default value -- this is overwritten almost immediately
var videoRatio = 16/9; // either 4/3 or 16/9 -- tweak as needed
var defaultDiv = 'wrapper';
jQuery.fn.tubular = function(videoId,wrapperId) {
wrapperId = (typeof(wrapperId) == undefined) ? 'wrapper' : wrapperId;
t = setTimeout("resizePlayer()",1000); // this is hacky, but i couldn't figure out why the yt player was behind
jQuery('html,body').css('height','100%');
jQuery('body').prepend('<div id="yt-container" style="overflow: hidden; position: fixed; z-index: 1;"><div id="ytapiplayer">You need Flash player 8+ and JavaScript enabled to view this video.</div></div><div id="video-cover" style="position: fixed; width: 100%; height: 100%; z-index: 2;"></div>');
jQuery('#' + wrapperId).css({position: 'relative', 'z-index': 99});
// initiailize vars
var ytplayer = 0;
var pageWidth = 0;
var pageHeight = 0;
var videoHeight = videoWidth / videoRatio;
var duration;
// iframe embedded yt player
var iframe = '<iframe id="myytplayer" width="' + videoWidth + '" height="' + videoHeight + '" src="http://www.youtube.com/embed/' + videoId + '?autoplay=1&controls=0&modestbranding=1&showinfo=0&version=3&wmode=transparent&loop=1&playlist=' + videoId + '" frameborder="0" allowfullscreen></iframe>';
/*
// swfobject embed yt player
var params = { allowScriptAccess: "always", wmode: "transparent" };
var atts = { id: "myytplayer" };
swfobject.embedSWF("http://www.youtube.com/v/" + videoId + "?enablejsapi=1&playerapiid=ytplayer&loop=1", "ytapiplayer", videoWidth, videoHeight, "8", null, null, params, atts);
*/
jQuery('#ytapiplayer').html(iframe);
jQuery(window).resize(function() {
resizePlayer();
});
return this;
}
// player calls this function on ready
function onYouTubePlayerReady(playerId) {
ytplayer = document.getElementById("myytplayer");
ytplayer.setPlaybackQuality('medium');
ytplayer.mute();
}
function resizePlayer() {
var newWidth = jQuery(window).width(); // original page width
var newHeight = jQuery(window).height(); // original page height
jQuery('#yt-container, #video-cover').width(newWidth).height(newHeight);
if (newHeight > newWidth / videoRatio) { // if window ratio becomes taller than video
newWidth = newHeight * videoRatio; // overflow video to sides instead of bottom
}
jQuery('#myytplayer').width(newWidth).height(newWidth/videoRatio);
}
但是,当视频播放器加载时,它不会执行任何这些功能,而是在音频未静音的情况下开始播放。我将如何解决这个问题?谢谢。因为iframed player不支持API方法,除非将
&enablejsapi=1
附加到查询字符串中。这样做,你的代码就会工作。不幸的是,它没有做到这一点。它仍在播放未静音的音频。不过,谢谢你的建议。此外,在Turbular主页的首页上,作者声明,控件在更新之前都会被破坏。如果您需要ETA或帮助解决问题,请与联系!:)(编辑:例如,修改插件以使用新的、更受支持的iframeapi)@user1632726我建议使用。例如callPlayer('myytplayer','setPlaybackQuality','medium');呼叫播放器(“myytplayer”、“静音”)代码>。谢谢!callPlayer函数起作用了!是否有在静音和取消静音之间切换的代码?我读了一些关于player.ismute():Boolean的文章,但我不知道如何植入它。
// player calls this function on ready
function onYouTubePlayerReady(playerId) {
ytplayer = document.getElementById("myytplayer");
ytplayer.setPlaybackQuality('medium');
ytplayer.mute();
}