2017-10-06 105 views
0

我遇到了一个令人困惑的问题。一切都已经工作得很好,所有的突然我开始收到此错误:YouTube iframe API Uncaught TypeError

Uncaught TypeError: playervid.isMuted is not a function

如果有人可以帮助将不胜感激。

这里是代码

// 2. This code loads the IFrame Player API code asynchronously. 
var tag = document.createElement('script'); 

tag.src = "https://www.youtube.com/iframe_api"; 
var firstScriptTag = document.getElementsByTagName('script')[0]; 
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); 

jQuery.noConflict()(function($) { 

// 3. This function creates an <iframe> (and YouTube player) 
// after the API code downloads. 
var playervid; 

function onYouTubeIframeAPIReady() { 
    playervid = new YT.Player('playervid', { 
    height: "720", 
    width: "1280", 
    videoId: 'JNsFY9Hr-OU', 
    playerVars: { 'autoplay': 1, 'showinfo': 0, 'controls': 0, 'autohide': 1, 'rel': 0, 'wmode': 'transparent'}, 
    events: { 
     'onReady': initialize, 
     'onStateChange': onPlayerStateChange 
    } 
    }); 

} 

function initialize(event){ 
    event.target.mute(); 
} 

$('body').on('click', '#mute-toggle', function(event) { 

var mute_toggle = $(this); 
if(playervid.isMuted()){ 
    playervid.unMute(); 
    mute_toggle.html('<i class="fa fa-volume-up fa-2x" aria-hidden="true"></i>'); 
    $('.video-container iframe').removeClass('blur'); 
} 
else{ 
    playervid.mute(); 
    mute_toggle.html('<i class="fa fa-volume-up fa-2x muted" aria-hidden="true"></i>'); 
    $('.video-container iframe').addClass('blur'); 
} 
} 

当用户点击该按钮#mute-toggle我得到的错误。

+0

您可以尝试在代码片段中重现问题,也可以使用** https://jsfiddle.net/**您不必包含所有源代码,只需提供相关部分即可你正在处理的问题。谢谢。 – NewToJS

+0

如何将网址发送到开发站点 – Jason

+0

我宁愿有一个工作示例,因为我不喜欢打开未知域,但我认为在这种情况下,因为它会节省时间,当然... :)我会检查一下,看看我能否找到问题和解决方案。 – NewToJS

回答

0

修正了它。原来我使用的“Divi”主题运行了一个更新,该更新现在运行一些JavaScript,当您为菜单栏选择透明背景时,这会影响API。我将这个调用封装在一个setTimeout函数中并且它再次开始工作。