【问题标题】:YouTube javascript not returning proper error codes (error 0 for everything)YouTube javascript 未返回正确的错误代码(所有内容均出现错误 0)
【发布时间】:2013-10-27 02:33:23
【问题描述】:

我似乎无法让我的 youtube javascript 给我正确的视频错误。例如,下面的代码应该给我错误代码 150,但它给了我 0。

在 HTML 上嵌入代码

<object width='710' height='400' style='z-index: 1;'>
<param name='movie' value='https://www.youtube.com/v/Ze8bj80qL_I?version=3&enablejsapi=1&autoplay=1&rel=0&wmode=transparent'></param>
<param name='allowFullScreen' value='true'></param>
<param name='allowScriptAccess' value='always'></param>
<param name='wmode' value='transparent'></param>
<embed src='https://www.youtube.com/v/Ze8bj80qL_I?version=3&enablejsapi=1&autoplay=1&rel=0&wmode=transparent' type='application/x-shockwave-flash' allowfullscreen='true' allowScriptAccess='always' width='710' height='400' id='myytplayer' wmode='transparent'></embed>
</object>

Javascript:

function onPlayerError(event) {
    alert(event);
}
function onYouTubePlayerReady(playerId) {
    ytplayer = document.getElementById("myytplayer");
    ytplayer.addEventListener("onStateChange", "onytplayerStateChange");
    ytplayer.addEventListener("onError", "onPlayerError");
    $(ytplayer).attr({
                 "src" : url.replace('?rel=0', '')+"?wmode=transparent",
                 "wmode" : "Opaque"
    });
}

【问题讨论】:

    标签: javascript api youtube


    【解决方案1】:

    我不知道为什么,但只有在 HTML5 播放器中使用YouTube IFrame API 才能得到正确的错误代码。

    HTML:

    <div id="player"></div>
    

    JavaScript:

    var tag = document.createElement('script');
    tag.src = "https://www.youtube.com/iframe_api";
    var firstScriptTag = document.getElementsByTagName('script')[0];
    firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
    
    function onPlayerError(event) {
        alert("Error code " + event.data);
    }
    
    function onYouTubeIframeAPIReady() {
        console.log("start");
        var player;
        player = new YT.Player('player', {
            videoId: 'Ze8bj80qL_I',
            playerVars: {
                'autoplay': 1,
                'controls': 0,
                'html5': 1
            },
            events: {
                'onError': onPlayerError
            }
        });
    }
    

    错误代码是100

    未找到请求的视频。当视频有 被删除(出于任何原因)或被标记为私有。

    Here is the jsfiddle. 在 GC30 中测试。

    【讨论】:

    • 谢谢,这似乎可行,但现在我得到了不同的错误:未捕获的类型错误:对象 # 没有方法 'rD' html5player-vflyIiNm2.js:910 和资源解释为图像但使用 MIME 类型 text/html 传输:“youtube.com/……117%2C3300132%2C3300137%2C3300163%2C3310137%2C3310551%2C3310870&autoplay=1”。 html5player-vflyIiNm2.js:6
    • 另外,我的应用程序动态加载新视频,所以我需要能够随意销毁和创建播放器。如果我让我的 onYouTubeIframeAPIReady() 函数调用另一个函数,我会收到“YT”未定义错误,但一切正常。
    猜你喜欢
    • 2020-05-25
    • 2021-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-20
    • 2014-07-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多