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插件,将YouTube视频作为背景播放,我正在尝试在背景中静音视频,默认情况下,脚本在查看脚本代码时应该这样做,但由于某些奇怪的原因,它没有这样做

代码如下:

/* 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();
}