3

我似乎无法让我的 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"
    });
}
4

1 回答 1

0

我不知道为什么,但只有当我将YouTube IFrame API与 HTML5 播放器一起使用时,我才能获得正确的错误代码。

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

未找到请求的视频。当视频已被删除(出于任何原因)或被标记为私有时,会发生此错误。

这是jsfiddle。在 GC30 中测试。

于 2013-10-27T03:18:20.723 回答