Youtube api Youtube iframe播放器API';onReady';事件不会被触发,尽管有建议的修复

Youtube api Youtube iframe播放器API';onReady';事件不会被触发,尽管有建议的修复,youtube-api,Youtube Api,我正在为我正在构建的应用程序使用youtube iframe播放器API。直到一个月前(2014年2月),一切正常。现在没有任何事件被触发,甚至“OnReady”也没有。其中一篇帖子建议在src属性中添加“origin=”。这并没有为我解决问题。下面是我的代码片段——我正在使用angularjs HTML: 视频播放并停止,但不会触发这些事件。我还看到一个错误“error:Ad adLoadError错误:无法从服务器请求广告。原因:error#2032错误代码:1103”。不确定这是否会干扰事

我正在为我正在构建的应用程序使用youtube iframe播放器API。直到一个月前(2014年2月),一切正常。现在没有任何事件被触发,甚至“OnReady”也没有。其中一篇帖子建议在src属性中添加“origin=”。这并没有为我解决问题。下面是我的代码片段——我正在使用angularjs

HTML:

视频播放并停止,但不会触发这些事件。我还看到一个错误“error:Ad adLoadError错误:无法从服务器请求广告。原因:error#2032错误代码:1103”。不确定这是否会干扰事件机制

感谢您的帮助

谢谢,
迪帕

你的HTML被删除了,迪帕,但我可以告诉你你想做什么

我写了一个iframe,他们在这个iframe id上称为new YT.Player,直到几周前它还工作得很好。经过一些研究,我发现每隔几个月YouTube就会破坏这个功能——但他们从来不会破坏你使用新的YT.Player为你编写iframe的功能。我在google api bugs中看到的最新问题是


我停止了对它的攻击,并使用它们的默认方法重新构建了我的实现,尽管文档中说将YT.Player附加到已经编写好的iframe的方法很好

您需要在iframe src中添加
rel=0

您的HTML需要这样更改

<iframe id="player" width="1280" height="720" frameborder="0" allowfullscreen="" src="https://www.youtube.com/embed/-PXgGnKhEdQ?rel=0&autoplay=1&theme=light&color=white&origin=http://127.0.0.1:8000">

同上-我刚刚重新实现了让YT.Player编写iframe,这修复了IE9中onReady的不足。
$scope.onYouTubeIframeAPIReady = function(id) {
    var player = new YT.Player('player', {
        videoId: id,
        events: {
            'onReady': function (event) {
                 player.addEventListener('onStateChange', function(e) {
                     console.log('onReady');
                 });
             },
             'onStateChange': function (event) {
                 console.log('onStateChange')
             }
        }
    });
}
<iframe id="player" width="1280" height="720" frameborder="0" allowfullscreen="" src="https://www.youtube.com/embed/-PXgGnKhEdQ?rel=0&autoplay=1&theme=light&color=white&origin=http://127.0.0.1:8000">
var tag = document.createElement('script');
    tag.src = "http://www.youtube.com/player_api";
    var firstScriptTag = document.getElementsByTagName('script')[0];
    firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);